6级准考证号hosts.allow、hosts.deny配置不⽣效的解决⽅法
数据包经过本地iptables防⽕墙后的权限分布图
数据包通过iptables规则检查之后,系统还会判断这个数据包所使⽤的的应⽤程序是否调⽤到Libwrap.So链接库⽂件,如果使⽤Libwrap.so 链接库⽂件的话会⾛/etc/hosts.allow和hosts.deny⽂件,可以在这两个⽂件再次做⼀次管控,如果应⽤程序不调⽤Libwrap.so链接库那么数据包就直接到达本地应⽤程序了。
说明:中国知网在线翻译
1.⼀个IP请求连⼊,linux的检查策略是先看/etc/hosts.allow中是否允许,如果允许直接放⾏;如果没有,则再看/etc/hosts.deny中是否禁⽌,如果禁⽌那么就禁⽌连⼊。
2.实验发现对/etc/hosts.allow和/etc/hosts.deny的配置不⽤重启就⽴即⽣效,但不管重启不重启当前已有会话都不会受影响;也就是说对之前已经连⼊的,即便IP已配置为禁⽌登录会话仍不会强制断开。不过不知是否所有linux都⼀样,由此第四步标为可选。
3.⽹上发现有些教程写成不是sshd⽽是in.sshd不是in.telnetd⽽是telnetd的,个⼈觉得应该是独⽴启的不⽤加in.的需要加in.
通过配置hosts.allow、hosts.deny,控制SSH限制固定IP登陆
按照以往的⽅法,分别在hosts.allow、hosts.deny加⼊以下配置
# more /etc/hosts.allowfried
sshd:while
# more /etc/hosts.deny
sshd:all
保存后测试,发现配置⽆效,其他IP还是可以登陆成功。
解决⽅法如下:
hosts.allow和hosts.deny属于tcp_Wrappers防⽕墙的配置⽂件,⽽⽤tcp_Wrappers防⽕墙控制某⼀服务访问策略的前提是,该服务⽀持
tcp_Wrappers防⽕墙,即该服务应⽤了libwrapped库⽂件。
查看某服务(如ssh)是否应⽤了libwrapped库⽂件的⽅法是:
# ldd /usr/sbin/sshd |grep libwrap.so.0
roughly没有显⽰,表⽰此服务器上安装的SSH没有应⽤libwrapped库⽂件,也就不能⽤tcp_Wrappers防⽕墙控制访问策略。(⼀般情况下服务器默认安装的SSH都是⽀持libwrapped库⽂件,这台服务器不清楚为什么不⽀持)西安会计
最终解决⽅法是重新安装SSH。
# yum -y remove opensshny是啥意思呀
上半年英语四六级口试取消
# yum -y install opensshaffix
# yum -y install openssh-rver
安装完成后再次查看是否应⽤了libwrapped库⽂件,显⽰⽀持。
djb# ldd /usr/sbin/sshd |grep libwrap.so.0
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f3fb7f09000)
再测试SSH登陆,配置⽣效。