首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >/etc/hosts.deny在Ubuntu 14.04中被忽略

/etc/hosts.deny在Ubuntu 14.04中被忽略
EN

Server Fault用户
提问于 2014-08-12 00:46:44
回答 4查看 5K关注 0票数 3

我在Ubuntu14.04LTS上运行了Apache2。要开始保护对机器的网络访问,我想从阻塞一切开始,然后为特定子网创建特定的允许语句,以浏览到Apache中托管的站点。

安装Ubuntu时没有选择软件包,安装后添加的软件包只有: apt-get update;apt安装apache2、php5 (附加php5 5-模块)、openssh-server、mysql-client

以下是我的/etc/hosts.deny/etc/hosts.allow设置:

  • /etc/hosts.deny .拒绝所有:
  • /etc/hosts.allow根本没有允许条目。

我希望所有的网络协议都会被拒绝。其症状是,即使/etc/hosts.deny中有一个拒绝所有语句,我仍然可以浏览到驻留在Apache web服务器上的站点。

添加“拒绝”条目后,重新启动系统。

为什么/etc/hosts.denwithall:ALL被忽略并允许http浏览apache web服务器上托管的站点?

EN

回答 4

Server Fault用户

发布于 2014-08-12 02:19:14

为了使tcp生效,您需要在xinetd之外启动相应的服务,或者拥有到脂包的应用程序链接。xinetd守护进程是一个TCP包装的超级服务。

tcpwrappers兼容性

首先要记住的是,并非计算机上的每个基于网络的应用程序都与tcpwrappers兼容。对hosts.allow或hosts.deny的限制只有在引用tcpwrappers库时才有效。如何才能找到应用程序是否兼容?使用以下命令:

代码语言:javascript
复制
ldd /path/to/binary | grep libwrap (general example)

ldd /usr/sbin/sshd | grep libwrap (shows that the sshd refers to libwrap)

ldd /usr/sbin/apache2 | grep libwrap (show that apache does not refer to libwrap)

在上面的基本示例中,我们看到sshd (ssh服务器)是指libwrap.so,因此我们可以看出,hosts.allow和hosts.deny中的任何限制都适用于该服务。我们还看到,apache2不引用libwrap.so,因此其中概述的任何限制都不适用于apache2连接。(例如:您可以锁定ssh,但apache2仍然是完全开放的)

票数 3
EN

Server Fault用户

发布于 2014-08-12 02:09:57

hosts.allow和hosts.deny文件的有效性有限。它不适用于apache应用程序。

但是,apache配置指令中有访问控制指令来进行这些类型的限制。

票数 0
EN

Server Fault用户

发布于 2014-08-12 21:02:37

若要限制apache服务器,请向httpd.conf添加以下内容

代码语言:javascript
复制
<Directory />
Order Deny, Allow
Deny from all
#Allow from your ip
</Directory>

如果我没记错的话,您需要启用mod_access,但大多数情况下是默认的。

NB!您必须重新启动apache。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/619714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档