Linux的hosts.allow和hosts.deny使用

  • Linux的hosts.allow和hosts.deny使用已关闭评论
  • 1,096 views
  • A+
所属分类:运维实战

通常我们会对提供对外服务的服务器进行远程ssh限制。这就涉及到了hosts.allow、hosts.deny两个文件。

hosts.allow、hosts.deny两个文件是控制远程访问设置的,通过它可以允许或者拒绝某个ip或者ip段的用户访问linux的某项服务。它们的配置也十分简单

more /etc/hosts.allow
sshd:192.168.x.x
sshd:192.12.31.2
more /etc/hosts.deny
sshd:all
  • sshd:192.168.x.x:允许192.168网段访通过ssh远程访问
  • sshd:192.12.31.2:允许192.12.31.2通过ssh远程访问
  • sshd:all拒绝所有ssh远程访问
  • 当hosts.allow和 host.deny相冲突时,以hosts.allow设置为准

当然hosts.allow及hosts.deny的配置还远远不止这些,比如可以配置all:172.31.174.3

表示接受所有来自于172.31.174.3的请求

在修改hosts.allow及hosts.deny的配置后保存,可能会发现刚才修改的配置并没有生效,其他IP依旧可以登录。不要纠结,这可能跟你的tcp_Wrappers防火墙有关。

仔细阅读hosts.allow及hosts.deny的注释信息,你会发现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

yum -y remove openssh
yum -y install openssh openssh-server

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

ldd /usr/sbin/sshd |grep libwrap.so.0
 libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f3fb7f09000)

重新测试ssh登录,发现配置生效

  • 安卓客户端下载
  • 微信扫一扫
  • weinxin
  • 微信公众号
  • 微信公众号扫一扫
  • weinxin
avatar