我需要限制对目录“testdir”中任何文件或子目录的访问。我的配置:
...
location ~* ^.+\.(jpg|txt)$ {
root /var/www/site;
}
location /testdir {
deny all;
return 404;
}
...
Run Code Online (Sandbox Code Playgroud)
在我的配置中,我对 /testdir/jpg_or_txt-files 没有任何限制。怎么做?
我或多或少地遵循 AWS 上的配置:
具有 3 台机器 o 3 个不同可用区的弹性负载均衡器。我的安全组允许 0.0.0.0/0:80 因为它是我的 rails 应用程序(nginx、unicorn)。
我想知道是否有任何方法可以拒绝特定公共 IP 地址访问我的应用程序?我一直在阅读 AWS 文档,但由于 SG 是“拒绝所有”,因此无法仅拒绝一个特定的 IP 地址。
有任何想法吗?负载均衡器后面的 3 台机器上的 iptables?
谢谢!
我偶然发现了一个httpd.conf我无法理解的指令:
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
Run Code Online (Sandbox Code Playgroud)
根据文档,我会说这Satisfy没有任何影响,因为没有Allow. 我错了吗?你认为这个指令有什么作用?
haproxy 中是否有类似 Apache 的“拒绝 ip”之类的东西?
我继承了一个设计糟糕的网络应用程序,它有一个需要公开访问的文件,但该文件位于一个不应公开访问的目录中。
换句话说,我需要一种方法来阻止目录中的所有文件和子目录,但为单个文件覆盖它。
我正在尝试这个:
# No one needs to access this directly
<Directory /var/www/DangerousDirectory/>
Order Deny,allow
Deny from all
# But this file is OK:
<Files /var/www/DangerousDirectory/SafeFile.html>
Allow from all
</Files>
</Directory>
Run Code Online (Sandbox Code Playgroud)
但它不起作用 - 它只会阻止包括我想要允许的文件在内的所有内容。有什么建议?
我怎样才能让我的本地 Apache 安装仅作为http://localhost/ 工作,而永远不会像在连接到网络时使用我机器的 IP 那样来自外部?
标题说明了一切,但我有一个非常有趣的问题,我很困惑。基本上,我有一个简单的 WordPress 安装,我希望拒绝一个文件夹(以及文件夹中的所有文件),比如说 /wp-content/themes/default/scripts 但允许某些 IP。
我可以否认这个文件夹的位置,^~/wp-content/themes/default/scripts {deny all;}就像任何 Nginx 大师都会告诉你的那样。
但是根据我的理解,“^”具有更高的优先级,一旦找到正则表达式匹配项,它将停止搜索其他位置块。因为我不想为每个人拒绝该文件夹(当然,使用allow (IP Address);,我的^~/wp-content/...位置块会完全抽出我的 PHP-FPM 位置块以将文件传递给 FastCGI 服务器。当然,当我尝试查看任何文件时在文件夹中,PHP 文件直接下载,因为 PHP 不解析它。
有没有人有想法?我想阻止该文件夹,但要让 PHP 同时为我决定允许的用户工作。这是一个相当棘手的问题。我找不到问题的任何答案。
谢谢你们!真的很感谢你的帮助!
对于任何想知道的人,我当前的 Nginx vhost 配置如下所示:
server {
#..all of the common stuff you would expect
include /folder/nginx.conf; #including some WordPress rewrites for W3 Total Cache
# pass the PHP scripts to FastCGI server listening on UNIX socket
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params; …Run Code Online (Sandbox Code Playgroud) 我一直在使用防火墙/路由器分发 Pfsense 一段时间,我一直在尝试弄清楚如何使用拒绝/拒绝 LAN 规则将 LAN 上的服务器与 LAN 上的其他计算机“隔离”。我尝试在防火墙-> 规则-> LAN 下添加一条规则,该规则拒绝设备(例如我的手机 192.168.1.102)向位于 192.168.1.105 的 Web 服务器发送任何 TCP 数据包。出于某种原因,数据包设法得到了。奇怪的是,如果我将路由器本身指定为目的地,并阻止电话/计算机与其通话,它就可以工作。我已经用无线笔记本电脑和无线电话测试了这个,它们都在同一个子网上。
我的拓扑如下:
(internet)->(modem)->(pfsense)->(wireless router /w switch)->(wired devices)
|
(Wireless laptop/phone)
| == wifi
-> == wire
Run Code Online (Sandbox Code Playgroud)
无线路由器/交换机是否可能只是将数据包从我的手机中继到服务器并完全绕过防火墙(解释为什么我的规则不起作用)?如果是这样,我如何设置它以便所有 LAN 流量都必须通过我的防火墙才能与网络上的任何其他计算机通信?
此处提供的 Web 界面图片作为 3 代表不会让我发布图片:(图片
我们阻止了一些恶意机器人,它们无情地尝试通过 NGINX 中的“拒绝”指令访问我们的网站。我们无法在防火墙处阻止它,因为我们使用了无法从云提供商处访问的负载均衡器。
该指令工作正常,但我们的 nginx error.log 文件被这些请求淹没。我们让它们轮换,但对我们来说很糟糕,因为有太多的请求,我们实际上无法使用错误日志来查看是否有任何我们应该注意的真正错误。
所以有几个问题:
我目前在 nginx.conf 文件中拒绝这样的 IP 地址:
拒绝 42.22.11.531;
但我怎么否认
拒绝 42.22.*.*; <---- 这显然不起作用,nginx 的正确语法是什么?
我见过:
拒绝 42.22.11.0/24 <---- 不知道这是什么意思,但它让我尝试
拒绝 42.22.0/999.0/999 <---- 失败。
那么正确的语法是什么?