浅谈linux系统firewalld防火墙常用策略(ipv6、ipv4)

本文提供CentOS7系统中firewalld防火墙的基本配置方法及常用命令,涵盖启动、规则管理、端口管理等功能,帮助读者快速掌握日常维护所需技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  本文以CentOS7系统为例来讲述firewalld防火墙常用命令以及基础策略,主要记录博主日常维护系统常用防火墙命令操作,网络安全需求日益增长,需要大家共同努力维护绿色安全。

1.启动、开机自启防火墙并查看其运行状态

systemctl enable --now firewalld && systemctl status firewalld

在这里插入图片描述

2.查看所有规则

# prots:所开放、暴漏的端口(包括ipv4、ipv6)
# rich rules:自定义防火墙规则,灵活运用,非常的实用(可限制ipv4、ipv6、源地址等)
firewall-cmd  --list-all

在这里插入图片描述

3.永久添加、删除一个端口

# 添加
firewall-cmd --zone=public --add-port=3306/tcp --permanent && firewall-cmd --reload
# 删除
firewall-cmd --zone=public --remove-port=3306/tcp --permanent && firewall-cmd --reload
# 查看
firewall-cmd --zone=public --query-port=3306/tcp

4.查看所有已开端口

firewall-cmd  --list-ports

5.ipv4、ipv6双协议区分限制

# ipv4
# 默认是public域
# 添加端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port protocol="tcp" port="3306" accept'
firewall-cmd --reload
# 删除端口
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" port protocol="tcp" port="3306" accept'
firewall-cmd --reload

# ipv6
# 添加端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv6" port protocol="tcp" port="3306" accept'
firewall-cmd --reload
# 删除端口
firewall-cmd --permanent --remove-rich-rule='rule family="ipv6" port protocol="tcp" port="3306" accept'
firewall-cmd --reload

# 查看已经设置的规则
firewall-cmd --zone=public --list-rich-rules

6.对ip段开放所有端口

# 添加
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="172.17.0.0/24" accept'
firewall-cmd --reload
# 删除
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="172.17.0.0/24" accept'
firewall-cmd --reload

7.限制访问源、访问端口

# 限制具体ip
# 添加
firewall-cmd  --permanent --add-rich-rule="rule family="ipv4" source address="192.168.21.4" port protocol="tcp" port="3005-3007" accept"
firewall-cmd --reload
# 删除
firewall-cmd  --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.21.4" port protocol="tcp" port="3005-3007" accept"
firewall-cmd --reload

# 限制ip段
# 添加
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.254.0.0/16" accept' 
firewall-cmd --reload
# 删除
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="10.254.0.0/16" accept' 
firewall-cmd --reload

8.信任docker、tunl0和calico卡(k8s常用)

# 需要注意的是如果使用了多个域例如trusted、public,加规则时需要加声明参数,否则会有提示
# 例如:--zone=public
firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --permanent --zone=trusted --change-interface=tunl0 
firewall-cmd --permanent --zone=trusted --change-interface=calixxx
firewall-cmd --reload

# 查看信任网卡
firewall-cmd --zone=trusted --list-interfaces

9.清空所有规则

firewall-cmd --permanent --list-all | grep ports | head -n 1 | \
cut -d: -f2 | tr ' ' '\n' | xargs -I {} firewall-cmd --permanent --remove-port={}
firewall-cmd --reload
<think>好的,我现在需要帮助用户在Linux系统中配置firewalld防火墙以允许NFS服务器正常工作。根据用户提供的引用内容,我需要整合相关信息,并确保步骤正确。 首先,用户已经引用了四个相关的资料,其中引用1、2、3和4提到了安装NFS服务、配置共享目录以及firewalld的基本知识。特别是引用1和3详细说明了NFS服务端和客户端的安装步骤,以及防火墙端口的开放方法。引用4则解释了firewalld的工作原理,说明它和iptables一样基于netfilter,但管理方式不同。 接下来,我需要确定在firewalld中允许NFS服务需要开放哪些服务或端口。根据引用1,开放NFS相关端口包括nfs、mountd、rpc-bind这三个服务。而引用3提到安装NFS服务时的步骤,但没有具体说明防火墙配置,但引用1补充了这部分,需要添加这些服务并重新加载防火墙。 步骤应该是这样的:首先安装NFS服务端工具,然后配置共享目录,接着在firewalld中添加对应的服务,最后重新加载防火墙规则。同时,客户端需要安装NFS客户端工具,并挂载共享目录。此外,可能需要启用并启动NFS相关服务,如nfs-server和rpcbind。 需要检查是否有遗漏的步骤,例如是否需要永久添加防火墙规则(使用--permanent参数),以及配置共享目录后的导出操作(exportfs -arv)。引用3中提到的配置共享目录后需要执行exportfs命令,这也是关键的一步。 另外,用户可能会遇到的常见问题包括防火墙规则未正确加载,或者NFS服务未启动,导致客户端无法连接。因此,在回答中需要强调这些步骤,并提醒用户检查服务状态和规则是否生效。 最后,生成相关问题时要围绕NFS配置和防火墙设置,例如如何测试NFS连接、排除故障的方法,或者防火墙的其他相关服务配置。 总结步骤: 1. 安装NFS服务端工具。 2. 配置共享目录和导出设置。 3. 添加firewalld服务(nfs、mountd、rpc-bind)。 4. 重新加载防火墙并重启相关服务。 5. 客户端安装工具并挂载目录。 6. 验证连接。 确保每个步骤都参考了正确的引用,并在需要的地方添加引用标识。</think>### 分步配置指南 #### 1. **安装NFS服务端工具** 根据系统类型选择安装命令: - **CentOS/RHEL**: ```bash sudo yum install nfs-utils -y ``` - **Debian/Ubuntu**: ```bash sudo apt update && sudo apt install nfs-kernel-server -y ``` #### 2. **配置NFS共享目录** - **创建共享目录**: ```bash sudo mkdir /shared_directory sudo chmod 777 /shared_directory # 按需设置权限 ``` - **编辑导出配置文件**: 修改 `/etc/exports`,添加规则(例如允许所有客户端访问): ```bash /shared_directory *(rw,sync,no_root_squash) ``` - **应用配置**: ```bash sudo exportfs -arv # 重新导出共享目录[^3] ``` #### 3. **配置firewalld开放NFS服务** - **添加NFS相关服务**: ```bash sudo firewall-cmd --permanent --add-service=nfs # 开放NFS主服务端口(2049) sudo firewall-cmd --permanent --add-service=mountd # 开放文件挂载管理端口 sudo firewall-cmd --permanent --add-service=rpc-bind # 开放RPC绑定端口(111) ``` - **重新加载防火墙**: ```bash sudo firewall-cmd --reload # 使规则生效[^2] ``` #### 4. **启动并启用NFS相关服务** - **启动服务**: ```bash sudo systemctl start nfs-server rpcbind sudo systemctl enable nfs-server rpcbind # 设置开机自启 ``` #### 5. **客户端配置** - **安装NFS客户端工具**: - CentOS/RHEL:`sudo yum install nfs-utils -y` - Debian/Ubuntu:`sudo apt install nfs-common -y` - **挂载共享目录**: ```bash sudo mount -t nfs <服务器IP>:/shared_directory /本地挂载点 ``` #### 6. **验证配置** - **查看防火墙规则**: ```bash sudo firewall-cmd --list-all # 确认nfs、mountd、rpc-bind已允许[^4] ``` - **测试客户端访问**: ```bash df -h # 检查挂载是否成功 touch /本地挂载点/testfile # 测试写入权限 ``` --- ### 关键注意事项 - **端口范围**:NFS依赖动态端口(如`rpc.mountd`),若防火墙严格限制,需额外固定端口并开放[^1]。 - **权限问题**:确保共享目录的权限(`/etc/exports`中的配置)与文件系统权限匹配。 - **服务依赖**:NFS需要`rpcbind`服务支持,启动时需同时激活。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cs阿坤dn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值