我在运行Apache 2.2的Linux服务器上有一个网页。对于某些其他服务,该服务器对于外界是可见的。
我想配置Apache,使给定的虚拟主机仅在本地网络内部可见,因此我可以部署Web应用程序以获取组织中其他人的反馈。我认为这与Allow指令有关,但是我的实验进行得并不顺利。
如何更改我的配置文件来实现?我也应该更改防火墙配置吗?
我在运行Apache 2.2的Linux服务器上有一个网页。对于某些其他服务,该服务器对于外界是可见的。
我想配置Apache,使给定的虚拟主机仅在本地网络内部可见,因此我可以部署Web应用程序以获取组织中其他人的反馈。我认为这与Allow指令有关,但是我的实验进行得并不顺利。
如何更改我的配置文件来实现?我也应该更改防火墙配置吗?
Answers:
简单。只需在您的主配置或虚拟配置中设置以下内容:
<Directory /var/www/path/to/your/web/documents>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 ::1
Allow from localhost
Allow from 192.168
Allow from 10
Satisfy Any
</Directory>
该<Directory></Directory>
语句基本上说:“将此规则用于此目录中的任何内容。并通过“此目录”指代/var/www/path/to/your/web/documents
我在本示例中设置的目录,但应更改为与您站点的本地目录路径匹配。
接下来,在该<Directory></Directory>
区域中,您将更改默认的Apache行为,Allow
默认情况下全部更改为Order Deny,Allow
。接下来,您设置Deny from all
为拒绝所有人的访问。以下是Allow from
允许从127.0.0.1 ::1
(本地主机IP地址)localhost
(本地主机本身)访问的语句。这就是所有标准的东西。由于localhost
许多内部系统进程都需要从中进行访问。
接下来是对您重要的内容。
所述Allow from
用于192.168
以及10
将允许从任何存取/由这些数字前缀网络范围内的所有网络地址。
因此,通过指出192.168
这一点基本上意味着用户是否拥有类似于的地址,192.168.59.27
否则192.168.1.123
他们将能够看到该网站。
并且类似地使用前缀Allow from
作为10
前缀,以确保某人的IP地址为10.0.1.2
,甚至10.90.2.3
可以看到内容。
世界上几乎所有内部网络都使用192.168
范围或范围内的某些内容10
。没有外在的东西。因此,使用此组合将实现您阻止访问外部世界的目标,但仅允许从本地网络内部进行访问。
Satisfy Any
应该在这种情况下怎么办?我对这一切一无所知,但是当它出现在我的场景中时,我可以<Location /path>
从外部网络访问该页面(我使用过)。删除它,但是解决了我的问题。很高兴理解为什么会这样,因为我有点担心即使规则到位我也可以访问该页面。
我不知道您如何进行网络设置,但是,我正在尝试尝试一些更好的答案。
假设您有一个带有DSL连接的小型办公室。您将有一个静态的公共IP地址或分配给线路,DSL调制解调器和防火墙的地址块。在不详细介绍如何发生的情况下,我将介绍重要的部分。
您应该使用NAT(网络地址转换)。这允许公用IP地址驻留在网络的WAN(Internet)侧,并在LAN侧的网络内使用私有IP地址(如10.0.0.100)。这是标准操作程序。如果您在网络中托管Web服务器,则可以使用端口转发或其他类似机制将任何Web流量指向您的Web服务器。
在这种标准情况下,您的内部计算机将全部使用私有IP地址。
假设您具有类似的标准网络设置,则可以将计算机IP地址从公用IP地址更改为专用IP地址。您的网络可能具有DHCP设置,您的计算机可以在其中请求可用的IP地址。这意味着您无需选择IP地址,而是选择使用DHCP,并且将分配IP地址。如果DHCP不可用,那么您将不得不在其他一些计算机上检查可能使用的私有IP地址空间,并在未使用的空间中选择一个IP地址。您可以在网络设置中指定此未使用的IP地址。这样可以防止您的系统出现在Internet上。