Iptables防火墙(SNAT和DNAT)
1、SNAT:源地址转换
实现内网访问外网,修改IP地址,使用POSTROUTING
命令:iptables -t nat -A POSTROUTING -s 192.168.1.10/24 -j SNAT --to-source 202.1.1.1
2、MASQUERADE:地址伪装
适用于外网ip地址非固定的情况
将SNAT规则改为MASQUERADE即可
命令:iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
3、DNAT:目标地址转换
实现发布公司内部服务器,修改目标地址,使用PREROUTING
命令:iptables -t nat -A PREROUTING -d 202.1.1.1 -p tcp --dport 8080 -j DNAT -to 192.168.1.100:80
4、备份和还原规则:
备份:
1)iptables-save > 文件
导出到指定文件
2)service iptables save
导出到/etc/sysconfig/iptables
重启自动加载
还原:
1)iptables-restore < 文件名
2)service iptables restart
从默认文件/etc/sysconfig/iptables还原
5、iptables脚本编写
1)定义变量
2)加载必要的模块
modprobe ip_nat_ftp ftp地址转换模块
modprobe ip_conntrack_ftp ftp连接状态跟踪
lsmod 查看已加载的模块
3)调整内核参数:
启用内核转发功能:有三种方式(详见第十章笔记的第8点)
4)编写防火墙的规则
6、防火墙的类型:
主机型防火墙:针对本机进行保护,使用filter表中的INPUT、OUTPUT链
网络型防火墙:对内、外网转发进行保护,使用filter表中FORWARD链
Iptables防火墙(SNAT和DNAT)应用示例
实验拓扑图:
实验要求:
1、 如图所示,将网络连通,注意在外部服务器上不用配置默认网关。
2、分别在内部和外部服务器上搭建web服务,修改网页,如
内部web服务器的网页内容:
echo “192.168.1.10” > /var/www/html/index.html
在本机访问网页,测试能否成功访问。
步骤:
在网站服务器启动httpd服务
Service httpd start
在访问主页写入内容
echo 192.168.1.10 > /var/www/html/index.html
在本机测试如下图:
外网主机同上,测试结果如下图:
3、分别启动网站服务器和网关服务器的SSh,并把网关ssh服务端口改为2345。
步骤:
启动sshd服务: service sshd restart
进入网关服务器的ssh主配置文件vim /etc/ssh/sshd_confing
4、清空三台服务器的防火墙默认配置:service iptables stop
5、 SNAT(源地址转换):要求内部主机192.168.1.10能访问外部服务器的网站。
验证:在外部服务器通过查看web的访问日志。
步骤:
SNAT源地址转换命令如下:
到网站服务器访问外网
查看外网的Web访问日志,是否是200.0.0.1访问
6、 DNAT(目标地址转换):
1)外部主机通过http://200.0.0.1能够访问到内部服务器的网站。
在网关服务器上配置DANT
验证可以访问
2)外部主机使用ssh –p 2345 200.0.0.1 能够远程管理网关服务器。
3)外部主机使用ssh -p 2222 200.0.0.1 能够远程管理内部192.168.1.10服务器。
在网关服务器配置DNAT
到外网验证可以登录远程登录
7、在网关服务器上对防火墙进行保存和备份。
保存防火墙规则:
备份防火墙规则:iptables -save
8、在网关服务器上写一个防火墙的脚本。实现上面的功能。
脚本提示:路由转发,清空所有防火墙规则,SNAT,DNAT。
设置防火墙开机自动关闭,设置脚本开启自动执行。
脚本如下:
设置脚本开机自启动只需将脚本路径写入/etc/rc.local
文章参考微信公众号:L宝宝聊IT