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

在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网络不通?Ping命令如何快速排障

    基础用法基本命令格式ping [目标IP或域名]示例:ping 8.8.8.8 # 测试与Google DNS的连通性ping example.com # 通过域名测试(自动解析为IP)关键参数解析参数作用示例-c [次数]指定发送数据包数量ping -c 4 8.8.8.8(发送4次后停止)-i [秒数]设置……

    2025年6月22日
    5300
  • Linux新建用户后如何用新用户名和密码登录?

    在Linux系统中,创建新用户并成功登录是系统管理的基础操作,本文将详细讲解从创建用户、设置密码到不同场景下登录的全流程,包括命令参数解析、注意事项及常见问题解决方法,创建新用户:useradd与adduser的区别Linux系统提供了两种创建用户的命令:useradd(底层命令,参数丰富)和adduser(交……

    2025年10月4日
    500
  • Linux如何清理inode?实用操作方法与步骤详解

    inode是Linux文件系统中用于存储文件元数据的重要数据结构,每个文件、目录、设备等对象都会分配一个唯一的inode,记录文件的权限、所有者、大小、时间戳及数据块位置等信息,当inode耗尽时,即使磁盘空间充足,系统也无法创建新文件,因此及时清理inode占用是Linux系统维护的重要工作,本文将详细介绍L……

    2025年9月21日
    2200
  • cmd如何使用linux命令行

    Linux中,打开终端输入cmd命令及参数即可使用,如`cmd [选项

    2025年8月19日
    2500
  • linux如何运行python程序退出

    Linux终端运行Python程序后,输入exit()函数或按Ctrl+D

    2025年8月14日
    3500

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信