27.防火墙配置规则
防火墙:工作在网络或主机边缘,对于进出的数据报文进行检查,并根据事先定义好的规则,对数据报文进行处理。
按照位置可分为网络防火墙和主机防火墙;按照原理分为包过滤防火墙和应用层防火墙;按照配置规则分为内核态防火墙netfilter和用户态防火墙iptables。
数据流向:1.外部访问本地 2.本地访问外部 3.本地负责转发。
所以可配置防火墙功能的点有以上5个(承载防火墙规则链),分别为1入站INPUT 2出站OUTPUT 3转发FORWARD 4路由前OREROUTING 5路由后POSTROUTING
承载防火墙规则表有以下几种
raw 状态跟踪,适用PREROUTING,OUTPUT
mangle 标记,适用INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING
nat 装换,适用于OUTPUT,PREROUTING,POSTROUTING
filter 过滤(一般默认),适用于INPUT,OUTPUT,FORWARD
默认命令格式:iptables -t 表名 选项 链名 条件匹配 -j 控制类型
eg:iptables -t filter -L INPUT //查看filter表的入站规则
选项:L 查看 F 清空
A 添加,默认最后一行 I 添加,默认第一行
D 删除 P 设置默认 X 清空自定义链
控制类型:ACCEPT DROP REJECT LOG SNAT DNAT REDIERECT
多端口匹配:-m multiport --sport源端口列表
-m multiport --dport目的端口列表
IP范围匹配:-m iprange --src-range IP范围
MAC地址匹配:-m mac --mac-source MAC地址
状态匹配:-m state --state
例子:为主机192.168.252.130添加防火墙规则,使得192.158.252.128不能访问
iptables -A INPUT -s 192.168.252.128 -j DROP
我在130这台机子上添加这条防火墙规则后,发现从128还是能连接到。
在130上查看它的防火墙规则,发现上一条规则确实写进去了,但是从第一条可以看到它设置了一条规则为接受所有地址的访问。
所以将这条规则添加到第一条,防火墙是从上到下实现的。
iptables -I INPUT -s 192.168.252.128 -j DROP
在128上尝试连接130,失败,ping也不通了
观察此时130的防火墙规则,新加的规则在第一条对128进行了拦截。