防火墙之iptables和firewalld的前世今生.
防火墙之iptables详解.
防火墙之iptables流量控制.
防火墙之iptables控制流量

1、ip_forward 路由转发功能
当公司内部只有一台主机A可以访问外网,其他主机B、C、D …等都需要通过主机A转发上网的小功能。
1.1、配置 主机D:192.168.168.133 不能访问其他网段
因为我是在VM虚拟机上实验,需要以下基本环境配置。
1.查询默认网关路由
ip route
---------------------------
default via 192.168.168.1 dev ens160 proto static metric 100
192.168.168.0/24 dev ens160 proto kernel scope link src 192.168.168.133 metric 100
2.删除默认网关路由
ip route del default via 192.168.168.1 dev ens160 proto static metric 100
3.测试外网:网络不通。
ping www.baidu.com
---------------------------
ping: www.baidu.com: Name or service not known
1.2、配置 主机A:192.168.168.100 转发功能
1.开启内核的转发功能。
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
2.配置iptables规则,允许 ens32 接口进行转发。
# 放行Forward的数据包
iptables -I FORWARD -i ens32 -j ACCEPT
# 开启网卡混杂模式(允许任意流向的数据包)
iptables -t nat -A POSTROUTING -o ens32 -j MASQUERADE
1.3、配置 主机D:192.168.168.133 其他网段报文交给主机A
1.配置其他网段报文默认网关路由
route add -net 0.0.0.0/0 gw 192.168.168.100
2.测试外网:网络已通。
ping -c 2 www.baidu.com
---------------------------
PING www.a.shifen.com (39.156.66.14) 56(84) bytes of data.
64 bytes from 39.156.66.14 (39.156.66.14): icmp_seq=1 ttl=127 time=21.2 ms
64 bytes from 39.156.66.14 (39.156.66.14): icmp_seq=2 ttl=127 time=20.9 ms
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 20.861/21.051/21.242/0.190 ms
2、PNAT 转发功能
使用PNAT转发功能
通过 主机A
访问 主机D上的数据库
。
2.1、配置主机APNAT
1.放行Forward的数据包
iptables -I FORWARD -i ens32 -j ACCEPT
2.开启网卡混杂模式(允许任意流向的数据包)
iptables -t nat -A POSTROUTING -o ens32 -j MASQUERADE
3.访问192.168.168.100:63306的TCP流量NAT到192.168.168.133:3306
iptables -t nat -A PREROUTING -d 192.168.168.100 -p tcp --dport 63306 -j DNAT --to-destination 192.168.168.133:3306
iptables -t nat -nvL
4.记得保存规则哦
service iptables save
在整个配置过程中没有配置准入的filter 规则,但是也能通。是因为匹配的顺序是先匹配 nat 表,然后再匹配 filter 表,当 nat 表命中后就转发走了,所以不用插入 filter 的规则。
2.2、测试功能 O(∩_∩)O哈哈~
