保护你的ssh
背景:我的第五次建站遭遇的攻击就是ssh的cve漏洞,好在我有备份的习惯。仅此记录保护过程并警示后人。
明招:
1.改端口
1 |
|
将文件中port后的22改成你想要的端口
2.开启密钥登陆
建议查看openssh官方文档
3.限制密码错误次数
4.只允许白名单ip登陆
不推荐家里是动态ip的小伙伴使用
奇怪的方法:
嘿嘿,我最喜欢的部分来咯
首先,假设我要攻击别人的ssh,我会怎么下手?肯定是首选漏洞!
像我这种小弱鸡利用漏的不可能自己发现,所以我会先查ssh版本号,再查该版本的漏洞。
1.篡改版本号
比如OpenSSH 7.7前存在一个用户名枚举漏洞,通过该漏洞,攻击者可以判断某个用户名是否存在于目标主机中。
现在,将ssh升级到最新版,并修改版本号为7.4,可以浪费攻击者时间,让别人不知道你的真实版本。
首先备份sshd文件
1 |
|
查找版本号
1 |
|
修改版本号
1 |
|
2.修改banner
当ssh暴露在公网时,大量的bot会来尝试爆破你的服务器,如果你使用的是弱口令,很抱歉,你的服务器可能没了…
如果输错密码,服务器便会返回Permission denied,扫描器就是通过检测服务器返回的信息来判断是否登录成功的。有些不太聪明的bot会识别banner为Permission denied时认为这个密码是错的。
打开sshd_config, 在末尾添加
1 |
|
然后创建txt文件,在文件中写入Access denied或其他任意文本。重启ssh
3.开一个ssh蜜獾
这个也只能做做安全审计啥的,看看谁扫了你的假ssh,并记录他输入的命令(不会执行),可以使用sshsame
warn:一个封闭的端口比一个开放的服务好。
4.使用knockd
比较复杂,比较安全。
例如一次击中端口52996,一次击中端口2008,两次击中端口54088,这相当于敲一个关闭的门。用一种特殊的暗码来被konckd识别,konckd将打开一个端口。例如ssh端口,直到超时后或再次敲门ssh端口被knockd关掉。
5.使用代理
这个自行谷歌
6.用iptables重定向22端口到你仇人服务器上的ssh
这个不好说,大家看看就行
剩下那几个压箱底的就不说了,以免服务器被破。