12.2 iptables和firewalld
Iptables
防火墙会按照从上到下的顺序来读取配置的策略规则,在找到匹配项后就立即结束匹配工作并去执行匹配项中定义的行为
在进行路由选择前处理数据包(PREROUTING);
处理流入的数据包(INPUT);
处理流出的数据包(OUTPUT);
处理转发的数据包(FORWARD);
在进行路由选择后处理数据包(POSTROUTING)。
动作:ACCEPT(允许流量通过)、REJECT(拒绝流量通过)、LOG(记录日志信息)、DROP(拒绝流量通过)
命令:
iptables -L 查看规则链
iptables -F 清空规则链
iptables -P INPUT DROP 把规则链的默认策略设置为拒绝
iptables -I INPUT -p icmp -j ACCEPT
-I 在规则链的头部加入新规则
-p 匹配协议,如TCP、UDP、ICMP
-j 指定动作
iptables -I INPUT -s 192.168.22.0/24 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j REJECT
iptables -s 匹配来源地址,!表示反选
iptanles -A 在规则链末尾加入新规则
--dport 匹配目标端口号
--sport 匹配来源端口号
如果是连续的端口号,用:间隔
iptables -D INPUT 2
iptables -D 删除某一条规则
iptables-save 保存
Firewalld
Firewalld支持动态更新技术并加入了区域(zone)的概念,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换,默认为public。
firewall-cmd是firewalld防火墙配置管理工具的CLI(命令行界面)版本
firewall-cmd --permanent 永久(Permanent)模式,但当前不生效,重启后生效
firewall-cmd --reload 使配置立即生效
firewall-cmd --get-default-zone 查看默认区域
firewall-cmd --set-default-zone=work 设置默认区域
firewall-cmd --zone=public --query-service=https 查询服务是否放行
firewall-cmd --permanent --zone=public --add-service=https 允许放行https
firewall-cmd --permanent --zone=public --add-port=8081-8888/tcp 永久放行端口
firewall-cmd --list-all 显示当前区域的网卡配置参数、资源、端口以及服务等信息
firewall-cmd --permanent --zone=public --remove-port=8081-8888/tcp 删除添加的端口规则
firewall-cmd --permanent --zone=public --remove-service=https 删除添加的服务规则