背景:刚买的腾讯云主机10天左右,昨天登录后偶然查看了下/var/log/secure安全日志,发现一大堆登录失败的记录就怀疑是被暴力破解,吓宝宝一跳,只是买来学习而已又没有业务。只能说这帮黑客太disgusting。
1.首先查看了下/var/log/secure,然后查询这个ip地址发现是美国的,且短时间内有多次登录
2.通过awk对日志分析发现不止这一个ip地址,由于太多了只复制了部分上来,还好都没破解成功。
~]# awk '/Failed/{ip[$(NF-3)]++}END{for (i in ip) print ip[i],i}' /var/log/secure | sort -nr
1128 159.65.192.210
991 114.67.86.183
664 142.93.150.230
652 104.236.9.214
611 188.166.12.220
587 167.99.33.251
575 104.248.198.109
534 163.172.234.207
332 68.183.192.26
327 46.101.131.85
291 128.199.221.55
275 77.39.117.226
259 163.172.234.206
253 45.64.130.147
242 139.59.154.63
229 85.73.194.21
222 167.99.47.193
185 39.107.179.243
185 121.201.57.230
182 163.172.234.210
180 90.3.211.202
180 85.203.174.27
180 73.215.122.31
180 71.72.234.20
180 69.4.135.70
180 184.90.175.92
180 134.255.126.237
180 12.199.218.242
180 1.159.0.163
180 107.10.73.181
173 45.141.84.10
167 163.172.234.208
154 103.248.31.50
141 114.67.254.244
139 112.91.109.103
136 167.86.116.12
134 76.6.254.175
133 98.125.80.113
133 97.120.47.41
133 75.175.213.247
133 75.170.237.201
133 75.167.191.201
133 75.165.78.178
133 75.165.160.121
133 75.164.5.132
133 75.163.25.241
133 75.121.9.18
133 71.38.89.209
133 71.222.56.107
133 71.222.168.202
133 71.221.223.89
3.解决方案
第一步立即改了sshd监听的端口号,然后重启服务sshd服务
~]# cp /etc/ssh/sshd_config{,.ori} #修改前先行备份操作
~]# grep Port /etc/ssh/sshd_config
#Port 22
Port 52136
#GatewayPorts no
~]# systemctl restart sshd
第二步,在做了第一步操作后再观察/var/log/secure发现暴力破解已经停了,但细想了一下还是不安全我于是又做了如下操作,
禁用root登录,但往往学习中需要使用管理员权限,所有又创建了一个普通用户,通过sudo提权为管理员
~]# useradd jason
~]# useradd jason
~]# passwd jason #给普通用户设置密码
Changing password for user jason.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
~]# visudo #命令修改,提权操作
jason ALL=(ALL) NOPASSWD:ALL #大概在100行的位置添加后保存
~]# sed -i 's@#PermitRootLogin yes@PermitRootLogin no@' /etc/ssh/sshd_config #禁止root用户登录
~]# grep PermitRoot /etc/ssh/sshd_config
PermitRootLogin no
~]# systemctl restart sshd #重启服务,此时断开连接后再用root就登录不上了,需要用前面创建的用户密码和自己修改后的端口连接。
第三步,通过自己创建的账号密码和正确的端口登录,这个普通账号其实跟root权限一样。
[jason@VM-0-9-centos ~]$ sudo -l
Matching Defaults entries for jason on VM-0-9-centos:
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
User jason may run the following commands on VM-0-9-centos:
(ALL) NOPASSWD: ALL
[jason@VM-0-9-centos ~]$ sudo ls /root
ip.txt
总结:修改sshd服务端口,禁用root通过账号密码登录,创建普通用户设置提权成管理员。
(也可以自己写脚本过滤出/var/log/secure超过3次登录失败的ip通过Linux防火墙给禁用,我这里只是买来学习用的,防火墙默认也是禁用的,没有什什么业务,且后续也没有暴力破解了,所有没做。)
ps:要是为了更安全可以直接使用证书登录,禁用账号密码登录上去