我有一台正在运行的 Centos 6 服务器。它使用 iptables。我想迁移到 Centos 7。Centos 7 使用防火墙。
我的目标是下载 iptables 配置(规则)并应用于防火墙。我可以像这样下载 iptables 规则:
iptables-save
我不知道如何将iptables-save
的输出应用到防火墙。我希望有自动化的方法。
问题:我如何将当前的 iptables 规则应用于 Firewalld?我不喜欢手动配置,因为可能有许多服务器具有大量 iptables 规则/配置。
答案1
RHEL 6 --> 7 是一个不错的起点迁移规划指南简而言之:
- 如果您使用配置了 RHEL/CentOS 6 防火墙
system-config-firewall
,则可以使用该firewall-offline-cmd
工具将配置从/etc/sysconfig/system-config-firewall
迁移到 Firewalld 的默认区域。 如果您使用任何其他方法来配置当前防火墙,据我所知,没有实际的迁移到firewalld,您的选择是:
- 使用firewall-cmd 或firewall-config创建新的配置
- 禁用firewalld并继续使用旧的iptables和ip6tables服务。这样您就可以保留现有的防火墙规则。复制导出
iptables-save
并使用iptables-restore加载它。请参阅https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/security_guide/sec-using_iptables
答案2
在 SSH CentOS 6 中执行以下命令:
sudo iptables-save > iptables-export
cat iptables-export
scp iptables-export user@server_b_ip_address:/tmp
Firewalld 将其配置存储在/etc/firewalld
该目录中,您可以找到各种配置文件:
firewalld.conf
提供整体配置。- 目录中的文件
zones
为每个区域提供自定义的防火墙规则。 - 目录中的文件
services
提供您定义的自定义服务。 - 目录中的文件
icmptypes
提供您定义的自定义 icmptypes。
有一个匹配的目录结构,/usr/lib/firewalld
其中提供了默认值对于区域、服务和 icmp 类型,以防您想从模板开始自定义,或者只是看看文件是什么样子。
主要服务(ftp、httpd 等)的防火墙配置位于/usr/lib/firewalld/services
目录中。但仍可以在/etc/firewalld/services
目录中添加新配置。此外,如果同一服务的两个位置都存在文件,则目录中的文件/etc/firewalld/services
优先。
祝你未来的日子过得愉快,朋友!;-)