iptables 限制转发

概述

可以通过设置内核参数来启动或停止内核的转发

sysctl -w net.ipv4.ip_forward=1

当开启了Linux内核转发

cat /proc/sys/net/ipv4/ip_forward

在这里插入图片描述

开启内核转发后,当Linux主机收到不属于自己IP的数据包时,将会根据主机上配置的路由表进行转发,而不是丢弃数据包。

如何数据包如何转发下一跳是谁,可以通过查询路由表

route -n

iptables 限制转发_第1张图片

限制转发

默认情况下开启转发后,若无特殊配置 iptables 的 FORWARD 链为空,转发所有的数据包。

若需要对转发的做限制,那么就需要设置 FORWARD 链规则。

查看当前iptables FORWARD链规则

iptables -nvL FORWARD

iptables 限制转发_第2张图片

例如需要 禁止转发目的地址为 192.168.1.0/24 整个网段的数据包 我们可以通过下面方式实现

iptables -I FORWARD -d 192.168.1.0/24 -j DROP

在这里插入图片描述

允许某个主机的 ICMP (PING)数据

iptables -I FORWARD -d 192.168.1.200/32 -p icmp -j ACCEPT

在这里插入图片描述

注意iptables在数据包流转时,将会按照列表的顺序依次匹配数据包,若上一条未能匹配则继续匹配下一条,因此若你的DROP在你允许通过的条目之上可能就会造成,配置的ACCEPT无效。

允许某个IP的某个端口TCP协议通过

iptables -I FORWARD -d 192.168.1.232/32 -p tcp -m tcp --dport 80 -j ACCEPT

在这里插入图片描述

参考文献

[1]. 博客园 . iptables命令、规则、参数详解 . zclzhao . 2015.12 . https://www.cnblogs.com/zclzhao/p/5081590.html

你可能感兴趣的:(网络,服务器,linux)