#iptable #linux
本文主要介绍如下几点内容。
禁止Filewalld开机启动
为了防止与iptables冲突,您必须先禁止Filewalld开机启动。
1. 查看firewalld服务状态。
1
|
systemctl status firewalld
|
2. 当服务处于active状态,运行以下命令关闭Firewalld服务。
1
|
systemctl stop firewalld
|
3. 执行如下命令,禁止Filewalld开机启动。
1
|
systemctl disable firewalld
|
安装iptables
安装iptables。
1
|
yum install -y iptables-services
|
启动iptables并设置为开机启动
1. 启动iptables。
1
|
systemctl start iptables
|
2. 查看iptables是否成功启动。
1
|
systemctl status iptables
|
3. 设置iptables开机启动。
1
|
systemctl enable iptables.service
|
4. 设置完成后,重启实例验证配置。
查看并修改iptables默认规则
执行iptables -L命令,查看iptables默认规则,发现在默认规则下,INTPUT链允许来自任何主机的访问。可以参考如下步骤修改默认规则。
1. 如果之前已经设置过规则,建议执行如下命令,备份原有的iptables文件,避免之前设置的规则丢失。
1
|
cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
|
2. 清空所有规则。
3. 根据业务需求添加规则,放行或者禁用端口。示例:依次执行如下命令,放行80端口和22端口。
1
2
|
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
|
示例:依次执行如下命令,添加规则,使INPUT链拒绝所有请求,即ECS实例会拒绝所有请求。如果是线上业务请勿直接操作,会直接中断业务。
4. 确认新规则生效。
5. 保存添加的规则。
1
|
iptables-save > /etc/sysconfig/iptables
|
6. 将规则导入到iptables
1
|
iptables-restore < /etc/sysconfig/iptables
|
案例:实际操作命令
仅对相关ip开放22端口
1
2
3
4
5
6
7
|
sudo iptables -A INPUT -p tcp -s 10.20.105.62 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp -s 10.20.105.56 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp -s 10.20.105.57 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp -s 10.20.105.54 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp -s 10.20.105.55 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
iptables-save >/etc/sysconfig/iptables
|