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状态匹配(不常用)

原文地址:https://www.cnblogs.com/zhuhaofeng/p/9786021.html