SUSE Linux Enterprise 12 (SLES12) SP5系统使用TCP Wrappers实现SSH访问控制
之前有写过在CentOS7系统上使用TCP Wrappers实现SSH访问控制
再结合网上收集的文件作为参考
https://blog.csdn.net/cwg_xiaoguizi/article/details/81124054
准备套用在SLES12 SP5的系统上
1、SLES12 SP5测试环境搭建
SLES12 SP5的系统 192.168.31.11
cat /etc/os-release which sshd ldd /usr/sbin/sshd | grep -i libwrap
2、配置/etc/hosts.allow和/etc/hosts.deny
vi /etc/hosts.allow 添加允许访问SLES12SP5的IP 192.168.31.47 sshd : 192.168.31.47 :ALLOW
vi /etc/hosts.deny sshd : ALL EXCEPT LOCAL 拒绝所有IP访问SSH
3、准备验证效果
192.168.31.47可以正常登录
192.168.31.105也可以正常登录SLES12 SP5系统(192.168.31.11)的SSH
这下翻车了,啪啪打脸,访问控制居然不生效
4、搜索引擎开始求证
配置反复检查也没有问题
搜索了很多SUSE官方论坛的话题,各种说法都有
链接如下
https://www.tecmint.com/secure-linux-tcp-wrappers-hosts-allow-deny-restrict-access/ https://www.oreilly.com/library/view/linux-security-cookbook/0596003919/ch03s13.html https://forums.opensuse.org/showthread.php/505226-Is-file-etc-hosts-deny-disabled-on-OpensSuse-13-2 https://forums.opensuse.org/showthread.php/508618-openSUSE-13-2-sshd-bypass-hosts-allow-file https://blog.csdn.net/cwg_xiaoguizi/article/details/81124054
hosts.allow has been deprecated and is no longer used. 这个说法差点我就信了
正准备放弃时,准备替代方案
例如/etc/ssh/sshd_config 配置文件中加入限制AllowUsers root@192.168.31.47 突然发现#UseTCPWrappers yes这个参数
感觉有戏了
vi /etc/ssh/sshd_config 取消注释 UseTCPWrappers yes systemctl restart sshd
5、这时验证效果
访问控制生效,问题解决
6、优化:加入日志打印
vi /etc/hosts.deny 修改成如下 sshd : ALL EXCEPT LOCAL : spawn echo `date` login attempt from %c to %s ,the host is %h .PID
再验证效果 ,系统正常打印拒绝时的日志
问题解决!
7、总结
结论:大胆假设,小心求证!(八字箴言送给大家)