Linux iptables实现(SNAT)源地址转换

发布时间:2024年01月03日

实验要求一(实验要求SNAT:内网主机访问外网主机,通过iptables进行源地址转换,允许访问外网的httpd和ping)

?1、开启防火墙转发功能(两个方法二选一即可)

?方法一:

[root@iptabels ~]#echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf ?#修改内核配置文件

[root@iptabels ~]#source /etc/sysctl.conf

配置完成后,现在内网主机是没办法访问外网.45.60主机的

2、iptables流量转发配置

2.1#配置防火墙允许转发

[root@iptabels ~]#iptables -I FORWARD -p tcp --dport 80 -j ACCEPT

2.2#配置SNAT源地址转换 ? ? ? ?这里是大写的 -i ? ? ? ? ? ? ? 指定被转发的网段 (-o指定出站网卡)

[root@iptabels ~]#iptables -t nat -I POSTROUTING -s 192.168.10.0/24 -o ens36 -j SNAT --to-source 23.34.45.56

——————此时流量以及可以到达外网的主机,但是回包时候被防火墙拦截————

2.3配置防火墙回包的转发

[root@iptabels ~]#iptables -I FORWARD -p tcp --sport 80 -j ACCEPT ?#指定源80端口

? 此时Vm1已经可以访问外网Vm2的http服务,已经可以访问默认页面

2.4配置Ping(目前无法ping通)

?[root@iptabels ~]#iptables -I FORWARD -p icmp -j ACCEPT

实验要求二(外网主机访问内网主机的http服务通过iptables进行目的地址(DNAT)转换)
一、配置DNAT转换

?[root@iptabels ~]#iptables -t nat -I PREROUTING -i ens36 -d 23.34.45.56 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.10

验证:成功访问内网httpd服务

实验要求三(仅允许内网主机使用ssh远程管理iptabels通过vm1通过vm1接口进行管理,不允许其他主机通过任何端口进行ssh管理)
一、查看防火墙原始配置

1、[root@iptabels ~]#iptables -nL

这里可以看到这条策略默认是允许所有tcp链接来访问22号端口,并没有做限制,所以要把它删除

[root@iptabels ~]#iptables -D INPUT 4

?————此时所有主机已经都无法通过ssh链接

2、配置允许通过内网网卡来访问,并且指定目的Ip

[root@iptabels ~]#iptables -I INPUT -p tcp --dport 22 -i ens33 -d 192.168.10.254 -j ACCEPT

文章来源:https://blog.csdn.net/sj349781478/article/details/135375038
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。