我在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中有一个拒绝所有语句,我仍然可以浏览到驻留在Apache web服务器上的站点。
添加“拒绝”条目后,重新启动系统。
为什么/etc/hosts.denwithall:ALL被忽略并允许http浏览apache web服务器上托管的站点?
发布于 2014-08-12 02:19:14
为了使tcp生效,您需要在xinetd之外启动相应的服务,或者拥有到脂包的应用程序链接。xinetd守护进程是一个TCP包装的超级服务。

首先要记住的是,并非计算机上的每个基于网络的应用程序都与tcpwrappers兼容。对hosts.allow或hosts.deny的限制只有在引用tcpwrappers库时才有效。如何才能找到应用程序是否兼容?使用以下命令:
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仍然是完全开放的)
发布于 2014-08-12 02:09:57
hosts.allow和hosts.deny文件的有效性有限。它不适用于apache应用程序。
但是,apache配置指令中有访问控制指令来进行这些类型的限制。
发布于 2014-08-12 21:02:37
若要限制apache服务器,请向httpd.conf添加以下内容
<Directory />
Order Deny, Allow
Deny from all
#Allow from your ip
</Directory>如果我没记错的话,您需要启用mod_access,但大多数情况下是默认的。
NB!您必须重新启动apache。
https://serverfault.com/questions/619714
复制相似问题