CentOS 系统加载 Netfilter 的详细步骤

Netfilter 简介
Netfilter 是 Linux 内核的一个功能强大的防火墙框架,它为 Linux 系统提供了强大的包过滤、网络地址转换(NAT)和网络监控等功能,在 CentOS 系统中,我们可以通过加载 Netfilter 模块来启用防火墙功能。
准备环境
在开始之前,请确保您的 CentOS 系统已经安装了以下软件包:
iptables:Netfilter 的用户空间工具。firewalld:提供更高级的防火墙功能,但与iptables不兼容。
您可以使用以下命令安装这些软件包:
sudo yum install iptables firewalld
加载 Netfilter 模块
-
检查 Netfilter 模块是否已加载
使用以下命令检查 Netfilter 模块是否已加载:
sudo lsmod | grep nfnetlink
如果输出中没有
nfnetlink,则表示 Netfilter 模块尚未加载。 -
加载 Netfilter 模块

使用以下命令加载 Netfilter 模块:
sudo modprobe nfnetlink
如果模块加载成功,您应该会看到类似于以下的消息:
modprobe: FATAL: Module nfnetlink not found in modprobe's cache.
如果出现此消息,请尝试使用
lsmod命令再次检查模块是否已加载。 -
验证 Netfilter 模块加载状态
使用以下命令验证 Netfilter 模块是否已成功加载:
sudo lsmod | grep nfnetlink
如果输出中包含
nfnetlink,则表示模块已成功加载。
配置 Netfilter 规则
-
创建一个新的 Netfilter 规则文件
使用以下命令创建一个新的 Netfilter 规则文件:
sudo vi /etc/sysconfig/iptables
-
添加以下规则到规则文件中:

# 基本防火墙规则 *filter :INPUT ACCEPT [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] # 允许本地主机访问 -A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT # 允许指定端口访问 -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT # 默认拒绝所有流量 -A INPUT -j DROP -A FORWARD -j DROP
-
保存并关闭文件。
重启防火墙服务
-
重启
iptables服务:sudo systemctl restart iptables
-
重启
systemctl服务以使更改生效:sudo systemctl restart systemctl
FAQs
-
问题:如何查看 Netfilter 规则?
解答: 使用以下命令查看 Netfilter 规则:
sudo iptables -L
-
问题:如何卸载 Netfilter 模块?
解答: 使用以下命令卸载 Netfilter 模块:
sudo modprobe -r nfnetlink