我想配置Apache,以便仅从本地网络内部可见给定的虚拟主机,因此我可以部署Web应用程序以获取组织中其他人的反馈。我认为这与Allow指令有关,但是我的实验进行得并不顺利。
如何更改我的配置文件来实现这一目标?我也应该更改防火墙配置吗?
#1 楼
简单。只需在您的主配置或虚拟配置中设置以下内容即可:并通过引用此示例中设置的<Directory></Directory>
的“此目录”,但应更改为匹配您站点的本地目录路径。接下来,在
/var/www/path/to/your/web/documents
区域中,您将更改默认的Apache行为其中<Directory></Directory>
全部默认为Allow
。接下来,将Order Deny,Allow
设置为拒绝所有人的访问。以下是Deny from all
语句,该语句允许从Allow from
(本地主机IP地址),127.0.0.1 ::1
(本地主机本身)进行访问。这就是所有标准的东西。由于许多内部系统进程都需要从localhost
进行访问。接下来的事情对您来说很重要。
localhost
和Allow from
的192.168
将允许从网络范围内以这些数字为前缀的任何/所有网络地址。因此,通过指示
10
,基本上意味着如果用户拥有的地址如192.168
或192.168.59.27
,他们将能够看到该网站。 并且类似地使用
192.168.1.123
作为Allow from
前缀,可以确保如果某人的IP地址为10
甚至10.0.1.2
,他们将能够看到其内容。几乎所有内容全世界的内部网络都使用
10.90.2.3
范围或192.168
范围内的某些值。没有外在的东西。因此,使用此组合将实现您阻止访问外部世界的目标,但仅允许从本地网络内部进行访问。评论
在这种情况下应该满足什么?我对这一切一无所知,但是当它出现在我的场景中时,我可以从外部网络访问该页面(我使用
–liamnichols
16年8月10日在17:24
@liamnichols如此处所述:“如果满足任何要求(身份验证或访问),则允许请求。”
–Giacomo1968
16年8月11日,0:06
#2 楼
进入此答案的人们请注意,这是针对Apache 2.2的。Apache 2.4已弃用了这些指令。
新方法是使用模块
mod_authz_host
和Require
指令。 (链接)在Apache 2.4中,您应该执行
<Directory /var/www/ncp-web/>
Require host localhost
Require ip 127.0.0.1
Require ip 192.168
Require ip 10
</Directory>
,并删除所有Allow指令。
#3 楼
将本节添加到虚拟主机指令中:<Location /mypathurl>
Order deny,allow
Deny from all
Allow from 192.168.1.10
</Location>
在上面替换您的IP。仅供参考,不要用于财务级别的安全性。
#4 楼
我不知道您如何设置网络,但是,我正在尝试尝试一些更好的答案。您将有一个静态的公共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上。
评论
我考虑过了,但这不是实际的解决方案。该机器上的某些服务必须对外部保持可见,无论如何,我计划在几天之内使该Web应用程序再次可见-仅几天之久就不会改变网络布局。但是,我可以处理的是Apache配置之类的东西。
– Btz
2014年3月20日在10:34
如果您有防火墙,则可以关闭该IP地址的某些端口。
– closetnoc
2014年3月20日15:36
可以使用防火墙设置,但这实在是太过分了。 Apache内置了基于IP地址和其他相关条件拒绝或允许的功能。请参阅我的答案以获取更多详细信息。
–Giacomo1968
14年8月17日在18:56
@JakeGould防火墙不一定是一种过大的解决方案。我确实非常了解Apache。但是,大多数优质的防火墙中都有HTTP筛选选项,可以在不增加服务器本身负担的情况下提供帮助。同样,尽管Apache非常出色,但并非没有缺陷。同样,可以使用防火墙来操纵包括备用端口访问在内的端口访问,以便某些Web服务保持公共状态,而其他Web服务只能在LAN内访问。
– closetnoc
2014年8月17日在21:53
评论
您是在为服务器使用私有(不可路由)IP地址(例如10.0.0.100)还是公共(可路由)IP地址?该服务器具有公共IP地址,我可以从工作网络外部(例如,在家中)连接到该服务器。同事的计算机都具有10。*。*。*类型的本地IP地址。