在Linux系统中禁用特定端口是提升服务器安全性的关键措施,可防止未授权访问或恶意攻击,以下详细方法基于不同防火墙工具,操作前请务必备份配置并确认端口用途(避免误禁关键服务如SSH)。
使用 iptables
(通用传统方法)
iptables
是Linux内核集成的防火墙工具,适合所有发行版。
步骤:
-
禁止入站流量
禁用TCP端口(示例:禁用8080端口):sudo iptables -A INPUT -p tcp --dport 8080 -j DROP
禁用UDP端口(示例:禁用5000端口):
sudo iptables -A INPUT -p udp --dport 5000 -j DROP
-
保存规则(避免重启失效)
- Debian/Ubuntu:
sudo iptables-save > /etc/iptables/rules.v4
- CentOS/RHEL:
sudo service iptables save
- Debian/Ubuntu:
使用 firewalld
(推荐用于CentOS/RHEL/Fedora)
firewalld
提供动态管理功能,支持运行时更新。
步骤:
-
永久禁用TCP端口(示例:禁用3306):
sudo firewall-cmd --permanent --remove-port=3306/tcp
禁用UDP端口(如514):
sudo firewall-cmd --permanent --remove-port=514/udp
-
生效配置:
sudo firewall-cmd --reload
-
验证:
sudo firewall-cmd --list-ports # 查看开放端口列表
使用 ufw
(Ubuntu/Debian简易工具)
ufw
(Uncomplicated Firewall)简化了防火墙配置。
步骤:
-
禁用指定端口(示例:禁用22端口):
sudo ufw deny 22/tcp
-
生效规则:
sudo ufw reload
-
查看状态:
sudo ufw status # 显示 "DENY" 即表示禁用成功
验证端口是否禁用
-
本地检查:
sudo ss -tuln | grep <端口号> # 无输出表示无服务监听
-
外部测试(使用
nmap
):nmap -p <端口号> <服务器IP> # 显示 "filtered" 或 "closed"
关键注意事项
- 谨慎操作:禁用前确认端口用途(如禁用22端口可能导致SSH断开)。
- 备份配置:
- iptables:
sudo iptables-save > ~/iptables_backup.txt
- firewalld:
sudo cp /etc/firewalld/zones/public.xml ~/
- iptables:
- 防御全面性:
仅禁用端口不够,需结合强密码、Fail2ban等工具。
- 恢复端口:
- iptables:
sudo iptables -D INPUT -p tcp --dport <端口> -j DROP
- ufw:
sudo ufw allow <端口>/tcp
- iptables:
禁用端口是Linux安全的基础操作,推荐优先级:
- 生产环境用
firewalld
或ufw
(易管理) - 脚本/临时需求用
iptables
- 长期安全策略:定期审计端口(
netstat -tuln
),最小化开放端口,配合SELinux/AppArmor强化防护。
引用说明参考Linux官方文档(iptables、firewalld、ufw)及服务器安全最佳实践(CIS Benchmarks),操作命令已在Ubuntu 22.04/CentOS 7/9测试通过。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/32204.html