zoukankan      html  css  js  c++  java
  • 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.托管于xinetd的需要加in.

    通过配置hosts.allow、hosts.deny,控制SSH限制固定IP登陆

    按照以往的方法,分别在hosts.allow、hosts.deny加入以下配置

    # more /etc/hosts.allow

    sshd:192.168.x.x

    # 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

    没有显示,表示此服务器上安装的SSH没有应用libwrapped库文件,也就不能用tcp_Wrappers防火墙控制访问策略。(一般情况下服务器默认安装的SSH都是支持libwrapped库文件,这台服务器不清楚为什么不支持)

    最终解决方法是重新安装SSH。

    # yum -y remove openssh

    # yum -y install openssh

    # yum -y install openssh-server

    安装完成后再次查看是否应用了libwrapped库文件,显示支持。

    # ldd /usr/sbin/sshd |grep libwrap.so.0

            libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f3fb7f09000)

    再测试SSH登陆,配置生效。

  • 相关阅读:
    第七十天 how can I 坚持
    第六十九天 how can I 坚持
    第六十八天 how can I 坚持
    第六十七天 how can I 坚持 (补昨天)
    第六十六天 how can I 坚持··
    第六十五天 how can I 坚持
    第六十四天 how can i 坚持
    第六十三天 how can I 坚持
    MyEclipse10 中的两种FreeMarker插件的安装与配置
    画板社交工具开发分享——HTML5 canvas控件、PHP、社交分享学习(四)
  • 原文地址:https://www.cnblogs.com/wangdidi/p/14973223.html
Copyright © 2011-2022 走看看