linux防火墙单独针对一个端口进行限制设置

本文详细解析了iptables防火墙的基本配置原则,包括如何开放特定端口如SSH的22端口,以及如何允许指定IP访问特定端口如8085,同时拒绝其他不必要的连接请求。通过具体规则示例,读者可以了解iptables的链、目标和匹配条件等核心概念。

*filter
:INPUT ACCEPT [345:35776]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [324:38238]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT       ----开启ssh22端口,防止登陆不上
-A FORWARD -j ACCEPT
-A OUTPUT -j ACCEPT

 

-A INPUT -s 10.199.77.124 -p tcp -m tcp --dport 8085 -j ACCEPT
-A INPUT -s 114.247.0.58 -p tcp -m tcp --dport 8085 -j ACCEPT            ---允许114.247.0.58访问8085端口
-A INPUT -p tcp -m tcp --dport 8085 -j DROP                                          ---禁用22端口

-A INPUT -j ACCEPT                                                                               ---不限制端口,像没开防火墙一样
 

-A INPUT -j REJECT --reject-with icmp-host-prohibited              -----这两句必须加上
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

### 如何在 Linux 系统中配置防火墙以开放 9007 端口 #### 启动并确认防火墙运行状态 为了确保可以正常操作防火墙,需验证 `firewalld` 是否正在运行。如果未启动,则需要手动启用。 ```bash systemctl status firewalld ``` 如果显示 `inactive (dead)`,则表示防火墙尚未启动。可以通过以下命令启动防火墙: ```bash systemctl start firewalld ``` 若遇到启动失败的情况,可能是由于服务被锁定所致。此时可尝试解锁服务后再重新启动: ```bash systemctl unmask firewalld.service systemctl start firewalld.service ``` 以上步骤能够解决大部分因服务锁定而导致的启动失败问题[^1]。 --- #### 添加端口防火墙规则 要允许外部访问特定端口(如 9007),需要将其添加至防火墙规则中。以下是具体的操作方法: 通过 `firewall-cmd` 命令实现端口开放: ```bash firewall-cmd --add-port=9007/tcp --permanent ``` 此命令的作用是永久性地向防火墙规则中加入 TCP 协议下的 9007 端口,并标记为持久化存储以便于系统重启后仍然生效[^2]。 完成上述修改后,还需重载防火墙配置使更改立即生效: ```bash firewall-cmd --reload ``` 最后一步非常重要,因为只有当防火墙重新加载其配置文件时,新增加的内容才会被执行。 --- #### 查看端口是否成功开放 为了检验新添加的端口是否已经正确开放,可以查询当前活动中的所有监听端口号列表或者单独查找某个具体的端口是否存在其中: ```bash firewall-cmd --list-ports ``` 这会返回目前由防火墙管理的所有开放端口集合。假如之前所设的 9007 被列入其中,则说明设置无误;反之亦然。 另外也可以针对单个端口做进一步核查: ```bash firewall-cmd --query-port=9007/tcp ``` 如果输出结果为 `yes` 则代表该端口已被成功开启;如果是 `no` 就意味着可能存在问题需要排查原因[^2]。 --- #### 自定义场景下其他注意事项 对于某些特殊环境而言,除了基本的端口开放外还可能存在额外需求比如限定源地址范围等更精细控制措施,在这种情况下就需要利用更加复杂的参数组合来满足实际应用场景的要求了。 例如仅允许来自某一段 IP 地址区间内的客户端连接服务器上的这个端口: ```bash firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="9007" accept' --permanent ``` 这条指令将会创建一条富规则,它规定只接受来自于 IPv4 类型网络里属于子网掩码长度为 24 的 192.168.1.x 子网内部发起的数据包请求到达目标主机上的 tcp 协议编号为 9007 的那个通信接口处[^2]。 随后同样记得再次刷新整个框架结构使之即时反映最新调整情况下来保障策略得以贯彻实施下去即可。 --- ### 总结 综上所述,通过一系列标准化流程就可以轻松达成让 linux 平台上面部署的服务程序对外界提供稳定可靠的服务接入能力的目的啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值