NikFaraday
@NikFaraday
Student full-stack Developer

Как заблокировать доступ к ресурсу для конкретного региона?

Здравствуйте!

У меня на хостинге (linux) развёрнут сайт. Недавно проверял состояние сервера и заметил в логах много неудачных попыток входа на сервер (В основном через ssh), похоже на brute force. В основном всё делается с Индии и подобных IP. Как я могу полностью заблокировать доступ к серверу и самому сайту для конкретного региона?
  • Вопрос задан
  • 595 просмотров
Решения вопроса 2
Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting
GeoIP ngx_http_geoip_module

1. Nginx должен включать модуль ngx_http_geoip_module.
2. Качаем БД GeoLite2 Country.
3. Пример конфига (nginx.conf), с отправкой всех из Индии в 403 лес:
http {
    geoip_country /path/to/GeoLite2-Country.mmdb;
    map $geoip_country_code $allowed_country {
        default yes;
        IN no; # banned india
    }
}

server {
    if ($allowed_country = no) {
        return 403;
    }
}
Ответ написан
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Рабочий вариант, не полагающийся на разной степени редко обновляемые географические базы IP-адресов - закрыть SSH совсем и ходить только из локальной сети, например через впн.

С веб-сервером сложнее - тут без подключения посторонних сервисов выбор невелик - модуль geoip или ручное перечисление диапазонов релевантных стран.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Everything_is_bad
Недавно проверял состояние сервера и заметил в логах много неудачных попыток входа на сервер (В основном через ssh)
ну как первый раз в интернет вышел, уже сто лет такое, ssh вообще постоянно долбят, ставишь fail2ban, а еще лучше меняешь дефолтный порт и ставишь логин только по ключу. А регион блокировать, так себе идея.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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