centos7 firewall指定IP与端口、端段访问(常用)

CentOS7防火墙配置:允许特定IP和端口访问
本文介绍了如何在CentOS7系统中使用firewall-cmd命令来配置防火墙,允许指定IP地址和端口的访问。步骤包括启动防火墙、添加规则、重新加载配置和查看及删除规则。该方法适用于系统管理员进行网络安全管理。

centos7 firewall指定IP与端口、端段访问(实测有效)

文章原址:https://www.cnblogs.com/xiaohanlin/p/11641273.html

centos7 firewall指定IP与端口、端段访问(常用)

1、启动防火墙

systemctl start firewalld.service

2、指定IP与端口

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.142.166" port protocol="tcp" port="5432" accept"

3、重新载入,使配置生效

systemctl restart firewalld.service

4、查看配置结果

firewall-cmd --list-all

5、删除规则

firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.142.166" port protocol="tcp" port="11300" accept"
<think>好的,我现在需要帮助用户配置Linux防火墙,只允许特定IP访问SSH的22端口。首先,我得回忆一下关于firewalld的相关知识,确保步骤正确,避免用户被锁在外面。 用户提到使用firewall-cmd,所以应该是在使用firewalld作为防火墙管理工具的系统,比如CentOS或RHEL。首先,确认防火墙是否已经启用。如果用户之没启用过,可能需要先启动并设置开机自启。但根据引用[1]和[2],启用防火墙时特别要注意先添加规则,否则可能无法远程连接。所以必须提醒用户先添加允许特定IP的规则,再调整默认设置。 接下来,用户需要允许特定IP访问22端口。常规步骤可能是先添加富规则(rich rule),允许指定IP访问22端口,然后再拒绝其他所有流量到22端口。但顺序很重要,因为防火墙规则是按顺序匹配的。需要确保允许规则在拒绝规则之,否则会被拒绝规则先拦截。 引用[3]中提到使用firewall-cmd来允许某个IP访问指定端口,所以具体的命令应该是使用--add-rich-rule参数。例如,允许IP 192.168.1.100访问22端口的命令是: sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port="22" protocol="tcp" accept' 然后,需要拒绝其他所有IP访问22端口。这可以通过将ssh服务(默认关联22端口)的默认访问设置为拒绝,或者直接添加拒绝规则。但根据引用[2]的处理思路,先关闭端口访问,再设置特定IP允许。可能更安全的做法是,先移除现有的允许规则,然后添加允许特定IP的规则,最后明确拒绝其他IP。 另外,引用[1]警告在启用防火墙必须添加远程端口规则,否则可能导致无法连接。因此,在用户执行这些命令之,必须确保当会话不会中断,或者用户有其他方式访问服务器,比如通过本地控制台或另一个已允许的IP。 完成所有规则添加后,需要重新加载防火墙使设置生效,使用sudo firewall-cmd --reload。然后验证规则是否正确,使用--list-all查看当配置。 可能还需要考虑IPv6的情况,如果用户网络中有IPv6地址,需要在规则中指定family为ipv6,或者分别处理。但用户问题中没有特别提到,可能暂时只需处理IPv4。 另外,用户可能需要永久生效,所以每个添加规则的命令都需要加上--permanent参数,或者最后再使用--runtime-to-permanent保存。但通常直接使用--permanent更直接,然后reload。 最后,生成相关问题时要考虑用户可能的后续疑问,比如如何撤销设置、添加多个IP、处理不同端口或服务,以及防火墙的其他管理命令等。确保问题覆盖用户可能需要的扩展知识。</think>### 配置Linux防火墙仅允许特定IP访问SSH端口22 #### 步骤详解 1. **启用防火墙并检查状态** 确保防火墙处于运行状态,避免配置失效: ```bash sudo systemctl start firewalld # 启动防火墙 sudo systemctl enable firewalld # 设置开机自启 sudo firewall-cmd --state # 查看状态(应为"running") ``` 2. **添加允许特定IP访问22端口的规则** 假设允许的IP为`192.168.1.100`,使用富规则(rich rule)精确控制访问: ```bash sudo firewall-cmd --permanent --add-rich-rule=' rule family="ipv4" source address="192.168.1.100/32" port port="22" protocol="tcp" accept' ``` 说明: - `--permanent`:规则永久生效 - `source address`:支持CIDR格式(如`/24`表示一个网) - 若需允许多个IP,重复执行此命令并修改地址即可[^3]。 3. **禁止其他所有IP访问22端口** 显式拒绝非指定IP的SSH连接请求: ```bash sudo firewall-cmd --permanent --add-rich-rule=' rule family="ipv4" port port="22" protocol="tcp" reject' ``` **注意**: - 规则的匹配顺序遵循“先允许后拒绝”逻辑,确保允许规则在拒绝规则之生效[^2]。 4. **重新加载配置并验证** 应用规则并检查配置: ```bash sudo firewall-cmd --reload # 重新加载防火墙 sudo firewall-cmd --list-all # 查看全部规则 ``` 输出中应包含类似内容: ```bash ports: 22/tcp rich rules: rule family="ipv4" source address="192.168.1.100" port port="22" protocol="tcp" accept rule family="ipv4" port port="22" protocol="tcp" reject ``` #### 重要提示 - **操作风险**:若当通过SSH远程连接服务器,需确保至少有一个允许的IP规则已生效,否则可能立即断开连接。建议在物理终或带外管理界面操作[^1]。 - **临时放行IP**:若误操作导致锁定,可通过本地终执行`sudo firewall-cmd --add-source=IP地址 --zone=trusted`临时恢复访问
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值