SUSE Linux Enterprise 12 (SLES12) SP5系统使用TCP Wrappers实现SSH访问控制
之前有写过在CentOS7系统上使用TCP Wrappers实现SSH访问控制
利用tcp_wrapper实现SSH登录的IP访问控制
再结合网上收集的文件作为参考
代码语言:javascript复制https://blog.csdn.net/cwg_xiaoguizi/article/details/81124054
准备套用在SLES12 SP5的系统上
(图片可点击放大查看)
1、SLES12 SP5测试环境搭建
SLES12 SP5的系统 192.168.31.11
(图片可点击放大查看)
(图片可点击放大查看)
代码语言:javascript复制cat /etc/os-release
which sshd
ldd /usr/sbin/sshd | grep -i libwrap
2、配置/etc/hosts.allow和/etc/hosts.deny
代码语言:javascript复制vi /etc/hosts.allow
添加允许访问SLES12SP5的IP 192.168.31.47
sshd : 192.168.31.47 :ALLOW
(图片可点击放大查看)
代码语言:javascript复制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官方论坛的话题,各种说法都有
链接如下
代码语言:javascript复制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这个参数
(图片可点击放大查看)
感觉有戏了
代码语言:javascript复制vi /etc/ssh/sshd_config
取消注释
UseTCPWrappers yes
systemctl restart sshd
(图片可点击放大查看)
(图片可点击放大查看)
5、这时验证效果
访问控制生效,问题解决
(图片可点击放大查看)
6、优化:加入日志打印
代码语言:javascript复制vi /etc/hosts.deny
修改成如下
sshd : ALL EXCEPT LOCAL : spawn echo `date` login attempt from %c to %s ,the host is %h .PID is %p >> /var/log/tcpwrapper.log
(图片可点击放大查看)
再验证效果 ,系统正常打印拒绝时的日志
(图片可点击放大查看)
问题解决!
7、总结
结论:大胆假设,小心求证!(八字箴言送给大家)