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登陆,配置生效。

  • 相关阅读:
    【liunx】使用xshell连接虚拟机上的CentOS 7,使用xhell连接本地虚拟机上的Ubuntu, 获取本地虚拟机中CentOS 7的IP地址,获取本地虚拟机中Ubuntu 的IP地址,linux查看和开启22端口
    eclipse启动tomcat, http://localhost:8080无法访问
    java合并PDF,itext.jar
    关于给springboot添加定时器的两种方式
    HttpClient post提交数据,汉字转码
    java 中文与unicode互转
    微信公众号里的图片下载并显示
    根据url下载图片和页面
    java获取指定日期之前或之后的时间
    java计算文件大小
  • 原文地址:https://www.cnblogs.com/wangdidi/p/14973223.html
Copyright © 2011-2022 走看看