Nginx 和 OpenVPN - 控制对 wordpress 配置文件的访问
Nginx and OpenVPN - controlling access to wordpress configuration files
我遇到了一个问题并且很挣扎,因为我已经设置了 LEMP + CSF FireWall + Nginx WordPress block + OpenVPN。
所以 - 我在阻止访问服务器上的 wp-login.php
文件和 /wp-admin
目录时遇到问题。
我已经成功阻止那里的任何人,但我无法访问来自 VPN 隧道的连接。
图例:
- IP: 1.1.1.1 - 服务器 IP
- IP:10.8.0.2 - 我在 VPN 连接时得到的 IP
这是我在 nginx 的位置阻塞:
location ~ ^/(wp-admin|wp-login\.php) {
allow 1.1.1.1;
deny all;
}
这是我的 OpenVPN 配置文件:
port 1194
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem
我试图允许 10.8.0.0/24 和服务器 IP 的连接...但是,当我尝试通过 VPN 到达那里时,我仍然得到 error 403
。
编辑
我尝试将重定向添加到 VPN push "redirect-gateway def1"
并且在位置块中,我从 1.1.1.1
更改为 10.8.0.0/24
但仍然没有(即使使用 1.1.1.1 也不起作用) .
编辑 2
我将分配的 IP 从 VPN 更改为客户端 16.8.*.* (/24) 地址。当我在块 allow 1.1.1.1; allow 16.8.0.0/24; deny all
中给出时,我无法访问文件 (wp-*)。
它正在训练 VPS 所以我可以更努力地使用它 :D
可能发生的情况是,您正在尝试使用 VPN 的 public IP 而不是私有 IP 访问您的站点,看来您已经尝试过:
location ~ ^/(wp-admin|wp-login\.php) {
allow 1.1.1.1;
allow 10.80.0.0/24;
deny all;
}
但现在尝试检查当前正在执行请求的 IP 是什么,试试这个:
location /myip {
default_type text/plain;
return 200 "$remote_addr\n";
}
然后查询 yoursite/myip
它应该打印出您用来访问的 IP 以及您可能只想允许的 IP。 (如果是 public IP,IP 可能会与此处打印的 IP 匹配 https://myip.country/ip)
我遇到了一个问题并且很挣扎,因为我已经设置了 LEMP + CSF FireWall + Nginx WordPress block + OpenVPN。
所以 - 我在阻止访问服务器上的 wp-login.php
文件和 /wp-admin
目录时遇到问题。
我已经成功阻止那里的任何人,但我无法访问来自 VPN 隧道的连接。
图例:
- IP: 1.1.1.1 - 服务器 IP
- IP:10.8.0.2 - 我在 VPN 连接时得到的 IP
这是我在 nginx 的位置阻塞:
location ~ ^/(wp-admin|wp-login\.php) {
allow 1.1.1.1;
deny all;
}
这是我的 OpenVPN 配置文件:
port 1194
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem
我试图允许 10.8.0.0/24 和服务器 IP 的连接...但是,当我尝试通过 VPN 到达那里时,我仍然得到 error 403
。
编辑
我尝试将重定向添加到 VPN push "redirect-gateway def1"
并且在位置块中,我从 1.1.1.1
更改为 10.8.0.0/24
但仍然没有(即使使用 1.1.1.1 也不起作用) .
编辑 2
我将分配的 IP 从 VPN 更改为客户端 16.8.*.* (/24) 地址。当我在块 allow 1.1.1.1; allow 16.8.0.0/24; deny all
中给出时,我无法访问文件 (wp-*)。
它正在训练 VPS 所以我可以更努力地使用它 :D
可能发生的情况是,您正在尝试使用 VPN 的 public IP 而不是私有 IP 访问您的站点,看来您已经尝试过:
location ~ ^/(wp-admin|wp-login\.php) {
allow 1.1.1.1;
allow 10.80.0.0/24;
deny all;
}
但现在尝试检查当前正在执行请求的 IP 是什么,试试这个:
location /myip {
default_type text/plain;
return 200 "$remote_addr\n";
}
然后查询 yoursite/myip
它应该打印出您用来访问的 IP 以及您可能只想允许的 IP。 (如果是 public IP,IP 可能会与此处打印的 IP 匹配 https://myip.country/ip)