Linux(CentOS 7)iptables防火墙
Netfilter/iptables IP数据包过滤系统实际由netfilter和iptables两个组件构成。Netfilter是集成在内核中的一部分,它的作用是定义、保存相应的规则。而iptables是一种工具,用以修改信息的过滤规则及其他配置。用户可以通过iptables来设置适合当前环境的规则,而这些规则会保存在内核空间中。
根据端口过滤
根据协议过滤
四表五链:
默认的4个规则表
raw表:确定是否对该数据包进行状态跟踪
mangle表:为数据包设置标记
nat表:修改数据包中的源、目标ip地址或端口
filter表:确定是否放行该数据包(过滤)
默认的5种规则链:
INPUT:处理入站数据包
OUTPUT:处理出站数据包
FORWARD:处理转发数据包
POSTROUTING:在进行路由选择后处理数据包
PREROUTING:在进行路由选择前处理数据包
其中input、output链主要用在“主机型防火墙”中,主要针对服务器本机进行保护;
而FORWARD\POSTROUTING\PREROUTING多用在“网络型防火墙”中,如使用Linux防火墙作为网关服务器,在公司内网与Ineternet之间进行安全控制。
匹配顺序
(1)规则表之间的顺序:raw mangle nat filter
(2)规则链之间的顺序:不同链的处理时机比较固定,顺序取决于数据包的流向。
入站数据流向: 来自外界的数据包到达防火墙后,首选被PREROUTING链处理,然后进行路由选择;如果数据包的目的地址是防火墙本机,交给INPUT链进行处理,通过以后再交给系统上层应用程序进行响应。
转发数据流向: 来自外界的数据包到达防火墙后,首选被PREROUTING链处理,然后进行路由选择;如果数据包的目标地址是其他外部地址,则交给FORWARD链进行处理,最后交给POSTROUTING链进行处理。
出站数据流向:防火墙本机向外部地址发送数据包,首选被OUTPUT链处理,然后进行路由选择,再交给POSTROUTING链进行处理。
(3)规则链内部各条防火墙规则之间的顺序:从上往下,一旦匹配,立即终止。
(4)Centos7中使用iptables
systemctl stop firewalld 关闭防火墙
yum install iptables-services 安装或更新服务
再使用systemctl enable iptables 启动iptables
最后 systemctl start iptables 打开iptables
再执行service iptables save
重启iptables服务:
service iptables restart
语法:
iptables [-t 表名] 管理选项 [链名] [条件匹配] [-j 目标动作]
例:iptables -t filter -A INPUT -s 192.168.10.0/24 -d 192.168.10.1 -p tcp --dport 80 -j ACCEPT
service iptables save 保存设置的规则
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ 确定 ]
systemctl restart iptables 重启服务新规则生效
规则详解:
num行号
target是否允许
prot协议
opt协议选项
source源地址
distination目标地址