如何迁移iptables防火墙规则到新服务器

当从一个服务器迁移到另一个,常常希望向iptables防火墙规则迁移作为该过程的一部分。本教程将告诉你如何轻松地复制你的积极iptables规则设置从一台服务器到另一个。本教程...

介绍

从一个服务器迁移到另一个服务器时,通常需要将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-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。

结论

恭喜! 您的防火墙规则已从原始服务器迁移到新的服务器。