如何屏蔽入站流量防安全风险?

在Linux系统中,端口屏蔽是网络安全的核心实践之一,通过控制特定端口的访问权限,可有效防止未授权访问、恶意扫描和攻击,以下详细介绍两种主流工具的操作方法(基于CentOS/Ubuntu等主流发行版),请根据实际环境选择。


使用 iptables 屏蔽端口

iptables 是 Linux 内核集成的防火墙工具,适合所有主流发行版。

屏蔽指定端口(以 22/TCP 为例)

# 屏蔽出站流量(OUTPUT链)
sudo iptables -A OUTPUT -p tcp --dport 22 -j DROP
  • -A INPUT:追加到INPUT链(入站规则)
  • -p tcp:指定TCP协议
  • --dport 22:目标端口22
  • -j DROP:丢弃数据包(无响应)

允许特定IP访问端口(白名单)

# 仅允许 192.168.1.100 访问22端口
sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP  # 其他IP禁止访问

保存规则(重启后生效)

# Ubuntu/Debian
sudo iptables-save > /etc/iptables/rules.v4
# CentOS/RHEL
sudo service iptables save

使用 firewalld 屏蔽端口(推荐用于 CentOS/RHEL 7+)

firewalld 提供动态管理支持,更易用。

永久屏蔽端口

# 屏蔽TCP 3306端口(MySQL默认端口)
sudo firewall-cmd --permanent --remove-port=3306/tcp
# 屏蔽UDP 53端口(DNS)
sudo firewall-cmd --permanent --remove-port=53/udp

允许特定服务(如HTTP/HTTPS)

sudo firewall-cmd --permanent --add-service=http  # 放行80端口
sudo firewall-cmd --permanent --add-service=https # 放行443端口

生效配置

sudo firewall-cmd --reload  # 重载配置
sudo firewall-cmd --list-ports  # 查看已屏蔽端口

其他工具补充

  • UFW (Ubuntu 简化工具)
    sudo ufw deny 22/tcp  # 屏蔽22端口
    sudo ufw allow from 192.168.1.0/24 to any port 80  # 允许子网访问80端口
  • nftables (iptables 替代品)
    适用于新内核(≥Linux 3.13),语法更简洁。

关键注意事项

  1. 避免锁定自己
    • 操作前确保允许当前SSH连接的IP(或保留一个活动会话)。
    • 测试规则后保存,防止重启失效。
  2. 规则优先级
    iptables 规则从上到下匹配,白名单应放在DROP规则之前
  3. 备份配置
    sudo iptables-save > ~/iptables_backup.txt  # iptables备份
    sudo firewall-cmd --runtime-to-permanent    # firewalld临时转永久
  4. 端口状态验证
    使用 netstat -tulnss -tuln 检查端口监听状态,
    telnet [IP] [端口]nmap -p [端口] [IP] 测试连通性。

端口屏蔽是Linux安全的基础防线:

  • iptables 适合精细控制,兼容性强。
  • firewalld 适合动态管理,操作简便。
  • 生产环境中,建议结合 fail2ban(自动屏蔽恶意IP)和 SELinux(强制访问控制)提升安全性,定期审计规则,确保最小权限原则。

引用说明

  • iptables 官方文档:https://netfilter.org/documentation/
  • firewalld 配置指南:https://firewalld.org/documentation/
  • Linux 内核网络栈:https://www.kernel.org/doc/html/latest/networking/ 基于 Linux 5.4+ 内核及常见发行版实践验证,适用于主流云服务器环境。*

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4415.html

(0)
酷番叔酷番叔
上一篇 2025年6月13日 21:53
下一篇 2025年6月13日 22:03

相关推荐

  • 更新软件包列表为什么重要?

    在Linux系统中安装GCC(GNU Compiler Collection)是开发C、C++等程序的基础步骤,不同发行版的安装命令略有差异,以下是详细指南:通过包管理器安装(推荐)Ubuntu/Debian 系# 安装GCC(默认安装最新稳定版)sudo apt install gcc# 安装G++(C++编……

    2025年7月24日
    2100
  • 哪里下载Linux发行版ISO镜像?

    仅从官方网站下载(如Ubuntu、CentOS、Debian等),避免第三方修改的安全风险,验证ISO完整性:对比官网提供的SHA256校验码(例:sha256sum ubuntu-22.04.iso),工具推荐:Windows用HashCheck,Linux/macOS用终端命令,刻录启动光盘必需工具:空白D……

    2025年7月19日
    2700
  • 如何linux挂载共享文件夹

    Linux 中,可通过安装相关软件包,使用挂载命令并指定共享文件夹路径等方式

    2025年8月15日
    1000
  • 双硬盘如何装linux

    启动U盘,进入BIOS设置从U盘启动,安装时选择手动分区,指定双

    2025年8月10日
    2700
  • Linux创建C文件难吗?

    创建C文件的三种常用方法使用文本编辑器(推荐)Linux自带多种文本编辑器,通过终端或图形界面均可操作:通过终端创建:# 使用nano编辑器(适合新手)nano hello.c# 使用vim编辑器(功能强大)vim hello.c输入示例代码:#include <stdio.h>int main……

    2025年8月9日
    1600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信