Iptables基本匹配


我们前面在练习规则操作时,使用的"匹配条件"比较少。下面我们来了解下iptables 匹配条件更多的用法。iptables匹配参数如下

Iptables 匹配条件_源地址

可以指定来源的协议,或者来源的IP满足多少, 源地址/目标地址是谁,源端口/目标端口,哪个接口接受的。

-m:是用来做扩展匹配的。

-j:就是具体的动作。drop就是什么消息都不返回,reject就会返回因为防火墙阻止了,也就是一个会返回消息,一个不会返回消息。

一般使用drop,因为使用reject它知道是防火墙拦截了,所以可能会想其他办法绕过防火墙。

仅允许'10.0.0.10'访问"10.0.0.200服务器的"80°端口、其他地址全部拒绝。

filter 表∶INPUT: 做的是过滤操作

-s:指定来源地址              -d:指定目标地址           --deport:指定目标端口

iptables -t filter -I INPUT -p tcp -s 10.0.0.10 -d 10.0.200 --dport 80-j DROP

Iptables 匹配条件_服务器_02

Iptables 匹配条件_运维_03

 可以针对某个来源的地址做规则的限制。

Iptables 匹配条件_源地址_04

如果不符合这条drop的规则,那么就继续往下去匹配,下面没有规则就回到链的默认规则,默认规则是ACCEPT,只要没有符合这条规则,那么就都允许。

仅允许'10.0.0.1'访问'10.0.0.200'服务器的'22'端口、其他地址全部拒绝。

iptables -t filter -I INPUT -s 10.0.0.1 -d 10.0.0.200 -p tcp --dport 22 -j ACCEPT

-A是在后面追加

iptables -t filter -A INPUT -d 10.0.0.200 -p tcp --dport 22 -j DROP

规则从上到下匹配,如果IP来源10.0.0.1符合规则,那么下面规则就不执行了,如果来源于其他规则不满足,那么就走下面,任何地址到本机的22都拒绝。(并没有调整默认策略)

[root@localhost ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 10.0.0.1 10.0.0.200 tcp dpt:22
DROP tcp -- 0.0.0.0/0 10.0.0.200 tcp dpt:22

所有来访本机的协议,属于TCP协议的我们统统都放行

iptables -t filter -I INPUT -p tcp -j  ACCEPT
iptables -t filter -A INPUT -j DROP
[root@localhost ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0
DROP all -- 0.0.0.0/0 0.0.0.0/0

Iptables 匹配条件_源地址_05

比如域名查询这些都是不行的,因为是UDP协议,域名查询需要UDP。 

 

Iptables 匹配条件_源地址_06

eth0的ping不通,eth1的ping正常。 

 

从本机出去,数据包从本机出去,越早做越好,那么就是output链,在filter表。