真正有效的linux安全加固必须分三步:先用ss -tuln等命令查清监听端口与服务,再用systemctl stop/disable或mask关停非必要服务本身,最后用firewalld/iptables限制访问范围,而非仅封端口。

关端口不等于真安全,关服务才是核心。很多管理员在防火墙里删掉一个端口规则就以为万事大吉,结果 ss -tuln 一查,服务还在 0.0.0.0:3306 上监听着——外部连不上,但本地和内网照通,漏洞照被利用。真正有效的加固,必须分三步走:先查清谁在用、再停掉服务本身、最后用防火墙补漏并限制访问范围。
先搞清楚哪些端口和服务在运行
别凭印象关,得靠命令确认真实状态:
- 查所有监听端口(含 IPv6):
ss -tuln,重点关注0.0.0.0:*和[::]:*这类通配绑定 - 查指定端口归属进程:
sudo lsof -i :22或更轻量的sudo ss -tulnp | grep :22 - 查服务启用状态(非运行状态):
systemctl list-unit-files --type=service | grep enabled - 查服务依赖关系,避免误关:
systemctl list-dependencies --reverse sshd - Windows 下用:
netstat -ano查端口 +services.msc查服务启停状态
Linux 下稳妥关停非必要服务
停服务比封端口更彻底,关键是选对方式:
- 常规服务(如 vsftpd、rpcbind):
sudo systemctl stop vsftpd && sudo systemctl disable vsftpd - 需彻底禁止启动(防被其他服务触发):
sudo systemctl mask avahi-daemon.service - xinetd 托管服务(如 telnet):编辑
/etc/xinetd.d/telnet,设disable = yes,再sudo systemctl restart xinetd - 内核级协议(如 SMBv1):写入
/etc/modprobe.d/cifs.conf,加options cifs disable_legacy_dialects=1,再重载模块 - 常见可关服务:telnet、ftp、cups、avahi-daemon、bluetooth、rpcbind(不用 NFS 时)
Windows 下关闭高危端口与服务
重点针对 NetBIOS、SMB、WinRM 等历史风险点:
-
135/139/445 端口:禁用
TCP/IP NetBIOS Helper服务;网卡 IPv4 高级设置中勾选“禁用 TCP/IP 上的 NetBIOS”;注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters新建DWORD值SMBDeviceEnabled = 0;禁用Server服务(关后文件共享功能消失) -
5985/5986(WinRM):若不用 PowerShell 远程管理,直接在
services.msc中禁用Windows Remote Management (WS-Management) - 5355(LLMNR):组策略 → 计算机配置 → 管理模板 → 网络 → DNS 客户端 → 启用“关闭多播名称解析”
- 其他建议禁用服务:Remote Registry、SSDP Discovery、Print Spooler(服务器环境)、Task Scheduler(非必需场景)
防火墙不是摆设,要用对位置
防火墙是最后一道防线,不是替代关停服务的手段:
- Linux:
firewalld或ufw只用于限制访问来源,比如只允许内网连 MySQL:sudo ufw allow from 10.0.0.0/8 to any port 3306 - Windows:用“高级安全 Windows 防火墙”新建入站规则,不要只依赖云厂商安全组——主机防火墙能拦住内网横向移动
- 注意:
ufw deny 22会锁死 SSH,务必先确保 VNC 或串口可用再操作 - 验证是否生效:关服务后,
ss -tuln | grep :端口应无输出;再用本地curl或telnet 127.0.0.1 端口测试是否连不通











