У меня есть сайт, который работает только с клиентами в определенных местах.
В последнее время мой балансировщик нагрузки забивается запросами из Филиппин / России / Китая. Почтовые боты, атаки методом перебора и т. Д.
Есть ли простой способ заблокировать доступ этих трех стран к моему сайту? (Блок кода страны?) Я много вижу об использовании таблиц IP, однако я использую Firewalld на моем балансировщике нагрузки CentOS7. Крис
Я бы не стал так сильно беспокоиться о том, какие страны, но взглянул бы на фактические IP-адреса и IP-блоки, которые вызывают нежелательное поведение.
Попытка заблокировать страны проблематична и ошибочна- склонный. Вы бы пытались отследить конкретных интернет-провайдеров в каждой стране и их блоки IP-адресов.
Я бы использовал журналы и другие источники, чтобы составить списки неправильно функционирующих IP-адресов, объединить их в подсети и затем заблокировать эти подсети. Периодически посещайте его.
Определенно, эта работа лучше подходит для брандмауэров и балансировщиков нагрузки, но iptables или firewalld могут это сделать, но ваш хост должен будет видеть и обрабатывать трафик, а не блокировать его дальше вверх по течению.
Подумайте больше. например fail2ban ( http://www.fail2ban.org/wiki/index.php/Main_Page ) и менее похожий на «блокировать Китай»
Раньше я использовал для этого брандмауэр. Попытка сделать это на CentOS или выделенном веб-сервере сложно, поскольку это, как правило, больше проблема сети.
Я бы изучил решения межсетевого экрана и таким образом блокировал диапазоны IP-адресов. Я знаю, что это на самом деле не дает прямого ответа на ваш вопрос, просто передаю то, что я делал в прошлом.
Вы будете наказывать целые страны за небольшую кучку плохих парней. И что еще хуже, вам будет не хватать плохих парней из других стран.
Как говорит теп, Fail2Ban идеально подходит для этого. Также убедитесь, что у вас есть WAF, например mod_security или naxsi. Затем добавьте в смесь репозиторий для хорошей оценки, и у вас будет не только защита на основе сигнатур атак, но и мониторинг на основе поведения / репутации.
Если вы действительно хотите заблокировать страны, но боретесь с маршрутом брандмауэра, посмотрите, может ли ваш веб-сервер это сделать, как Nginx.
Перенаправление нежелательных стран в менее дорогое приложение: https://www.digitalocean.com/community/tutorials/how-to-use-nginx-as-a-global-traffic-director-on-debian-or-ubuntu
Блокировка нежелательных стран: http://nginxlibrary.com/ip-based-country-blocking/
Желательно не блокировать законных пользователей из этих стран! Это может быть американский / европейский / любой целевой рынок, на котором вы находитесь в деловой поездке или на отдыхе.
У меня была эта проблема, и, как заявил tep, управление IP-блоками может быть сложной задачей. Однако я нашел место, которое собирает и управляет списками IP-блоков для каждой страны с использованием BGP (основной протокол интернет-маршрутизации), и я нашел их очень точными.
Затем, чтобы облегчить себе жизнь, я написал сценарий, который извлекает определенный пользователем список стран с указанного выше сайта, агрегирует и форматирует IP-адреса и вставляет их в ваш любимый пакет межсетевого экрана. В настоящее время он поддерживает pf, ipfw, iptables, ipset и теперь заменяет iptables nftables. Вы можете скачать его с github здесь:
https://github.com/KaiLoi/update-fw-BC
Я просто запустил его из cron и, выбрав 10 лучших стран для взлома в своих списках, взломал мои серверы практически испарились. fail2ban на моем сервере вылетает из своего дерева. ;)