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.0.200 --dport 80 -j DROP

测试一下,使用telnet命令 

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我来给你总结一下iptables的常见匹配条件: 1. 匹配协议:使用 `-p` 参数指定协议,常见协议包括 TCP、UDP、ICMP等,例如: ``` # 匹配 TCP 协议 iptables -A INPUT -p tcp --dport 22 -j ACCEPT ``` 2. 源/目标地址:使用 `-s` 和 `-d` 参数指定源地址和目标地址,例如: ``` # 允许来自 IP 地址为 192.168.1.100 的主机访问 SSH 服务 iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT # 允许向 IP 地址为 192.168.1.100 的主机发送 HTTP 请求 iptables -A OUTPUT -d 192.168.1.100 -p tcp --dport 80 -j ACCEPT ``` 3. 匹配端口:使用 `--dport` 和 `--sport` 参数指定目标端口和源端口,例如: ``` # 允许访问 SSH 服务 iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许从本地主机向远程主机发送 HTTP 请求 iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT ``` 4. 匹配数据包的状态:使用 `--state` 参数指定数据包的状态,例如: ``` # 允许已经建立的 TCP 连接通过 iptables -A INPUT -p tcp --dport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT # 允许 ICMP 数据包通过 iptables -A INPUT -p icmp -m state --state NEW -j ACCEPT ``` 5. 匹配 MAC 地址:使用 `-m mac --mac-source` 参数指定源 MAC 地址,例如: ``` # 允许来自 MAC 地址为 00:11:22:33:44:55 的主机访问 SSH 服务 iptables -A INPUT -p tcp --dport 22 -m mac --mac-source 00:11:22:33:44:55 -j ACCEPT ``` 这些是iptables的常见匹配条件,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值