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

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

如果不符合这条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    

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

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

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

猜你喜欢

转载自blog.csdn.net/qq_34556414/article/details/126520271