提高云主机安全的一些做法

版权声明:本文为博主原创文章,承蒙转载请注明作者和出处 https://blog.csdn.net/shanchuan2012/article/details/82290683

1.缘由

主机系统:centos7

今天用ssh登录vps的时候显示以下信息:

Last failed login: Sat Sep  1 11:55:01 UTC 2018 from 112.85.42.201 on ssh:notty
There were 594 failed login attempts since the last successful login.

有594次登陆失败,应该是被扫描了。

last命令用于显示用户最近登录信息。单独执行last命令,它会读取/var/log/wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来。用last查看一下,还好,只有自己登录过。

lastb命令用于显示用户错误的登录列表,此指令可以发现系统的登录异常。单独执行lastb命令,它会读取位于/var/log目录下,名称为btmp的文件,并把该文件内容记录的登入失败的用户名单,全部显示出来。执行一下:

support  ssh:notty    59.41.66.141     Sat Sep  1 12:05 - 12:05  (00:00)    
support  ssh:notty    59.41.66.141     Sat Sep  1 12:05 - 12:05  (00:00)    
paul     ssh:notty    132.232.23.12    Sat Sep  1 11:57 - 11:57  (00:00)    
paul     ssh:notty    132.232.23.12    Sat Sep  1 11:57 - 11:57  (00:00)    
root     ssh:notty    112.85.42.201    Sat Sep  1 11:55 - 11:55  (00:00)    
root     ssh:notty    112.85.42.201    Sat Sep  1 11:54 - 11:54  (00:00)    
root     ssh:notty    112.85.42.201    Sat Sep  1 11:54 - 11:54  (00:00)    
root     ssh:notty    112.85.42.201    Sat Sep  1 11:54 - 11:54  (00:00)    
root     ssh:notty    112.85.42.201    Sat Sep  1 11:54 - 11:54  (00:00)    
root     ssh:notty    112.85.42.201    Sat Sep  1 11:54 - 11:54  (00:00)    
root     ssh:notty    112.85.42.201    Sat Sep  1 11:54 - 11:54  (00:00)    
root     ssh:notty    112.85.42.201    Sat Sep  1 11:54 - 11:54  (00:00)    
root     ssh:notty    112.85.42.201    Sat Sep  1 11:54 - 11:54  (00:00)    

可怕,一直在被扫描,查看一下有多少条记录:

# lastb > loginFuailure.log
# wc -l loginFuailure.log
1008 loginFuailure.log

已经有1008次尝试了。

2.常用解决办法

采用如下做法:
- 更换22端口
- 改用密钥和公钥配对登陆SSH,禁止密码登录
- 限制密码出错次数
- 禁止root登陆

2.1 修改22端口

参考:CentOS7增加或修改SSH端口号
1.修改配置文件:

$ vim /etc/ssh/sshd_config

找到 #Port 22这一行,去除注释,开放22端口,再复制一行修改为其他端口。先保留了22端口,是为了防止之后因为各种权限和配置问题,导致连22端口不能访问,那就玩脱了。等可以使用其他端口登录了,再关闭22端口。

重启后不要急于退出终端去尝试能否登录,新开一个终端去尝试能否登录,我就忘了修改防火墙直接退出了,于是怎么也登录不上,即使端口是对的。还好vultr提供有网页的控制台可以用密码登陆。

2.SELinux
查看SELinux是否开启:

# getenforce 
Disabled

我这里是关闭的,不需要做相关的配置。

3.防火墙:

# firewall-cmd --permanent --query-port=xxxxx/tcp
no
# firewall-cmd --permanent --add-port=xxxxx/tcp
success
# firewall-cmd --reload
success
# firewall-cmd --permanent --query-port=xxxxx/tcp
yes

4.重启:

# systemctl restart sshd
# systemctl restart firewalld.service

再用默认端口是登不上的:

#ssh [email protected] -p 22
ssh: connect to host xx.xx.xx.xx port 22: Connection refused

必须要使用修改过后的端口。

2.2 禁止使用密码登录

注意:需要先配置好私钥登录,不然把密码登录禁用了就没有办法登录了。
编辑/etc/ssh/sshd_config
将PasswordAuthentication参数值修改为no: PasswordAuthentication no
重启ssh服务:systemctl restart sshd

2.3 限制密码出错次数

参考

#vim /etc/pam.d/sshd
#%PAM-1.0
auth       required     pam_tally2.so deny=3 lock_time=300 even_deny_root root
_unlock_time=1000

禁止root登陆:
如有需要可添加用户:

# adduser name
# passwd name

修改配置文件:

编辑/etc/ssh/sshd_config :
PermitRootLogin no //阻止root用户登陆 
AllowUsers name  //允许制定用户使用SSH登陆,name改为你允许的用户名

重启服务:

#systemctl restart sshd

其他参考

修改root密码:参考官方文档

我有个问题:ssh:notty是什么意思?

参考:
ssh端口更改后无法登录问题

猜你喜欢

转载自blog.csdn.net/shanchuan2012/article/details/82290683