当前位置:首页 > Linux > 正文

linux如何关闭445端口

可通过 systemctl stop smbd停用Samba服务;或用 firewall-cmd --permanent --remove-port=445/tcp(firewalld)/ iptables -A INPUT -p tcp --dport 445 -j DROP(iptables

在Linux系统中关闭445端口的核心目标是阻断外部设备通过该端口建立的连接请求,这一操作通常出于安全防护目的(如防范永恒之蓝破绽利用、蠕虫干扰传播)或业务需求调整(如替换为自定义端口),以下从原理分析、多种实现方式、注意事项及验证方法四个维度展开详细说明,并提供完整操作指南。


前置准备与状态检测

1 定位445端口归属服务

执行以下任一命令可识别占用445端口的服务进程:

# netstat方式(需安装net-tools包)
sudo netstat -tulnp | grep :445
# ss命令(推荐,原生支持)
sudo ss -tulnp | grep :445
# lsof命令(显示完整进程树)
sudo lsof -i :445

典型输出示例:

udp        0      0 0.0.0.0:445           0.0.0.0:                                            OFF (00)

若结果显示smbd进程,则表明该端口由Samba服务占用;若无输出则说明未被主动监听。

2 风险评估表

风险等级 场景描述 建议措施
高危 公网IP暴露且未做访问控制 立即关闭+白名单机制
中危 内网环境但存在弱口令 强化认证+日志监控
低危 仅本地回环接口绑定 可保留但需定期扫描

核心关闭方案详解

▶ 方案一:防火墙层面阻断(推荐优先)

适用于无需完全终止服务,仅限制外部访问的场景。

防火墙类型 临时生效命令 永久生效命令 备注
iptables sudo iptables -A INPUT -p udp --dport 445 -j DROP 写入/etc/iptables/rules.v4并重启服务 传统工具,兼容性强
firewalld sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port protocol="udp" port="445" drop_priority="HIGH"' 同步生效无需额外操作 CentOS/RHEL系默认防火墙
UFW sudo ufw deny 445/udp sudo ufw enable Ubuntu/Debian系轻量级防火墙

️ 关键提示:DROPREJECT更安全,后者会返回ICMP错误信息可能暴露系统存在。

▶ 方案二:终止服务进程(彻底关闭)

当确定不再需要Samba服务时采用此方案。

步骤1:停止服务

# systemd标准命令
sudo systemctl stop smbd nmbd # 同时停止主守护进程和名称解析进程
sudo systemctl disable smbd nmbd # 禁止开机自启

步骤2:验证进程状态

ps aux | grep [s]mbd  # 精确匹配避免grep自身干扰

正常结果应无smbd进程残留。

步骤3:清理残留连接

sudo fuser -k /dev/shm/gvfs/  # 强制释放挂载点

▶ 方案三:修改服务配置(高级方案)

适用于需要保留服务但变更监听端口的场景。

操作路径:

  1. 备份原始配置:sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
  2. 编辑配置文件:sudo vi /etc/samba/smb.conf
  3. 修改关键参数:
    [global]
    # 原配置:server min protocol = COREplus
    # 新增/修改:smb ports = 139,446  # 将445改为非标准端口
  4. 重启服务生效:sudo systemctl restart smbd

跨平台差异处理表

发行版 包管理器 服务名称 防火墙工具 特殊注意事项
Ubuntu/Debian apt smbd/nmbd UFW 需手动卸载samba包
CentOS/RHEL yum/dnf smb firewalld SELinux策略需同步更新
Alpine Linux apk samba-common iptables 默认不安装图形化工具
Arch Linux pacman samba iptables 需手动创建systemd服务单元

验证与排障指南

1 连通性测试

# 本地测试(应超时无响应)
nc -zvw3 localhost 445
# 远程测试(替换为目标IP)
nc -zvw3 <目标IP> 445

成功关闭的标志是收到”Connection refused”或长时间无响应。

2 日志审计要点

检查以下日志文件是否存在异常记录:

  • /var/log/samba/目录下的所有日志
  • /var/log/messages/var/log/syslog中的smbd相关条目

3 常见错误解决方案

现象 原因分析 解决方法
防火墙规则未生效 未执行永久化命令 补充--permanent参数并重载防火墙
服务自动重启 systemd单元文件缺失 sudo systemctl mask smbd
NMB进程持续存在 Winbind依赖关系 sudo pkill -9 nmbd强制杀进程

最佳实践建议

  1. 分层防护:即使关闭445端口,仍建议部署载入检测系统(如Fail2ban)监控异常连接尝试。
  2. 替代方案:如需提供文件共享服务,可改用SFTP(22端口)或WebDAV(HTTPS协议)。
  3. 版本升级:保持Samba版本最新,修复已知破绽(如CVE-2020-1472)。
  4. 网络隔离:通过VLAN或子网划分限制Samba服务的可见范围。

FAQs

Q1: 关闭445端口后导致内部打印机无法使用怎么办?
A: 这是由于部分老旧打印机驱动依赖Samba协议进行发现,解决方案:①在防火墙规则中放行特定内网IP段;②升级打印机固件支持Bonjour协议;③改用CUPS直接管理打印队列。

Q2: 如何确认系统中已彻底清除445端口的相关服务?
A: 执行以下组合命令验证:①ss -tulnp | grep :445检查监听状态;②ps aux | grep [s]mbd检查进程;③lsof -i :445检查文件句柄,三者

0