Linux端口扫描怎么防御_基础安全防护说明【教程】

4次阅读

linux端口 扫描是攻击前侦察行为,防御核心是降低暴露面、隐藏服务、限制探测:关闭冗余端口与服务,数据库 绑定 127.0.0.1;用 防火墙 限 IP、限频、防 SYN Flood;修改 ssh 端口、禁用 Banner、隐藏管理界面;主动自扫并用 fail2ban 监控异常。

Linux 端口扫描怎么防御_基础安全防护说明【教程】

Linux端口 扫描本身不直接攻击系统,但它是攻击前的侦察行为。防御的关键不是“堵住扫描”,而是让扫描结果失去价值——即减少暴露面、隐藏真实服务、限制异常探测行为。

只开必需端口,关掉一切冗余服务

开放端口越多,攻击面越大。很多漏洞源于无人维护的旧服务(如 telnet、ftp、rpcbind)。

  • ss -tulnnetstat -tulnp 查看当前监听端口,逐个确认每个端口是否真的需要对外提供服务
  • mysqlpostgresql 等数据库默认绑定 0.0.0.0,应改为仅监听 127.0.0.1(回环地址),避免公网可连
  • 停用不用的服务:systemctl stop rpcbind && systemctl disable rpcbind;类似处理 telnet、rsh、xinetd 等老旧服务
  • 检查 /etc/services 文件中是否有自定义端口被误启用,或通过 systemd socket 激活的服务(如 ssh.socket)是否必要

防火墙 控制访问来源和频率

即使开了端口,也不等于谁都能连、想连几次就几次。

  • 对 SSH 等管理端口,限制 IP 白名单:iptables -A input -p tcp –dport 22 -s 192.168.10.0/24 -j ACCEPT,再加一条 DROP 默认拒绝
  • 防暴力探测:限制单 IP 在 60 秒内新建连接不超过 5 次(针对 SSH)
    iptables -A INPUT -p tcp –dport 22 -m state –state NEW -m recent –set –name SSH
    iptables -A INPUT -p tcp –dport 22 -m state –state NEW -m recent –update –seconds 60 –hitcount 5 –name SSH -j DROP
  • 防 SYN Flood:限制每秒新建 TCP 连接数
    iptables -A INPUT -p tcp –syn -m limit –limit 1/s –limit-burst 3 -j ACCEPT
    iptables -A INPUT -p tcp –syn -j DROP

混淆与隐藏:降低扫描有效性

让扫描 工具 看到的信息失真或无意义,能大幅增加攻击者成本。

  • 修改 SSH 默认端口(如改到 2222),虽非银弹,但可过滤掉大量 自动化 脚本扫描
  • 禁用服务横幅(Banner):SSH 配置中设 DebianBanner nonginx/apache 关闭 server_tokens
  • 避免在公网暴露管理界面(如 phpMyAdmin、Webmin、redis CLI),必须暴露时套上反向代理 + 基础认证 + IP 限制
  • udp 服务更难监控,但 nmap -sU 扫描可能暴露 dhcpc、snmp、ipp 等,确认是否真需开启;如非必要,用 iptables 直接 DROP UDP 入向流量

主动监控异常扫描行为

光靠被动防护不够,要能感知谁在扫你。

  • 定期执行 nmap -sS -p1-1000 localhost 自扫,验证自己暴露了什么
  • 从外网(如手机热点、云服务 器)扫描自己公网 IP,对比内外视角差异
  • 用 fail2ban 监控 auth.log,自动封禁反复连接 SSH 失败的 IP
  • 记录并分析 netstat/ss 输出中的 ESTABLISHED 连接,发现长期空闲却未断开的可疑会话

以上就是 Linux端口 扫描怎么防御_基础安全防护说明【教程】的详细内容,更多请关注 php 中文网其它相关文章!

站长
版权声明:本站原创文章,由 站长 2025-12-18发表,共计1490字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources