linux服务器禁用不安全端口需三步:关闭非必要服务(如ftp、telnet、smbv1)、用ufw/nftables精细控制访问(默认拒绝+最小放行)、结合fail2ban/auditd监控异常并定期自动化巡检。

Linux服务器禁用不安全端口,核心是“关掉不用的、锁住该用的、盯紧异常的”。不能只靠封端口,得结合服务管理、防火墙策略和主动监测三步走。
识别并关闭高危默认端口
常见不安全端口如21(FTP明文)、23(Telnet)、139/445(SMBv1)、3389(未加固RDP)、8080(常被暴露的管理后台)等,若无明确业务需求,应直接停用对应服务:
- 查运行服务:
sudo ss -tuln或sudo netstat -tuln,重点关注 LISTEN 状态端口 - 停用服务:如 FTP 可执行
sudo systemctl stop vsftpd && sudo systemctl disable vsftpd - 禁用 SMBv1(尤其在非Windows混合环境):
echo 'options cifs disable_legacy_dialects=1' | sudo tee /etc/modprobe.d/cifs.conf,再重启 cifs 模块
用防火墙精细控制出入站规则
iptables 或 nftables 是基础防线。推荐使用 ufw(简化操作)或直接配置 nftables(更现代):
- 默认拒绝入站:
sudo ufw default deny incoming - 仅放行必要端口(如 SSH 改为非标准端口 2222):
sudo ufw allow 2222/tcp - 限制 SSH 登录来源 IP:
sudo ufw allow from 192.168.10.5 to any port 2222 - 禁用所有外连 DNS 查询以外的出站(防反弹):
sudo ufw default deny outgoing,再显式允许sudo ufw allow out 53和sudo ufw allow out 443(更新/日志上报等)
屏蔽扫描行为与暴力尝试
端口开着不等于会被打穿,但频繁扫描和爆破会暴露攻击面:
- 安装 fail2ban,监控 /var/log/auth.log,对 SSH 多次失败自动封 IP:
sudo apt install fail2ban,启用 jail-sshd 并调低 maxretry(建议 3~5 次) - 用 knockd 配置端口敲击(port knocking),SSH 端口默认隐藏,需按顺序访问特定端口才临时开放,适合管理通道
- 部署 auditd 记录关键网络调用:
-a always,exit -F arch=b64 -S connect -F key=network-connect,配合 aureport 分析异常连接模式
定期验证与自动化巡检
人工检查易遗漏,建议固化为脚本+定时任务:
- 每周扫描自身开放端口:
sudo nmap -sT -p- 127.0.0.1 | grep 'open' | awk '{print $1}' | sort -n - 比对白名单端口列表(如只允许 2222, 443, 80),输出差异项并告警
- 用 lynis 执行安全审计:
sudo lynis audit system --quick,重点看 Firewall、SSH、Services 等项评分 - 将关键检查项写入 cron,结果邮件推送或写入日志中心(如 rsyslog + elasticsearch)
不复杂但容易忽略——禁用端口只是起点,关键是让每个开放端口都有明确责任人、最小权限配置和持续监控。安全不是静态清单,而是服务生命周期里的持续收敛动作。










