只是稍微改进一下,其实最好的办法是禁止通过密码登录,只允许使用密钥对。但是总有时不太方便使用密钥的

1.禁止ROOT用户,限制允许SSH登陆的用户

AllowUsers user1
PermitRootLogin yes
#LoginGraceTime 30s
#MaxAuthTries 5
#Protocol 2
#ServerKeyBits   1024
#port 59722

2.限制允许登陆的用户的SHELL,禁止.bash_history

ln -s /dev/null ~/.bash_history

自己编写一个简单的shell,检测用户输入,除非用户输入su时正常的执行su操作,输入其他任何命令全都返回bad command

3.限制允许SU的用户,只允许wheel组的用户可以su成为root

1)创建普通用户user1,并设置密码

useradd user1 && passwd test

2)把test加入wheel组

usermod -G wheel user1

3)修改pam配置,使非wheel组用户不能使用su命令登陆为root
vi /etc/pam.d/su
找到

#auth required /lib/security/$ISA/pam_wheel.so use_uid

将行首的 # 去掉。然后

vi /etc/login.defs

在文件末尾加上

SU_WHEEL_ONLY yes

保存就可以了。

完成以上设置后的实际环境为:

只有user1可以SSH
只有user1可以通过su成为root
user1的shell操作历史不被记录
user1登录后只能执行su,不能执行其他任何命令(需要自己制作并指定shell)