请使用手机微信扫码安全登录

切换账号密码登录

绑定手机号

应国家法规对于账号实名的要求,请您在进行下一步操作前,需要先完成手机绑定 (若绑定失败,请重新登录绑定)。了解更多

不绑定绑定手机号

360官网 | 360商城

推荐论坛版块360粉丝商城360用户活动常见问题
SSH 是远程管理 Linux 服务器的标准工具,但仅靠默认设置并不足够安全。除了保持 SSH 最新、使用密钥登录外,端口碰撞(Port Knocking) 可以为你的服务器增加一道隐藏的防护墙。

什么是端口碰撞?
端口碰撞的原理很简单:
默认情况下,服务器的 SSH 端口(如22)保持关闭,无法直接连接。
你需要按预设顺序连续“敲击”几个特定端口(如 7000,8000,9000),相当于输入一段暗号。
服务器识别暗号后,临时打开 SSH 端口,允许你登录。
操作完成后,再发送另一段顺序相反的端口序列,重新关闭 SSH 端口。
这样一来,SSH 服务对外始终“隐身”,只有知道正确碰撞序列的人才能临时打开它。
如何配置端口碰撞(以 knockd 为例)
1. 安装 knockd
在服务器与需要登录的客户端上安装:
bash
sudo apt install knockd   # Ubuntu/Debian
# 或使用其他包管理器如 yum/dnf
2. 服务器端配置
修改配置文件 /etc/knockd.conf:
text
[options]
  UseSyslog
[openSSH]
  sequence   = 7000,8000,9000   # 自定义“开门”序列
  seq_timeout = 5
  command   = /usr/sbin/ufw allow from %IP% to any port 22
  tcpflags   = syn
[closeSSH]
  sequence   = 9000,8000,7000   # “关门”序列(通常与开门相反)
  seq_timeout = 5
  command   = /usr/sbin/ufw delete allow from %IP% to any port 22
  tcpflags   = syn
(如果使用 iptables,可对应调整 command 命令)
设置网络接口,编辑 /etc/default/knockd,指定你的网卡(如 eth0 或 ens5):
text
START_KNOCKD=1
KNOCKD_OPTS="-i eth0"
启动服务:
bash
sudo systemctl start knockd
sudo systemctl enable knockd
3. 关闭默认 SSH 端口
用防火墙(如 UFW)封锁 SSH 端口,使其仅能通过碰撞打开:
bash
sudo ufw deny 22   # 禁止直接访问 22 端口
sudo ufw reload
如何使用?
打开 SSH 访问(在客户端执行):
bash
knock -v <服务器IP> 7000 8000 9000
成功后即可通过 ssh user@服务器IP 登录。
关闭 SSH 访问(操作完成后):
bash
knock -v <服务器IP> 9000 8000 7000
SSH 端口将再次隐藏。
注意事项
作为补充安全层:端口碰撞不应替代 SSH 密钥认证,而是与之结合使用。
序列复杂度:可设置更长、更随机的端口序列(支持 UDP/TCP)。
超时机制:seq_timeout 确保端口敲击需在限定时间内完成。
日志监控:通过 syslog 查看 /var/log/syslog 或使用 journalctl 跟踪敲门记录。
总结
端口碰撞相当于为 SSH 服务添加了一道“隐形门”,让攻击者无法直接扫描到开放端口,显著减少了服务器暴露的风险。配合自动封锁工具(如 fail2ban)和密钥登录,可构建更立体的 Linux 服务器安全防护。
(配置前建议在测试环境演练,避免锁死远程访问。)







共 0 个关于用端口碰撞为 SSH 加一道隐形门的回复 最后回复于 2025-12-11 09:53

评论

直达楼层

您需要登录后才可以回帖 登录 | 注册

本版积分规则

利联科技黄生 LV2.下士

粉丝:0 关注:0 积分:70

精华:0 金币:549 经验:61

IP属地: 广东省

最后登录时间:2025-12-22

私信 加好友

最新活动

2025年360感恩用户节盛典圆满落幕|与用户

排行榜

热度排行 查看排行
本月
    本月

      扫码添加360客服号,涨知识的同时还有超多福利等你哦

      快速回复 返回顶部 返回列表