- [1] #如果想要 iptables 作为网络防火墙, iptables 所在主机开启核心转发功能, 以便能够转发报文.
- [2] #使用如下命令查看当前主机是否已经开启了核心转发, 0 表示为开启, 1 表示已开启
- cat /proc/sys.NET/ipv4/ip_forward
- [3] #使用如下两种方法均可临时开启核心转发, 立即生效, 但是重启网络配置后会失效.
方法一: echo 1 > /proc/sys.NET/ipv4/ip_forward
方法二: sysctl -w.NET.ipv4.ip_forward=1
[4] #使用如下方法开启核心转发功能, 重启网络服务后永久生效.
配置 / etc/sysctl.conf 文件 (centos7 中配置 / usr/lib/sysctl.d/00-system.conf 文件), 在配置文件中将 net.ipv4.ip_forward 设置为 1
- # 由于 iptables 此时的角色为 "网络防火墙", 所以需要在 filter 表中的 FORWARD 链中设置规则.
- # 可以使用 "白名单机制", 先添加一条默认拒绝的规则, 然后再为需要放行的报文设置规则.
- # 配置规则时需要考虑 "方向问题", 针对请求报文与回应报文, 考虑报文的源地址与目标地址, 源端口与目标端口等.
- # 示例为允许网络内主机访问网络外主机的 web 服务与 sshd 服务.
- iptables -A FORWARD -j REJECT
- iptables -I FORWARD -s 10.1.0.0/16 -p tcp --dport 80 -j ACCEPT
- iptables -I FORWARD -d 10.1.0.0/16 -p tcp --sport 80 -j ACCEPT
- iptables -I FORWARD -s 10.1.0.0/16 -p tcp --dport 22 -j ACCEPT
- iptables -I FORWARD -d 10.1.0.0/16 -p tcp --sport 22 -j ACCEPT
- # 可以使用 state 扩展模块, 对上述规则进行优化, 使用如下配置可以省略许多 "回应报文放行规则".
- iptables -A FORWARD -j REJECT
- iptables -I FORWARD -s 10.1.0.0/16 -p tcp --dport 80 -j ACCEPT
- iptables -I FORWARD -s 10.1.0.0/16 -p tcp --dport 22 -j ACCEPT
- iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT**
参考 http://www.zsythink.net/archives/1663
来源: http://www.bubuko.com/infodetail-2945439.html