Как заблокировать все запросы из некоторых нежелательных стран только в одном месте (nginx)

467
Marek Marcinko

Я использую nginx и установил пакет geoip-database-contrib, чтобы заблокировать доступ к расположению / wp-admin из всех стран, кроме некоторых предпочитаемых.

location /wp-admin { if ($allowed_country = no) { return 403; } } 

Работает нормально при попытке открыть эту страницу в браузере. Но все же я вижу в access.log много POST-запросов и в журналах worpdress неудачных запросов на вход из отклоненных стран. Можно ли использовать модуль geoip-database-contrib также для POST-запросов?

Я старался:

location /wp-admin { if ($allowed_country = no) { deny all; } } 

но после перезагрузки nginx вообще не запускается. У вас есть идеи, как заблокировать все запросы только для location / wp-admin? Я не хочу блокировать трафик на уровне брандмауэра, потому что все страны должны иметь доступ к сети, но я хочу ограничить запросы администратора.

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

Большое спасибо за ваши идеи.

1
Пожалуйста, посмотрите [здесь] (https://www.bjornjohansen.no/access-wordpress-by-ip-in-nginx) Я верю, что это может помочь вам. running.t 7 лет назад 0
спасибо за ссылку, но, как я уже писал, я хотел бы разрешить / отклонить запрос по стране, а не по IP-адресу Marek Marcinko 7 лет назад 0
Ну, на самом деле единственное, что вам нужно изменить, - это заменить `$ allow_ip` на` $ позволено_country` (при условии, что вы уже выполнили всю логику, чтобы определить, является ли запрос из разрешенной страны). running.t 7 лет назад 0

0 ответов на вопрос

Похожие вопросы