iptables防火墙的学习
1,配置文件
iptables的配置文件只有一个。刚开始默认只有filter表,当在命令行写了其他表的规则(如raw,nat)并保存的时候,配置文件会多出其他表的内容
vi /etc/sysconfig/iptables
2,查看表的内容
查看表的时候都是从配置文件中读取有用信息的,如果没有,他也会显示一个空的模板出来,但是归根结底,这种情况下配置文件还是没有相应的内容
2.1 查看filter表
iptables -L -n
2.2查看raw表
iptables -t raw -L
2.3查看nat表
iptables -t nat -L
3.iptables的三种匹配方式
3.1 ,通用匹配
1,协议匹配 (-p 协议名) iptables -A INPUT -p tcp -j ACCEPT 2,地址匹配 (-s 源地址 -d 目的地址) iptables -A INPUT -d 192.168.244.10 -j ACCEPT iptables -A INPUT -s 192.168.10.120/24 -j DEOP 3,接口匹配 (-i 进站网卡 -o 出战网卡) iptables -A INPUT -i eth0 -j ACCEPT iptables -A INPUT -o eth1 -j ACCEPT
3.2 ,隐含匹配
这种匹配方式要求以指定的协议匹配作为前提条件,相当于子条件,因此无法独立使用,其对应的功能由iptables在需要时自动载入内核,常见的隐含匹配包括端口匹配,TCP标记匹配,ICMP类型匹配。
(正如上面所说,隐式匹配都是加了协议作为前提条件的) iptables -A INPUT -p tcp --dport 53 -j ACCEPT iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 20:21 -j ACCEPT
iptables -A INPUT -p tcp --dport 200:300 -j ACCEPT
隐含匹配包括端口匹配,TCP标识匹配,ICMP类型匹配,后面两种不常用
3.3 ,显示匹配
这种匹配方式要求又额外的内核模板提供支持,必须以手动以"-m模块名称"的形式调用相应的模块,然后方可设置匹配条件。添加了带显式匹配条件的规则以后,可以执行"lsmod | grep xt_" 命令查看到相关的内核扩展模板。常见的显式匹配包括多端口匹配、IP范围匹配、MAC地址匹配、状态匹配。
3.3.1多端口匹配
iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143 -j ACCEPT
3.3.2范围匹配
iptables -A INPUT -p tcp -m iprange --src-range 192.168.244.10-192.168.244.100 -j ACCEPT
3.3.3mac地址匹配
iptables -A INPUT -p tcp -m mac --mac-source 00:0c:28:c0:2d:dd -j ACCEPT
3.3.4状态匹配(不常用)