centos 7 ssh登录安全问题

时间:2023-07-21 11:42:50

2018-10-11


1、ssh禁止root远程登录

修改ssh配置文件/etc/ssh/sshd_config

vim /etc/ssh/sshd_config

PermitRootLogin yes  #去掉前面的#并且将yes更改为no

重启ssh

systemctl  restart sshd

2、新添加普通用户并授权

创建用户组

groupadd groupname

添加用户并指定用户组

useradd -g groupname username

或者使用默认用户

useradd username

修改用户密码

passwd  username

限定用户权限

visudo

最后一行添加

username ALL=(root) /usr/bin/*, !/usr/bin/passwd [A-Za-z]*

注意:ALL=(root)是说su只能切换到root用户, 后面用逗号隔开的是用户的权限,/usr/bin/*表示可以执行基本命令,/usr/local/elasticsearch-2.4.4/*是我自己的elasticsearch的文件路径下所有权限, !/usr/bin/passwd [A-Za-z]*表示不可以修改除了自己的所有用户的密码

3、用户登录N次后,锁定用户,一段时间内禁止用户登录

在#%PAM-1.0的下面,即第二行,添加内容,一定要写在前面,如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是可以登录的!

vim /etc/pam.d/sshd
#%PAM-1.0 auth required pam_tally2.so deny= unlock_time= even_deny_root root_unlock_time=

各参数解释 
even_deny_root 也限制root用户; 
deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户 
unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒; 
root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒; 
此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则

完成之后,即可使用普通用户登录服务器,服务器安全级别相对提升不少