防火墙基本上有三大功能:数据包过滤、应用代理、状态监测。
在RHEL6的防火墙中,防火墙是通过iptables来配置和管理的。在RHEL7中iptables和firewalld两个防火墙技术是共存的,不过是看需要看一下习惯使用哪个,默认是开启firewalld。
在RHEL7中iptables防火墙默认也是不安装的,需要配置yum源手工安装:
yum install iptables iptables-services -y
两个防火墙运行状态的检查:
systemctl status firewalld
systemctl status iptables
启用iptables防火墙(在启用iptables防火墙之前,需要关闭firewalld防火墙):
systemctl stop firewalld
systemctl start iptables
systemctl enable iptables
iptables防火墙的生效规则是:放在前面的规则优先生效。
iptables防火墙的一些设置规则和命令整理:
1. 查看防火墙已有的规则
iptables -L
2. 清除防火墙的全部规则
iptables -F
3. 查看防火墙的规则,打印序号
iptables -L --line –n
4. 根据序号删除某个规则
iptables –D INPUT 2
5. 设置进制ping的规则
iptables -A INPUT -p icmp -j REJECT
6. 显示nat链的所有规则
iptables -t nat -L
7. 在某个规则序号之前插入一个规则
iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
8. 禁止对udp协议的访问
iptables -A INPUT -p udp -j DROP
9. 设置基于源端口为80的数据包通过
iptables -A INPUT -p tcp --sport 80 -j ACCEPT
10. 设置只对目的端口的访问
iptables -I INPUT -p tcp --dport 9088 -j ACCEPT
11. 设置基于TCP包目的端口来匹配
iptables -I OUTPUT -d 192.168.1.0/24 -j ACCEPT
12. 以数据包进入本地使用的网络接口来匹配
iptables -A INPUT -i ens33 -j ACCEPT
iptables使用技巧总结:
-A :add,在INPUT|OUTPUT|FORWARD三个chain中操作;
-D: delete
-I: insert
-I INPUT 1,在line-number=1的前面插入
-p:数据包传送使用的协议
-t:可以选择操作哪个表,默认是filter,还有nat和mangle
-o: 数据包使用的网卡名称
-j:ACCEPT|REJECT|DROP 对数据包的操作
-s: 192.168.1.0/24 以IP源地址匹配包
-d:192.168.1.0/24 基于TCP包的目的端口来匹配
--dport 80:访问TCP的目的端口为80
--sport 80:访问TCP的源端口为80