一、 内置匹配方式
1:接口的匹配方式
在Netfilter内置的匹配方式中,我们可以将数据包“进出”的“接口”作为匹配的条件:例如
iptables -t filter -A forward -i eth0 -o eth1 -j Drop
其中使用了-i 和 -o 连个参数来标明数据包的进出方向,注意,并不是所有的接口都是eth开头的
2: Soure/Destination Address的匹配
在Netfilter中的IP包头中有Source IP 和Destination IP 两项信息,其中Source IP 代表数据包发送端主机的IP地址,Destination则代表数据包要发送往哪台主机,因此,我们可以通过这两个字段来限制数据包
例如:
-d 192.168.0.1
-s 192.168.0.1
iptables -A FORWARD -p tcp -I eth1 -o eth0 -d www.baidu.com -j DROP
不允许局域网用户通过本网关防火墙访问百度
iptables -A FORWARD -I eth0 -o eth1 -p tcp -s 192.168.10.1 -d www.baidu.com —deport 80 -j DROP
不允许局域网中192.168.10.1这台主机访问百度的网页(80端口)
3:协议的匹配
我们可以通过-p来指定我们要匹配的协议,协议有很多,其中, 我们可以从/etc/protocol看到一些 其中,第一个字段是给人看的,第二个字段是个计算机看的, icmp协议对应的数字为1 所以
-p icmp 和 -p 1 的意义是相同的
iptables -t filter -A INPUT -p icmp -j DROP
上边的策略会让所有的机器都ping不通本机,但是有一个问题,那就是我们也ping不通外边的主机,虽然我们的数据包能够正常的回来的,但是返回的时候就被DROP了,其实,如果我们能看到icmp的包的内容,我们就可以很容易解决这个问题
icmp 请求包: type=8 Code=0
icmp 应答包: type=0 Code=0
icmp协议的高级匹配:
iptables -A INPUT -p icmp —icmp-type 8 -j DROP
Latest posts by Zhiming Zhang (see all)
- aws eks node 自动化扩展工具 Karpenter - 8月 10, 2022
- ReplicationController and ReplicaSet in Kubernetes - 12月 20, 2021
- public key fingerprint - 5月 27, 2021