RUI个人博客 首页>>Linux>>[原]Openssh6.7p1不再支持tcpwrappers导致/etc/hosts.deny设置不生效问题的解决办法

[原]Openssh6.7p1不再支持tcpwrappers导致/etc/hosts.deny设置不生效问题的解决办法

本文档是关于 Openssh6.7p1不再支持tcpwrappers导致/etc/hosts.deny设置不生效问题的解决办法

解决方案(2个):
关于asianux4sp4上host.deny策略无法生效的原因,已经查明。是ssh的版本问题,在asianux4sp4自带的ssh版本中,该策略是可以正常生效的,而当前服务器上使用的升级后的ssh版本,升级后的版本已经不支持该策略了,所以在hosts.deny文件中定义的sshd规则,无法起到限制作用
以下openssh官网链接中有说明,请参考:

该链接中有说明已经移除了对该功能的支持(Support for tcpwrappers/libwrap has been removed.)

对于想要实现对访问服务器IP的限制,解决方法有两种。
第一种:还原ssh的版本,将升级后的ssh版本还原为未升级时的版本。
第二种:使用iptables规则设置限制访问策略。

iptables策略可参考:
iptables -N ssh_whitelist
iptables -A INPUT -p tcp --syn --dport ssh -j ssh_whitelist
iptables -A ssh_whitelist -j DROP
iptables -I ssh_whitelist -s $your_ip -j ACCEPT
iptables -I ssh_whitelist -s $your_ip_2 -j ACCEPT
iptables -I ssh_whitelist -s $your_ip_n -j ACCEPT
这里介绍第一种方式,由于这边的iptables都是关闭的,所以第二种方式略:

注意:
安装过程中ssh服务会断开,所以请先确认没有其他应用在使用ssh服务
安装过程中ssh服务无法使用所以请到机房服务器本地执行

可以提前将要安装的低版本的rpm 上传到相应的服务器上,这样卸载了后直接可以装,如果没有的话就参考第4步吧
1. 确认openssh
#rpm -qa | grep -i openssh
2. 卸载openssh服务(这些服务也就是上面查询出来的)(有可能是4个或者6个)
#rpm -e openssh-6.7p1 openssh-askpass-6.7p1 openssh-server-6.7p1 openssh-clients-6.7p1
如果上面的命令由于包依赖关系报错的话执行下面的命令:
(--nodeps 不验证包的依赖性)
#rpm -e openssh-6.7p1 openssh-askpass-6.7p1 openssh-server-6.7p1 openssh-clients-6.7p1 --nodeps
3. 再次确认openssh是否卸载完成
#rpm -qa | grep -i openssh
4.卸载完成之后,安装低版本的openssh
#fdisk -l 查看U盘的盘符
例如查到的是/dev/sdb4(请以实际识别到的U盘盘符为主)
执行#mount /dev/sdb4 /mnt
#cd /mnt/
#rpm -ivh openssh-*
编辑配置文件
#vim /etc/ssh/sshd_config
找到PermitRootLogin no 改为PermitRootLogin yes

#service sshd start
2016.12.29 于 北京邮储传   tyger.wang
昵  称:
邮  箱:
评论内容:
验 证 码:
可用[code][/code]插入代码
点击刷新验证码