Linux怎么配置端口碰撞PortKnocking隐蔽开放SSH管理端口

千萱同学_8015

千萱同学_8015

2026-10-03

976人浏览

原创

knockd配合iptables是最稳定、兼容性最好的ssh隐形门禁方案,它通过动态增删iptables规则,使22端口对外呈现closed或filtered状态,彻底规避扫描与暴力攻击。

linux怎么配置端口碰撞portknocking隐蔽开放ssh管理端口

直接上结论:用 knockd 配合 iptables 是目前最稳定、兼容性最好、无需改 SSH 服务本身的方式。它不依赖应用层响应,不暴露日志,扫描器扫不到 22 端口——不是“藏得深”,而是“根本不存在”。

为什么不能只靠改 SSH 端口或加 fail2ban

改端口(比如换到 2222)后,nmap -p- 192.168.1.38 依然能扫出开放端口;fail2ban 要等攻击者连上、输错密码才触发封禁,属于“被打了再还手”。而端口碰撞是“门还没装把手”,没敲对序列,iptables 规则里压根没放行那条链,22 端口对外就是 CLOSED 状态,nmap 显示 filtered 或直接无响应。

常见错误现象:service knockd start 启动失败但没报错;nmap -p 7000,8000,9000 192.168.1.38 扫出来全是 closed 却仍无法开门——大概率是网卡名没配对、tcpflags = syn 没生效,或 iptables 规则顺序冲突。

  • knockd 默认监听 eth0,但 Ubuntu 22.04+、CentOS 8+ 多为 ens33、enp0s3 等,必须显式在 /etc/knockd.conf 中写 interface = ens33
  • 如果服务器开了 ufw,得先 ufw disable,否则 iptables 规则会被绕过
  • seq_timeout 是指整个序列完成的总时限(非单个端口间隔),设太小(如 5 秒)容易因网络抖动失败;建议初试设为 25

配置 /etc/knockd.conf 的关键参数

一个能跑通的最小可用配置,重点在可复现、少踩坑:

Alpine Linux
Alpine Linux

获取最新发布版本;聚合最新版本架构

下载
[options]
UseSyslog
interface = ens33
logfile = /var/log/knockd.log
<p>[openSSH]
sequence = 7000,8000,9000
seq_timeout = 25
command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn</p><p>[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 25
command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn</p>

说明:

  • %IP% 自动替换为敲门来源 IP,精准授权,不影响其他客户端
  • -I INPUT 是插入最前,确保规则优先于 DROP;用 -A 可能被后续 DROP 吃掉
  • 两个 [openSSH] 和 [closeSSH] 必须序列严格相反,否则关门命令会失败(iptables -D 找不到对应规则)
  • 别用 localhost 或 127.0.0.1 测试,本地回环不走 INPUT 链,永远不触发

敲门测试必须用真实外网 IP + 正确工具链

在另一台机器(如 Kali 或任意 Linux 客户端)操作,不能在本机测。常见失败原因:用错了协议、漏了 -v、没等够超时时间。

  • 推荐用 knock 命令(比 nmap 更干净):knock -v 192.168.1.38 7000 8000 9000 ——-v 能看到每个包是否发出,避免静默失败
  • 若只有 nmap,必须加 --packet-trace 并确认输出含 Sent 1 SYN,且三个端口都显示 tcpwrapped 或 filtered(不是 closed)
  • 敲完立刻 ssh -o ConnectTimeout=5 bask@192.168.1.38,别等太久;cmd_timeout 默认是 0(永不过期),但实际应配合 iptables 的 --seconds 或用 knockd 的 cmd_timeout 参数控制
  • 验证是否生效:iptables -nvxL INPUT | grep 22,应看到一条带源 IP 的 ACCEPT 记录

最容易被忽略的防火墙初始化和权限问题

很多配置看似对,但 knockd 启动后毫无反应——根源常在系统级约束。

  • /etc/default/knockd 中必须设 START_KNOCKD=1,否则 systemctl start knockd 实际不加载任何配置
  • knockd 进程需读取 /proc/net/ip_tables_names,普通用户启动会 Permission Denied;务必用 root 启动:sudo systemctl start knockd
  • Ubuntu 20.04+ 默认用 nftables,但 knockd 写死调用 /sbin/iptables,需确认 iptables-legacy 已安装并设为默认:update-alternatives --config iptables
  • 生产环境务必加 cmd_timeout = 30 到 [openSSH] 段,否则一旦敲门成功却未登录,22 端口将长期暴露

复杂点在于:敲门序列本身不加密,中间人能看到端口访问顺序;真正需要高安全场景,得上 SPA(Single Packet Authorization),但那是另一套机制了——knockd 解决的是“让扫描器找不到门”,不是“防流量分析”。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3790

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3273

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2373

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5710

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5362

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3173

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2685

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

2899

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习