限制 root 远程登录的原因大家都懂吧,下面是几种实现方式:
方法一:
直接改 `/etc/ssh/sshd_config` 文件,把 `PermitRootLogin` 改成 `no`,然后重启 SSH 服务就搞定了。命令是:`/etc/rc.d/sshd restart`。
方法二:
在 `/etc/default/login` 文件里加一行:`CONSOLE=/dev/tty01`,保存后立马生效,不用重启系统。这样只有在控制台(`/dev/tty01`)才能用 root 登录,虽然能限制远程访问,但局域网里的用户也不能用 root 登录了,管理员维护起来可能会有点麻烦。
方法三:
如果想限制 root 远程登录,又不想影响局域网用户,可以这么做:
第一步:
区分哪些用户是从远程(比如 Windows 或 UNIX 系统通过 telnet 登录的),哪些是局域网用户。下面这个 Shell 脚本可以实现:
bash
TY=`tty | cut -b 9-12`
WH=`finger | cut -b 32-79 | grep $TY | cut -b 29-39`
KK=`tty | cut -b 6-9`
If Then
WH=$WH
Else
WH=local
Fi
这里的 `WH` 是登录用户的主机 IP,如果在 `/etc/hosts` 里配置了 IP 和主机名的映射,`WH` 就会显示主机名。比如,假设局域网终端服务器的 IP 是 `99.57.32.18`,可以在 `/etc/hosts` 加一行:
99.57.32.18 terminal_server
这样,所有通过这台终端服务器登录的用户,`WH` 的值都会是 `terminal_server`。
第二步:
在 root 的 `.profile` 文件里根据 `WH` 的值做不同处理,就能限制远程 root 登录了:
bash
Trap 1 2 3 9 15
If Then
Echo Welcome......
Else
Exit
Fi
方法四:
有时候为了方便工作,可以让局域网里某些电脑的 root 登录,比如只允许 IP 为 `99.57.32.58` 的电脑 root 登录。基于前面的方法,需要补充两点:
1. 在 `/etc/hosts` 文件里加一行:
99.57.32.58 specific_host
搞定!
方法一:
直接改 `/etc/ssh/sshd_config` 文件,把 `PermitRootLogin` 改成 `no`,然后重启 SSH 服务就搞定了。命令是:`/etc/rc.d/sshd restart`。
方法二:
在 `/etc/default/login` 文件里加一行:`CONSOLE=/dev/tty01`,保存后立马生效,不用重启系统。这样只有在控制台(`/dev/tty01`)才能用 root 登录,虽然能限制远程访问,但局域网里的用户也不能用 root 登录了,管理员维护起来可能会有点麻烦。
方法三:
如果想限制 root 远程登录,又不想影响局域网用户,可以这么做:
第一步:
区分哪些用户是从远程(比如 Windows 或 UNIX 系统通过 telnet 登录的),哪些是局域网用户。下面这个 Shell 脚本可以实现:
bash
TY=`tty | cut -b 9-12`
WH=`finger | cut -b 32-79 | grep $TY | cut -b 29-39`
KK=`tty | cut -b 6-9`
If Then
WH=$WH
Else
WH=local
Fi
这里的 `WH` 是登录用户的主机 IP,如果在 `/etc/hosts` 里配置了 IP 和主机名的映射,`WH` 就会显示主机名。比如,假设局域网终端服务器的 IP 是 `99.57.32.18`,可以在 `/etc/hosts` 加一行:
99.57.32.18 terminal_server
这样,所有通过这台终端服务器登录的用户,`WH` 的值都会是 `terminal_server`。
第二步:
在 root 的 `.profile` 文件里根据 `WH` 的值做不同处理,就能限制远程 root 登录了:
bash
Trap 1 2 3 9 15
If Then
Echo Welcome......
Else
Exit
Fi
方法四:
有时候为了方便工作,可以让局域网里某些电脑的 root 登录,比如只允许 IP 为 `99.57.32.58` 的电脑 root 登录。基于前面的方法,需要补充两点:
1. 在 `/etc/hosts` 文件里加一行:
99.57.32.58 specific_host
搞定!