linux 防火墙配置与REJECT导致没有生效问题

本文介绍如何通过编辑iptables配置文件来开放MySQL的3306端口,并重启服务使更改生效。

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

1.进入到/etc/sysconfig 如图

2.使用vi命令对iptables进行编辑."vi iptables",然后显示如图

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-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
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

3.新增mysql的端口3306,这里我们需要注意这行命令

-A INPUT -j REJECT --reject-with icmp-host-prohibited,这行已拒绝其他端口的命令,如果我们将新插入的
开放端口在放在这行命令之后的情况下,后面的配置开放的端口是不会被启用的。
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-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
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

4.然后调用service iptables resatar 命令
,显示如图代表成功。

[root@instance-9j07wgiz sysconfig]# service iptables restart
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules:                         [  OK  ]

 

转载于:https://www.cnblogs.com/djrLog/p/5519409.html

### Linux 防火墙概述 Linux 系统中的防火墙主要通过 `iptables` 或更现代的工具如 `firewalld` 和 `nftables` 来实现网络流量控制。这些工具允许管理员定义规则来过滤传入和传出的数据包,从而保护服务器免受未经授权访问。 #### iptables 的基本概念 `iptables` 是一种基于命令行的工具,用于管理 IPv4 数据包过滤表。它支持多种匹配条件以及动作执行方式。以下是其核心组件: - **链 (Chain)**:预设的有 INPUT、OUTPUT 和 FORWARD。 - **规则 (Rule)**:指定如何处理数据包。 - **目标 (Target)**:决定数据包的命运,比如 ACCEPT(接受)、DROP(丢弃)或 REJECT(拒绝并通知发送方)。[^1] ```bash sudo iptables -L -v ``` 上述命令可以查看当前设置的所有规则列表及其详细信息。 #### firewalld 功能特点 相比传统的 `iptables`,`firewalld` 提供了一个动态管理防火墙的功能集,并且支持区域的概念以便于分类不同的信任级别。它的优势在于能够实时修改而无需重启服务。[^2] 安装启动 service: ```bash sudo apt install firewalld # 对Debian/Ubuntu系统适用 sudo systemctl start firewalld sudo systemctl enable firewalld ``` 添加端口开放示例: ```bash sudo firewall-cmd --add-port=80/tcp --permanent sudo firewall-cmd --reload ``` 以上两条指令分别永久开启 HTTP 协议对应的 80 号端口,并重新加载配置使更改生效。 #### nftables 新特性介绍 作为下一代框架替代品之一,`nftables` 设计上更加灵活高效,在语法结构上有显著改进。它引入了集合(Set)机制简化复杂场景下的策略制定过程。同时提供了丰富的扩展模块满足特定需求。[^3] 简单例子展示创建一条阻止所有外部SSH连接的新规: ```bash sudo nft add table inet filter sudo nft add chain inet filter input { type filter hook input priority 0 \; } sudo nft add rule inet filter input tcp dport 22 counter drop ``` 这组脚本先声明一个新的表格及关联链条,最后一步则具体指定了针对TCP协议下目的端口号为22(即ssh默认值)的所有请求都予以拦截操作。 ### 结论部分 综上所述,无论是经典方案还是新兴技术路线都能很好地完成linux平台上的网络安全防护任务;选择哪款取决于实际应用场景和个人偏好等因素考量之后再做定夺比较合适。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值