规则判断顺序
从第一条开始一条条往下,遇到对应的规则就执行,遇到ACCEPT与DROP两种策略将直接执行并退出,不会继续往下
基本语法
# 添加规则
-I:表示插入一条规则,默认插入第一条(最优先判断)
-A:表示最后加入一条规则
# 最底下增加一个规则:阻止22端口访问(如果前面有accept 22端口,则此条无效)
iptables -A INPUT -p tcp --dport 22 -j DROP
# 最顶部增加一个规则:阻止22端口访问(就算底下有accept 22端口,也不生效)
iptables -I INPUT -p tcp --dport 22 -j DROP
# 增加开放的端口
iptables -A INPUT -p tcp --dport 8000 -j ACCEPT
# 查看已开放的端口策略
iptables -L -n --line-numbers
# 删除指定端口策略,序号,从上往下序号依次为:1,2,3,4……
iptables -D INPUT 1
# 修改默认规则为拒绝
iptables -P INPUT DROP
'仅允许某些服务器可以访问对应端口'
# 先关闭所有的8080端口
iptables -A INPUT -p tcp --dport 8080 -j DROP
# 仅开启10.0.0.133服务器允许访问8080端口
iptables -A INPUT -s 10.0.0.133 -p tcp --dport 8080 -j ACCEPT
# 开启ip段192.168.110.110/24允许访问8080端口
iptables -A INPUT -s 192.168.110.110/24 -p tcp --dport 8080 -j ACCEPT
持久化配置
注意:
iptables防火墙重启服务器后配置会丢失,需要进行持久化操作
Ubuntu持久化方法
通过安装iptables-persistent来实现
# 安装iptables-persistent
sudo apt install iptables-persistent
# 在安装过程中,系统会要求您保存当前/现有的 iptables 规则。这里直接选择yes
# 它将分别为 IPv4 和 IPv6创建现有的 iptables 规则并将其保存到/etc/iptables/rules.v4和/etc/iptables/rules.v6
# 保存ipv4
sudo iptables-save -f /etc/iptables/rules.v4
# 规则可以恢复到上次保存它们时的状态
sudo netfilter-persistent reload
注意:
无论何时更改iptables的规则,都应该使用iptables-save命令将其保存到文件中,以便在重新启动后使更改保持不变。
CentOS7持久化方法
通过安装iptables-services来实现
yum install -y iptables-services.x86_64
# 查看状态
systemctl status iptables
# 开机自启
systemctl enable iptables
# 启动
systemctl start iptables
# 再次查看状态,发现已经启动
systemctl status iptables
# 保存iptables配置,每次修改都要保存,否则重启后会丢失
# 保存目录/etc/sysconfig/iptables
service iptables save
# 还原保存中的配置
service iptables reload