需求:需要用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