在CentOS 7上如何从FirewallD迁移至Iptables

打印 上一主题 下一主题

主题 1878|帖子 1878|积分 5634

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,不由得分享一下给大家。点击跳转到网站。
介绍

与大多数其他 Linux 发行版一样,CentOS 7 使用 Linux 内核中的 netfilter 框架来访问通过网络堆栈活动的数据包。这提供了必要的接口来检查和操作数据包,以实现防火墙系统。
大多数发行版使用 iptables 防火墙,它使用 netfilter 钩子来执行防火墙规则。CentOS 7 配备了一个名为 firewalld 的替换服务,它实现了雷同的功能。
固然 firewalld 是一个非常强大的防火墙办理方案,具有出色的功能,但对于一些用户来说,如果他们熟悉 iptables 的语法并且满意其行为和性能,大概更容易使用 iptables。iptables 命令现实上被 firewalld 本身使用,但是 CentOS 7 默认情况下没有安装 iptables 服务。在本指南中,我们将演示如何在 CentOS 7 上安装 iptables 服务,并将防火墙从 firewalld 迁移到 iptables(如果您想了解如何使用 FirewallD,请检察此指南)。
保存当前防火墙规则(可选)

在将服务器的防火墙办理方案切换到 iptables 之前,最好保存 firewalld 正在执行的当前规则。我们上面提到,firewalld 守护程序现实上使用 iptables 命令与 netfilter 内核钩子通信。因此,我们可以使用 iptables 命令来转储当前规则。
通过输入以下命令将当前规则集转储到标准输出并保存到您的主目次中的名为 firewalld_iptables_rules 的文件中:
  1. sudo iptables -S | tee ~/firewalld_iptables_rules
复制代码
对 ip6tables 也执行雷同操作:
  1. sudo ip6tables -S | tee ~/firewalld_ip6tables_rules
复制代码
根据运动的 firewalld 区域、启用的服务以及从 firewall-cmd 直接传递给 iptables 的规则,转储的规则集大概非常巨大。
firewalld 服务使用普通的 iptables 规则来实现其防火墙策略。它通过使用 iptables 链构建管理框架来实现这一点。您大概会看到的大多数规则将用于创建这些管理链并指导流量进出这些结构。
您迁移到 iptables 服务的防火墙规则将不需要重新创建 firewalld 依赖的管理框架。因此,您最终实验的规则集大概会简朴得多。我们在此保存整个聚集,以尽大概保持尽大概多的原始数据。
您可以通过输入以下命令来检察一些更重要的行,以了解您需要重新创建的策略:
  1. grep 'ACCEPT\|DROP\|QUEUE\|RETURN\|REJECT\|LOG' ~/firewalld_iptables_rules
复制代码
这将主要表现导致最终决议的规则。只跳转到用户创建的链的规则将不会表现。
下载并安装 Iptables 服务

要开始服务器的过渡,您需要从 CentOS 软件堆栈下载并安装 iptables-service 包。
通过输入以下命令下载并安装服务文件:
  1. sudo yum install iptables-services
复制代码
这将下载并安装用于管理 iptables 服务的 systemd 脚本。它还将在 /etc/sysconfig 目次中写入一些默认的 iptables 和 ip6tables 设置文件。
构建您的 Iptables 防火墙规则

接下来,您需要通过修改 /etc/sysconfig/iptables 和 /etc/sysconfig/ip6tables 文件来构建您的 iptables 防火墙规则。这些文件保存了在启动 iptables 服务时将被读取和应用的规则。
您如何构建防火墙规则取决于是否安装并使用 system-config-firewall 进程来管理这些文件。检查 /etc/sysconfig/iptables 文件顶部以检察是否发起不要手动编辑:
  1. sudo head -2 /etc/sysconfig/iptables
复制代码
如果输出看起来像如许,可以自由地手动编辑 /etc/sysconfig/iptables 和 /etc/sysconfig/ip6tables 文件以实验 iptables 防火墙的策略:
  1. [secondary_label output]
  2. # sample configuration for iptables service
  3. # you can edit this manually or use system-config-firewall
复制代码
使用 sudo 权限打开并编辑文件以添加您的规则:
  1. sudo nano /etc/sysconfig/iptables
  2. sudo nano /etc/sysconfig/ip6tables
复制代码
在订定规则后,您可以使用以下命令测试您的 IPv4 和 IPv6 规则:
  1. sudo sh -c 'iptables-restore -t < /etc/sysconfig/iptables'
  2. sudo sh -c 'ip6tables-restore -t < /etc/sysconfig/ip6tables'
复制代码
另一方面,如果检查 /etc/sysconfig/iptables 文件的输出看起来像如许,您不应该手动编辑该文件:
  1. [secondary_label output]
复制代码
由 system-config-firewall 编写的防火墙设置

不发起手动修改此文件。

这意味着安装并使用了 system-config-firewall 管理工具来管理此文件。任何手动更改都将被该工具覆盖。如果看到这个提示,应该使用相关工具来更改防火墙。对于文本界面,输入以下命令:
  1. sudo system-config-firewall
  2. -tui
复制代码
如果安装了图形界面,可以输入以下命令启动:
  1. sudo system-config-firewall
复制代码
如果需要学习关于 iptables 规则和语法的帮助,下面的指南大概会有所帮助,尽管它们主要针对 Ubuntu 系统:


  • 如何在 Ubuntu 14.04 上使用 Iptables 设置防火墙
  • Iptables 基础知识:常见防火墙规则和命令
  • 如何在 Ubuntu 14.04 上使用 Iptables 实现根本防火墙模板
制止 FirewallD 服务并启动 Iptables 服务

接下来,我们需要制止当前的 firewalld 防火墙并启动我们的 iptables 服务。我们将使用 && 构造在 firewalld 服务乐成关闭后立刻启动新的防火墙服务:
  1. sudo systemctl stop firewalld && sudo systemctl start iptables; sudo systemctl start ip6tables
复制代码
您可以通过输入以下命令验证 firewalld 是否未运行:
  1. sudo firewall-cmd --state
复制代码
您还可以通过输入以下命令检察您在 /etc/sysconfig 目次中设置的规则是否已加载和应用:
  1. sudo iptables -S
  2. sudo ip6tables -S
复制代码
此时,iptables 和 ip6tables 服务已激活当前会话。但是,当前情况下,firewalld 服务仍旧会在服务器重新启动时主动启动。
这是测试防火墙策略的最佳时机,以确保您拥有所需的访问级别,因为如果出现任何问题,可以重新启动服务器以恢复到旧的防火墙。
禁用 FirewallD 服务并启用 Iptables 服务

在测试防火墙规则以确保策略精确执行后,可以禁用 firewalld 服务:
  1. sudo systemctl disable firewalld
复制代码
这将防止服务在启动时主动启动。由于在运行 iptables 服务时也不应手动启动 firewalld 服务,可以采取额外步调屏蔽该服务。这将防止手动启动 firewalld 服务:
  1. sudo systemctl mask firewalld
复制代码
现在,可以启用 iptables 和 ip6tables 服务,以便它们在启动时主动启动:
  1. sudo systemctl enable iptables
  2. sudo systemctl enable ip6tables
复制代码
这应该完成了防火墙的过渡。
结论

实验防火墙是确保服务器安全的重要步调。固然 firewalld 是一个很好的防火墙办理方案,但有时使用最熟悉的工具或在更多样化的基础办法中使用雷同的系统是最明智的选择。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宝塔山

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表