实验环境ubuntu 充当Service端企业边界的服务器 和一台windows 充当client企业内网用户.
说明:
1.服务器端能够正常访问互联网.
2.企业内用户无法直接访问互联网
需求1:使client 能够正常访问外网
配置数据转发
临时转发生效:
echo 1>/proc/sys/net/ipv4/ip_forward
永久转发生效:
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
配置即时生效 sysctl -p
配置:
iptables -F 清空iptables 表项
允许ssh 登录service
iptables -I INPUT -p tcp --dport 22 -i ens33 -j ACCEPT
或者配置INPUT 默认为允许所有
iptables -P INPUT ACCEPT
允许服务器ping 回应icmprequest 发出
iptables -I OUTPUT -p icmp -j ACCEPT
允许服务器ping 回应icmp replay 进入
iptables -I INPUT -p icmp -j ACCEPT
配置SNAT
iptables -t nat -I POSTROUTING -s 172.16.0.0/24 -o ens33 -j SNAT --to 10.5.20.248
client ping 8.8.8.8 不通.
由于目的地址为8.8.8.8,到达server端时,进入PREROUTING->FORWARD->POSTROUTING. 因此需要在FORWARD 链中允许数据进出
方式1:
iptables -P FORWARD ACCEPT
方式2:
iptables -I FORWARD -i ens38 -s 172.16.0.0/24 -j ACCEPT //icmp request
iptables -I FORWARD -i ens33 -d 172.16.0.0/24 -j ACCEPT //icmp replay
或者下面方法均可:
iptables -I FORWARD -i ens38 -d 8.8.8.8/32 -s 0/0 -j ACCEPT
iptables -I FORWARD -i ens33 -s 8.8.8.8/32 -d 0/0 -j ACCEPT
iptables -I FORWARD -i ens38 -s 172.16.0.0/24 -d 8.8.8.8/32 -j ACCEPT
iptables -I FORWARD -i ens33 -s 8.8.8.8/32 -d 172.16.0.0/24 -j ACCEPT
需求2: 将client 去往8.8.8.8 的流量重定向到114.114.114.114
iptables -t nat -I PREROUTING -d 8.8.8.8/32 -i ens38 -j DNAT --to 114.114.114.114
需求3:外网访问10.5.20.248 :80 即访问172.16.0.2:80
iptables -t nat -I PREROUTING -d 10.5.20.248/32 -i ens33 -p tcp --dport 80 -j DNAT --to 172.16.0.2:80
iptables -I FORWARD -s 172.16.0.0/24 -j ACCEPT
补充:
iptables -t nat -L --line //查看
iptables -t nat -D PREROUTING 1 删除某个1 为序列号
PREROUTING 只能配置-i 指定入接口的DNAT
POSTROUTING 只能配置 -o 指定出接口SNAT
查看FORWARD
iptables -L FOREWARD
删除FORWARD表项
iptables -D FORWARD 1
查看nat表
iptables -L -t nat -nv --line
对iptables修改进行保存 :
service iptables save