Nginx и OpenVPN - управление доступом к файлам конфигурации WordPress - PullRequest
0 голосов
/ 03 июля 2018

Я иду с вопросом и изо всех сил, потому что я уже сделал настройку LEMP + CSF FireWall + nginx wordpress block + OpenVPN.

Итак - у меня проблема с блокировкой доступа к файлу wp-login.php и каталогу /wp-admin на сервере.

Я уже сделал успешную блокировку для всех, но не могу получить доступ к соединениям из VPN-туннелирования.

Легенда:

  • IP: 1.1.1.1 - IP-адрес сервера
  • IP: 10.8.0.2 - IP, который у меня есть при VPN-подключении

Это мой блок блокировки местоположения в 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-адреса сервера ... и все же я получаю error 403, когда пытаюсь добраться туда через VPN.

Редактировать

Я пытался добавить перенаправление в vpn push "redirect-gateway def1", и в блоках местоположения я изменил с 1.1.1.1 на 10.8.0.0/24 и все еще ничего (даже с 1.1.1.1 не работают).

Редактировать 2

Я изменил назначенный IP-адрес с VPN на клиента на 16,8. . (/ 24). У меня нет доступа к файлу (wp- *), когда я даю в блоке allow 1.1.1.1; allow 16.8.0.0/24; deny all. Это тренировка VPS, поэтому я могу больше с этим бороться: D

1 Ответ

0 голосов
/ 03 июля 2018

Может случиться так, что вы пытаетесь получить доступ к своему сайту, используя общедоступный IP-адрес вашей VPN, но не частный, кажется, вы уже пробовали это:

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-адрес, вероятно, IP будет соответствовать указанному здесь https://myip.country/ip)

...