ssh knock 技术解析

SSH端口敲门技术是一种网络安全措施,用于防止未经授权的访问。通过端口敲门,可以动态地在防火墙上打开指定端口(如SSH端口),仅允许符合特定敲门序列的用户访问。此技术通常用于隐藏重要服务(例如SSH),以防止暴力破解或其他未经授权的攻击

 

工作原理
端口敲门的工作原理基于以下步骤:

闭合端口:默认情况下,所有重要端口(如22端口)在防火墙上都是关闭的。
发送敲门序列:用户在尝试连接之前,首先需要向一组预定义的端口发送一系列TCP/UDP包。这些端口可能是随机选择的,例如1234、5678和9101。
验证序列:防火墙监视传入流量,检测这些特定的端口敲门序列。
打开端口:如果敲门序列正确,防火墙会暂时打开SSH端口,让用户能够连接到服务器。
超时或关闭端口:一段时间后,如果没有进一步的连接,端口会自动关闭。

 

 安装:

sudo apt-get install knockd

编辑/etc/knockd.conf,添加以下内容:

[options]
    logfile = /var/log/knockd.log

[openSSH]
    sequence = 7000,8000,9000
    seq_timeout = 5
    command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
    tcpflags = syn

[closeSSH]
    sequence = 9000,8000,7000
    seq_timeout = 5
    command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
    tcpflags = syn

启动knock

sudo systemctl start knockd

在此配置中,当用户按顺序敲击7000、8000、9000端口时,防火墙会打开22端口(SSH端口);反向敲击(9000、8000、7000)则会关闭该端口。

 

posted @ 2024-09-12 11:17  Mike_Jia  阅读(179)  评论(0)    收藏  举报