加固系统安全,防范ssh暴力破解
近期校园网中发现多起针对Linux服务器的ssh暴力破解行为,请各位老师同学检查实验室或个人使用的服务器ssh安全性配置,防患于未然。
1.服务器ssh安全自查:
步骤1. 检查服务器密码强度
请不要使用简单的字母数字组合作为密码,密码应包含大小写字母、数字、特殊符号的组合。
步骤2. 检查服务器免密登录用户
检查root用户及sudo权限用户的authorized_keys文件中是否被写入攻击者的密钥。可通过以下指令输出确认:
root用户: cat /root/.ssh/authorized_keys
其他用户: cat ~/.ssh/authorized_keys
检查输出的公钥是否为用户自己的公钥,如遇到未知公钥的记录请务必删除。攻击者一般是通过高权限用户的弱口令漏洞入侵系统,之后将自己的公钥写入authorized_keys中,这样即使用户更换过密码攻击者也可以继续免密远程登录系统,因此务必确保服务器中可信的公钥都是用户已知的。
步骤3. 检查ssh服务配置
检查ssh服务配置是否安全,是否存在空密码、是否允许root用户远程登录等,请参考下节中ssh的安全配置。
2.ssh服务配置安全加固:
初级加固
ssh服务端的默认配置路径为: /etc/ssh/sshd_config,通过编辑器打开找到如下几个选项进行设置。
PermitEmptyPasswords no #禁止使用空密码
PermitRootLogin no #禁止root用户远程登录
Port 22 #将默认的22端口改为其他非常规端口, 如8022/2468等
设置完成后保存,并重启sshd服务:
sudo service sshd restart
这样ssh的安全性已经得到了一定程度的提升,用户还可以通过配置密钥登录、禁用密码登录等使得安全性进一步提高。
中级加固
首先介绍如何配置通过密钥登录,接下来以Linux/Mac/WLS系统为例,Windows用户可以使用MobaXterm的local terminal实现和Linux一样的操作,也可以使用PuTTY等工具图形化配置密钥登录,详见文章末尾的参考链接。
步骤1. 生成本地密钥
Linux/Mac/WLS用户可以在命令行下通过 ssh-keygen 指令直接生成。 生成的密钥保存在命令行提醒的位置,其中id_rsa为私钥,不可轻易分享,id_rsa.pub为公钥。
步骤2. 将公钥复制到需免密登录的服务器
Linux/Mac/WLS用户可以在命令行下执行将公钥复制到服务器:
ssh-copy-id username@remote_host -p 22
注意,如果修改过ssh默认端口,则将22更换为新的端口即可。根据提示输入用户密码即可开始复制,完成后会提示“Number of key(s) added: 1”,这样免密登录就配置好了。
步骤3. 确认密钥登录配置成功
退出服务器,重新通过ssh命令连接:
ssh username@remote_host -p 22
如果免密直接登入服务器,即说明密钥登录配置成功。
步骤4. 配置密钥登录,并禁用密码登录
注意: 请务必确认密钥登录配置成功后再执行该步骤,否则配置完成后将无法通过密码远程登录服务器。
进一步修改/etc/ssh/sshd_config,找到如下参数并配置:
PubkeyAuthentication yes # 允许通过密钥进行登录验证
PasswordAuthentication no # 禁止通过密码进行登录验证
ChallengeResponseAuthentication no # 关闭问答密码机制
步骤5. 重启sshd服务
sudo service sshd restart
配置完成后,ssh的安全性已经得到了很大的提升,一般的攻击者已经很难通过ssh入侵服务器了。但攻击者还可能会对服务器进行持续的ssh登录尝试扫描,在系统的错误登录信息日志中留下很多记录,为了过滤掉这些恶意扫描,可以结合fail2ban + iptables 进一步加固。
高级加固
fail2ban是一款入侵防御软件,能够运行在大多数Linux服务器上,保护计算机服务器免受暴力破解的攻击,详情请参考《fail2ban安装》
3.相关资料:
ssh加固1:https://www.cnblogs.com/lsgxeva/p/11424736.html
ssh加固2:https://www.jianshu.com/p/10a2e85ea69f
ssh免密登录配置:https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys-on-ubuntu-20-04
Windows putty免密登录: https://blog.csdn.net/weiyang_tang/article/details/96987068