禁止 root 远程登录解决办法
实现 root 无法远程登陆,但所有用户可以切换至 root
- 首先打开配置文件
vim /etc/ssh/sshd_config

这行的意思是允许使用 root 用户登陆,所以我们将它改为 no ,不允许 root 用户直接登陆。
保存退出配置文件后,重启 sshd 服务
systemctl restart sshd.service
重新建立连接就发现 root 用户已经不能登陆了,我们只能通过普通用户登陆再进行切换。
实现 root 无法远程登陆,且只有特定的用户才可以切换 root
一般情况下,普通用户执行 "su -" 命令, 可以登录为 root 。为了加强系统的安全性, 有必要建立一个管理员的组,只允许这个组的用户执行 "su -" 命令登录为 root ,而让其他组的用户即使执行 "su -" 输入了正确的密码,也无法登录为 root 用户. 在 Unix 和 Linux 下,这个组的名称通常为 "wheel" 。
- 添加一个用户,把这个用户加入 wheel 组
adduser admin
passwd admin
usermod -G wheel admin

2. 修改 /etc/pam.d/su
去掉这行注释
auth required pam_wheel.so use_uid
- 修改 /etc/login.defs
vim /etc/login.defs
在文件末添加一行
SU_WHEEL_ONLY yes
添加和 root 权限一样的用户
adduser admin
passwd admin
修改 /etc/sudoers 文件,找到下面一行,在 root 下面添加一行,如下所示
vim /etc/sudoers
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
admin ALL=(ALL) ALL
这个文件只读是一种保护机制,如果你使用 vi 编辑器的话,只要保存时使用 wq! 就可以保存了。或者使用 visudo 命令来进入 sudoers 文件的编辑,就可以正常保存。
ssh 限制 IP 和 用户登录
- 配置 sshd 限制
在 /etc/hosts.allow 中添加允许 ssh 登陆的 ip 或者网段
sshd:192.168.1.2:allow # 表示一个ip
sshd:192.168.1.0/24:allow # 表示一段ip
在 /etc/hosts.deny 添加不允许 ssh 登陆的 IP
sshd:ALL # ALL表示除了上面允许的,其他的 ip 都拒绝登陆 ssh
- 利用 iptables 防火墙限制
iptables -A INPUT -p tcp -s 192.168.1.2 --destination-port 22 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 22 -j DROP

浙公网安备 33010602011771号