介绍
从一个服务器迁移到另一个服务器时,通常需要将iptables防火墙规则作为过程的一部分进行迁移。 本教程将向您展示如何轻松地将主动iptables规则集从一个服务器复制到另一个服务器。
先决条件
本教程需要两个服务器。 我们将把源服务器,其中有现有的iptables规则, 服务器A,目标服务器,其中的规则将被迁移到,如将服务器B来表示。
您还需要有超级用户或sudo
,访问这两个服务器。
查看现有Iptables规则
在迁移您的iptables规则之前,让我们看看它们是什么设置的。 你可以做到这一点与服务器A下面的命令:
sudo iptables -S
示例输出: -P输入接受 -P前来接受 -P输出接受 -A INPUT -m conntrack -ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -s 15.15.15.51/32 -j DROP
上述示例规则将用于演示防火墙迁移过程。
导出Iptables规则
在iptables-save
命令将当前iptables规则到stdout
(标准输出)。 这为我们提供了一种简单的方法导出的防火墙规则文件,通过重定向stdout
到文件中。
在服务器A,一个与要迁移,使用了iptables规则iptables-save
到当前规则导出到一个名为“iptables的出口”像这样的文件:
cd〜 sudo的iptables-save命令> 的iptables出口
这将创建iptables-export
文件,在你的主目录。 此文件可以在不同的服务器上使用,以将防火墙规则加载到iptables。
查看文件内容(可选)
让我们快速看一下文件的内容。 我们将使用cat
命令打印出来给终端:
cat iptables-export
iptables导出内容: #生成的iptables-save v1.4.21发表于2015年9月1日17:32:29 *过滤 :INPUT ACCEPT [135:10578] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [8364:1557108] -A INPUT -m conntrack -ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -s 15.15.15.51/32 -j DROP 承诺 #完成于2015年9月1日17:32:29
可以看到,该文件包含活动iptables规则的配置。 现在,我们已经准备好这个文件复制到我们的目标服务器上, 服务器B。
将导出的规则复制到目标服务器
我们需要的规则文件复制到我们的目标服务器上, 服务器b。要做到这一点,最简单的方法是使用scp
或文件内容复制并粘贴到服务器B上一个新的文件,我们将演示如何使用scp
复制该文件在网络上的/tmp
目录。
在服务器A上运行此scp
命令。 请务必使用服务器的登录名和IP地址替换突出显示的部分:
SCP iptables的出口用户 @ server_b_ip_address:/ tmp目录
提供适当的认证后,该文件将被复制到/tmp
的内容在服务器B.注意目录/tmp
都在免费的,如果你想保留它到别的地方把它重新启动感删除。
导入Iptables规则
使用目标服务器上导出的规则,可以将它们加载到iptables中。 但是,根据您的情况,您可能需要使用新的IP地址和范围更新文件中的规则,并且可能需要更新接口名称。 如果要在加载之前改变规则,一定要编辑/tmp/iptables-export
现在文件。
一旦你准备好装载从规则iptables-export
文件到iptables的,让我们使用iptables-restore
命令这样做。
在服务器B上的目标服务器,运行此命令加载防火墙规则:
sudo iptables-restore </ tmp / iptables-export
这将加载规则到iptables。 您可以使用验证这个sudo iptables -S
命令。
保存规则
iptables规则是短暂的,所以必须特别注意采取他们去后,重新启动持续,很可能,你将要执行服务器B这一步,我们将告诉你如何节省双方Ubuntu和CentOS的规则。
Ubuntu
在Ubuntu上,保存iptables规则的最简单的方法,所以他们将在重新启动后生存,就是使用iptables-persistent包。 使用apt-get安装它,像这样:
sudo apt-get install iptables-persistent
在安装过程中,您将询问是否要保存当前的防火墙规则。 回应yes
,如果你想保存当前的规则集。
如果以后更新防火墙规则,并希望保存更改,请运行以下命令:
sudo invoke-rc.d iptables-persistent save
CentOS 6和更旧版本
在CentOS 6和较早版本 - CentOS 7默认情况下使用FirewallD - 您可以使用iptables init脚本保存iptables规则:
sudo服务iptables保存
这将您当前的iptables规则保存到/etc/sysconfig/iptables
文件,该文件得到由在启动时加载的iptables。
结论
恭喜! 您的防火墙规则已从原始服务器迁移到新的服务器。