Назад | Перейти на главную страницу

Как я могу заблокировать доступ к моему сайту из определенных стран с помощью стека LAMP?

У меня есть веб-сайт, который я не хочу, чтобы его просматривали целые страны. Веб-сайт работает на сервере LAMP. Как я могу этого добиться?

Используйте модуль mod_geoip. http://www.maxmind.com/app/mod_geoip

Например:

GeoIPEnable On
GeoIPDBFile /path/to/GeoIP.dat

SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry

# ... place more countries here
Deny from env=BlockCountry

Вы можете использовать условие REMOTE_ADDR rewrite_mod, чтобы перенаправить заблокированных пользователей на одну страницу, описывающую тот факт, что им не разрешен вход, или просто выдать им ошибку 403.

RewriteCond %{REMOTE_ADDR} ^123\.123\.123\.[0-9]{3}$ 
RewriteRule .* ...

Чтобы получить диапазон IP-адресов для страны, получите Maxmind база данных например.

Вы можете отфильтровать IP-адреса интернет-провайдера страны. Существует множество баз геолокации, которые помогут вам определить страну пользователя по ip.

Проверьте IP-адрес и определите, в какой стране он находится, а затем заблокируйте его. Конечно неточно, но это что-то. Хотя в целом я не фанат этого; но, возможно, это требуется по какой-то юридической причине.

Я наткнулся на этот сайт, заявляющий о запрете страны,

ИМО, лучший способ заблокировать с помощью файла .htaccess

Вы можете использовать такие сервисы:

http://www.maxmind.com/app/geolitecountry

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