服务器被黑

最近服务器老是被黑,自己ssh登录密码一直在被黑客暴力破解

1.png

可以看到有2600多条登录失败的记录

所以准备改成密钥登录,拒绝密码登录,拒绝22端口,换成自定义的ssh登录端口,拒绝root用户登录,写一个脚本将登录失败超过5次的IP加入黑名单

脚本地址:https://gitee.com/yanjun-pro/shell_script/blob/master/ssh_login_failed_host_deny/ssh_login_failed_host_deny_v0.2.sh 文件下载下来保存在服务器根目录下/data/script/ 0.png

然后添加定时任务每隔5分钟执行(执行时间视情况而定,我这里的情况是每分每秒都有在被暴力破解XD)

[root@localhost ~]# crontab -e

*/5 * * * * sh /data/script/ssh_login_failed_host_deny_v0.2.sh

0-1.png

执行完脚本后,接着下一步禁用密码登录,改为密钥登录,执行以下命令:

ssh-keygen -t rsa -C 1254587752@qq.com

生成两个密钥文件:
Your identification has been saved in /root/.ssh/xxxx.(私钥文件存放位置)
Your public key has been saved in /root/.ssh/xxxx.pub.(公钥文件存放位置)

将公钥写入/root/.ssh/authorized_keys文件,将私钥xxxx下载到本地留作登陆使用

cat xxxx.pub >> /root/.ssh/authorized_keys

如果这里报Permission denied;需要更改.ssh,authorized_keys的权限chmod 700 ~/.ssh,chmod 600 authorized_keys

cd / 
cd /root/.ssh
chmod 700 ~/.ssh
chmod 600 authorized_keys

执行以上更改authorized_keys文件权限命令时报错Operation not permitted,解决:
lsattr
-------------e-- ./id_rsa.pub
----ia-------e-- ./authorized_keys
-------------e-- ./id_rsa
去掉i、a属性保护
chattr -i authorized_keys
cat id_rsa.pub >> authorized_keys(执行以上命令后成功)
chattr -a authorized_keys
chmod 600 authorized_keys(执行以上命令后成功)

执行完记得保护:
chattr +i authorized_keys
chattr +a authorized_keys

修改配置 其实centos7.4及之后的版本只要关闭密码登录就好了,因为秘钥文件登录是默认打开的

vim /etc/ssh/sshd_config

#禁用密码验证
PasswordAuthentication no
#启用密钥验证(一般不需要设置)
RSAAuthentication yes #centos 7.4及之后的版本不用加这个
PubkeyAuthentication yes #centos 7.4及之后是默认开启的
#一般不要设置项,如果出现以上修改不生效的情况下重新安装ssh并设置以下内容
PubkeyAuthentication yes
#关闭22端口
Port XXXX(自定义端口号)

保存并重启sshd

service sshd restart #centos系统

* #RHEL/CentOS系统
* service sshd restart
* #ubuntu系统
* service ssh restart
* #debian系统
* /etc/init.d/ssh restart

重启后,将云服务器防火墙安全组22端口策略设置为拒绝

3.png

做完以上操作后再看看登录防护效果:

2.png

可以看到10:30左右执行之后,已经没有尝试登录的记录了,可以稍微省点心了

ps:将私钥下载到本地或客户端,SecureCRT 输入Hostname,Username,选择认证方式为PublicKey公钥认证,选择刚刚下载下来的id_rsa私钥文件即可!

5.png

6.png

另外还有一点很重要:开启防火墙 开启防火墙 开启防火墙,宿主机、服务器都开,配置防火墙访问规则只允许指定的客户端IP访问指定的端口

iptables -I INPUT -s 39.170.xxx.xxx(客户端公网IP地址) -p tcp --dport 2375(访问端口) -j ACCEPT (-I不是-l,大写i)

(完)


已有 0 条评论

    感谢参与互动!