从 CentOS 7 开始,FirewallD 取代了 iptables 成为默认的防火墙管理工具。
FirewallD 是一个完整的防火墙解决方案,可以通过名为 firewall-cmd 的命令行实用程序进行控制。如果您更习惯使用 Iptables 命令行的语法,则可以禁用 FirewallD 并恢复经典的 iptables 设置。
本教程将向您展示如何禁用 FirewallD 服务并安装 iptables。
前提条件
在开始本教程之前,请确保您已登录为具有 sudo 权限的用户。
禁用 FirewallD
要在您的 CentOS 7 系统上禁用 FirewallD,请按照以下步骤操作:
输入以下命令以停止 FirewallD 服务:
sudo systemctl stop firewalld禁用 FirewallD 服务,使其不在系统启动时自动运行:
sudo systemctl disable firewalld屏蔽 FirewallD 服务,以防止其他服务启动它:
sudo systemctl mask --now firewalld
安装并启用 Iptables
执行以下步骤在 CentOS 7 系统上安装 Iptables:
运行以下命令从 CentOS 软件仓库安装
iptables-service包:sudo yum install iptables-services安装包完成后,启动 Iptables 服务:
sudo systemctl start iptables sudo systemctl start ip6tables启用 Iptables 服务,使其在系统启动时自动运行:
sudo systemctl enable iptables sudo systemctl enable ip6tables通过以下命令检查 iptables 服务状态:
sudo systemctl status iptables sudo systemctl status ip6tables要查看当前的 iptables 规则,请使用以下命令:
sudo iptables -nvL sudo ip6tables -nvL默认情况下,仅开放 SSH 端口 22。输出结果应如下所示:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 5400 6736K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 2 148 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 3 180 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 4298 packets, 295K bytes) pkts bytes target prot opt in out source destination
至此,您已成功启用 iptables 服务,可以开始构建您的防火墙了。这些更改将在重启后依然有效。