如果你有一台公网服务器,为了方便管理,你打开了服务器的 SSH,但是黑客就可以轻松扫描其 IP 地址,查找服务器上开放的端口,扫描到开放了 SSH 服务后就会尝试对你进行攻击,怎么办?
有人说那就不要开 SSH 服务!虽然也有其它方法来管理服务器,但总有人是需要开 SSH 的,那怎么保障服务器的安全性呢?灵活开关服务就是方法之一!
knockd 是一种端口试探服务器工具,它侦听以太网或其他可用接口上的所有流量,等待特殊序列的端口敲门。
knockd 服务通过动态的添加 iptables 规则来隐藏系统开启的服务,使用自定义的一系列序列号来"敲门",使系统开启需要访问的服务端口后才能被外部访问。
服务使用完毕后,再用自定义的序列号来"关门",将端口关闭,不对外监听,这样就很好地提升了服务和系统的安全性。
Rocky Linux
yum -y install epel-release.noarch
yum -y install knock-server
Kali
apt-get install knockd
不行就先更新一下软件包:apt-get update
Rocky 编辑配置文件,配置文件默认位置 /etc/knockd.conf
[options]
logfile = /root/knockd.log
Interface = ens33
[opencloseSSH]
sequence = 2222:udp,3333:tcp,4444:udp
seq_timeout = 15
tcpflags = syn,ack
start_command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport ssh -j ACCEPT
cmd_timeout = 10
stop_command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport ssh -j ACCEPT
以上是默认结构,也可以将 opencloseSSH 分开进行设置,如下:
[options]
logfile = /var/log/knockd.log
interface = ens160
[openSSH]
sequence = 2222:udp,3333:tcp,4444:udp
seq_timeout = 15
tcpflags = syn
command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport ssh -j ACCEPT
[closeSSH]
sequence = 4444,3333,2222
seq_timeout = 10
tcpflags = syn
command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport ssh -j ACCEPT
配置修改完成后,请重启 knockd 服务
systemctl restart knockd
首先在 Rocky 上使用 iptables 添加以下防火墙规则
iptables -A INPUT -s 192.168.49.1 -j ACCEPT # 允许宿主机连接,方便实验的时候可以用 SSH 进行连接
iptables -A INPUT -j DROP # 拒绝其他所有 IP 的连接
或
iptables -A INPUT -p tcp --dport 22 -j REJECT # 只阻止 22 号端口
查看 Rocky 的 iptables 规则
iptables -nL
在 kali 上使用 nmap 对目标端口进行扫描
nmap -sS -p 22 192.168.49.189
发现端口关闭。
这里不做扫描,直接尝试 ssh 连接也可以。
kali 上使用以下命令敲门
knock -v 192.168.49.189 2222:udp 3333:tcp 4444:udp
或
knock -v 192.168.49.189 2222 3333 4444
命令怎么敲取决于前面配置文件是怎么写的。
再次查看 Rocky 的 iptables 规则
iptables -nL
发现多了一条规则,就是允许 kali(192.168.49.139) 通过 ssh 远程连接。
在 kali 上再次使用 nmap 对目标端口进行扫描,发现端口开放
nmap -sS -p 22 192.168.49.189
最后在 kali 上尝试使用 ssh 进行连接
ssh root@192.168.49.189
此时只有敲门成功的这台设备可以进行 ssh 连接,其它设备是不能连接的,当然,想要连接的话也可以,先敲个门呗。
完事以后使用以下命令关门
knock -v 192.168.49.189 4444 3333 2222
或
knock -v 192.168.49.189 4444:udp 3333:tcp 2222:udp
命令怎么敲取决于前面配置文件是怎么写的。
关门后 Rocky 上查看 iptables
iptables -nL
发现又还原到了最初的规则,也就是临时加的那条规则被删掉了。
最后再尝试 ssh 连接,肯定是失败的,你试试看。
系统环境就不专门给了,自己随便找两个 Linux 系统都行,不过这两个系统前面文章也都给过,需要可以去找找。
关注并发送文字"镜像"有 rocky 系统、发送文字"MSF"有 kali 系统。
关注公众号不迷路,记得星标,新文章第一时间推送
END
往期精彩回顾
内网渗透 | MSF&FRP | 无法直接访问的目标如何通过搭建代理进一步渗透?
原文始发于微信公众号(大伯为安全):安全加固 | 服务器开了SSH不安全,关了SSH不方便?那就来看看端口敲门吧!
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论