Linux系统中21、22、23、111、6379、27017等端口若未加密、未认证或配置不当,易被嗅探、未授权访问、反射攻击或数据窃取;应通过ss命令识别、修改服务配置绑定127.0.0.1、停用非必要服务或卸载对应软件来加固。

Linux系统中部分默认开放的端口若未妥善管理,可能成为攻击入口。识别高危端口、理解其风险、并快速关闭非必要服务,是基础安全加固的关键一步。
常见高危端口及对应风险
以下端口在未加密、未认证或配置不当的情况下,极易被利用:
- 21/tcp(FTP):明文传输账号密码,易被嗅探;匿名登录开启时可被用于上传恶意文件或目录遍历
- 22/tcp(SSH):虽为必要服务,但弱口令、密钥泄露或版本漏洞(如CVE-2023-48795)可导致未授权访问
- 23/tcp(Telnet):完全明文通信,已属淘汰协议,应禁用
- 111/tcp & 111/udp(RPCbind):暴露NFS等远程服务细节,常被用于反射放大攻击或内网横向探测
- 6379/tcp(Redis):默认无认证且绑定0.0.0.0时,攻击者可写入SSH公钥或执行系统命令
- 27017/tcp(MongoDB):未启用访问控制且公网暴露时,数据可被直接读取或清空
快速识别本机开放高危端口
无需第三方工具,使用系统自带命令即可排查:
- 查看所有监听端口:
ss -tuln | grep ':21\|:22\|:23\|:111\|:6379\|:27017' - 检查服务归属进程:
ss -tulpn | grep ':6379'(确认是否为Redis且是否绑定0.0.0.0) - 验证服务是否对外暴露:
curl -I http://localhost:6379或nc -zv 127.0.0.1 6379判断本地可连通性 - 检查防火墙放行规则:
sudo ufw status verbose(Ubuntu)或sudo firewall-cmd --list-all(CentOS/RHEL)
一键关闭非必要高危端口的方法
关闭端口本质是停止对应服务或限制监听地址,不建议仅靠防火墙屏蔽而保留服务运行:
-
Telnet:停用服务并卸载包
sudo systemctl stop telnet.socket telnet.servicesudo apt remove inetutils-telnetd(Debian/Ubuntu)或sudo yum remove telnet-server(RHEL/CentOS) -
Redis/MongoDB等数据库:修改配置文件禁止公网监听
Redis:编辑/etc/redis/redis.conf,设bind 127.0.0.1并启用requirepass
MongoDB:编辑/etc/mongod.conf,在net:下添加bindIp: 127.0.0.1,然后重启sudo systemctl restart mongod -
RPCbind/NFS相关:如非必需NFS服务,直接禁用
sudo systemctl stop rpcbind && sudo systemctl disable rpcbind
同时检查/etc/exports是否为空,避免误启NFS导出 -
通用端口屏蔽(临时应急):用iptables丢弃连接(不推荐长期替代服务配置)
sudo iptables -A INPUT -p tcp --dport 6379 -j DROPsudo iptables -A INPUT -p tcp --dport 23 -j DROP
自动化检测与关闭脚本示例
以下简易Bash脚本可扫描并提示高危端口状态(需root权限运行):
#!/bin/bash
DANGEROUS_PORTS="21 22 23 111 6379 27017"
echo "? 正在检查高危端口监听状态..."
for port in $DANGEROUS_PORTS; do
if ss -tuln | grep ":$port" > /dev/null; then
echo "⚠️ 端口 $port 正在监听 → $(ss -tulpn | grep ":$port" | awk '{print $7}' | cut -d',' -f1)"
if [[ "$port" == "23" ]]; then
echo " ✅ 建议:立即卸载 telnet-server 并禁用服务"
elif [[ "$port" == "6379" ]]; then
echo " ✅ 建议:检查 /etc/redis/redis.conf 中 bind 和 requirepass 配置"
fi
else
echo "✅ 端口 $port 未监听"
fi
done
保存为check-dangerous-ports.sh,运行前加执行权限:chmod +x check-dangerous-ports.sh,再执行sudo ./check-dangerous-ports.sh。

















