本章我们来学习使用iptables做网关服务器,并使用NAT功能共享上网以及发布服务器,和我们之前学过的nat原理完全一样,所以本章主要就是实验操作了。最后我们在再写个防火墙脚本,快速部署防火墙规则。

一、SNAT策略SNAT和我们在路由器上做的PAT是一样的,为了局域网接入internet,原理就不说了,直接做实验。

1、实验环境

iptables nat日志_服务器


在虚拟机上做实验简化为下图:

iptables nat日志_做实验_02


在网站服务器上搭建网站

iptables nat日志_搭建网站_03


在internet测试机上同样搭建网站

iptables nat日志_做实验_04

在网关服务器上添加两块网卡,分别是eth0:192.168.1.1和eth1:173.16.16.1,然后开启路由转发功能

iptables nat日志_iptables nat日志_05


iptables nat日志_服务器_06


iptables nat日志_iptables nat日志_07


在网关服务器上配置SNAT策略

iptables nat日志_做实验_08


在内部网站服务器上访问http://173.16.16.16

iptables nat日志_服务器_09

到internet测试机上查看日志,发现访问者不是192.168.1.7,而是173.16.16.1就对了

iptables nat日志_搭建网站_10


iptables nat日志_做实验_11


iptables nat日志_搭建网站_12

DNAT策略DNAT策略与我们之前学习过的静态nat是一样的,可以一对一,也可以端口映射,主要目的是为了发布服务器。

1、实验环境和上一个实验一样

iptables nat日志_搭建网站_13


在internet测试机上访问:http://173.16.16.1,打开的网站是192.168.1.7

iptables nat日志_搭建网站_14


三、发布企业内部的ssh服务器实验要求:2345端口对应网关服务器,2346端口对应网站服务器

1、实验环境:和上一个实验一样

iptables nat日志_服务器_15

2、在网关服务器和网站服务器分别开启2345和22端口的ssh

1)在网关服务器开启2345

iptables nat日志_搭建网站_16


2)网站服务器只需要开启sshd服务即可,默认端口就是22

2、在网关服务器上设置DNAT策略

iptables nat日志_服务器_17


在internet测试机上进行ssh测试

iptables nat日志_做实验_18


使用ssh -p 2345 root@173.16.16.1连接上的是网关服务器

iptables nat日志_做实验_19


使用ssh -p 2346 root@173.16.16.1连接上的是网站服务器

iptables nat日志_iptables nat日志_20


四、规则的导入、导出前言:备份可以把配置过的防火墙规则存储到一个位置,当更换防火墙或者规则出错的情况下,可以迅速恢复。

1、执行iptables-save命令导出linux防火墙规则。例如:

1)在网站服务器上查看防火墙规则

iptables nat日志_iptables nat日志_21


然后执行备份

iptables nat日志_做实验_22


把网站服务器上的规则全部删除

iptables nat日志_做实验_23


执行iptables-resore命令恢复,恢复之后查看规则已经还原。

iptables nat日志_做实验_24


2、使用iptables服务备份恢复防火墙规则把iptables-save的备份存储到/etc/sysconfig/iptables,然后就可以通过iptables服务快速恢复,每次开机后就自动重建。如果想恢复规则的时候,就直接重新启动iptables服务即可。

1)执行下面的命令把规则存储到服务文件中

iptables nat日志_做实验_25


2)然后把防火墙规则删除

iptables nat日志_服务器_26


3)执行service iptables restart就可以恢复规则

iptables nat日志_iptables nat日志_27


4)如果想清空规则的时候,除了执行iptables -F,也可以停止防火墙服务。

五、使用防火墙脚本使用脚本可以快速部署防火墙规则,当需要配置多台防火墙的时候,使用脚本可以快速生成规则,提高工作效率。例如:将output链中的默认策略设置为允许,不添加其他规则,将input链的默认策略设置为拒绝,只放行对个别服务的访问,以及响应本机访问请求的数据包。

1)Vi /opt/myipfw.hostonly

iptables nat日志_服务器_28


执行脚本

iptables nat日志_做实验_29


查看规则

iptables nat日志_服务器_30