需求:需要用hosts.deny限制用户通过ssh登录
在/etc/hosts.deny中加入
sshd: all
在/etc/hosts.allow中加入
sshd:all #拒绝所有的ip链接ssh服务
在其他服务器上尝试链接该服务器,却发现还是正常链接
/etc/hosts.allow 与 /etc/hosts.deny 只对调用了 tcp_wrappers 的才起作用。
若是源代码编译的,看看编译时是否寻找了 libwrap.so
1、在起效果机器下,执行如下命令:
[root@zt ~]# ldd /usr/sbin/sshd | grep libwrap.so
libwrap.so.0 => /lib64/libwrap.so.0 (0x00002ba28edcc000)
2、在不起效果机器下,却找不到libwrap.so
3、在生效的机器上执行:
rpm -qf /lib64/libwrap.so.0 结果如下:
tcp_wrappers-7.6-40.7.el5
4、在不生效的机器上
yum install -y tcp_wrappers
安装后,用ldd /usr/sbin/sshd | grep libwrap.so 还是没有内容
5、在不生效机器上,继续
yum list |grep openssh 结果:
openssh.x86_64 5.3p2-24.el5 installed
openssh-clients.x86_64 5.3p2-24.el5 installed
openssh-server.x86_64 5.3p2-24.el5 installed
openssh.x86_64 5.3p2-41.el5_5.1 updates
openssh-askpass.x86_64 5.3p2-41.el5_5.1 updates
openssh-clients.x86_64 5.3p2-41.el5_5.1 updates
openssh-server.x86_64 5.3p2-41.el5_5.1 updates
于是,执行:
yum update -y openssh
再次执行:
ldd /usr/sbin/sshd | grep libwrap.so
有结果显示了。
别的服务器链接该服务器,也会报下面的错误
ssh_exchange_identification: Connection closed by remote host
hosts.deny 和hosts.allow 配置
一、vim /etc/ssh/sshd_config
二、输入:110G 寻址到110行
三、把#UsePrivilegeSeparation sandbox ,注释掉
四、升级OpenSSH,yum update -y openssh
五、修改TCP Wrappers策略,cat /etc/hosts.allow
ssh:IP
六、修改TCP Wrappers策略,cat /etc/hosts.deny
ssh:ALL
七、重启sshd进程,service sshd restart