Страница 1 из 2
Неделю отбиваюсь от DDos атак
Добавлено: Пн окт 28, 2019 9:00 pm
freehosting.by
Привет! Помогите советом как отбиться от DDos стандартные средства перестали реагировать на атаки и вот почему!
1. После того как fail2ban начал вносить в списки айпишники стала атака изощренней теперь атакуют сразу с подсети x.х.x.n/24 причем сразу в пул идет по 150-250 ip адресов в основном Пакистан, Турция, Индия и со всех красиво по 1-2 запроса потом пауза и опять но они заваливают массой сразу 2-5 подсетей по 256 адресов! Приходиться сражаться вручную командой
iptables -I INPUT -s 194.29.209.1/24 -j DROP но проблема в том что всё это вручную
АДМИНЫ И РАЗРАБОТЧИКИ помогите автоматизировать этот процесс так что бы если с одной подсети по установленному лимиту там допустим с 10 адресов одновременно идут запросы и с региона(Китай Индия и т.п.) не для сайта то сразу в бан!
2.
Заблокировать все IP, количество соединений у которых более: почему то не работает если закрыть страничку и реагирует медленно как бы так сделать что бы хотя бы раз в минтуту отслеживало по крону и в бан если больше 50-100 запросов тоже с указанного региона
Вобщем пока сражаюсь с Досерами вручную кто что знает как настроить защиту сервера и оставить только регионы СНГ по айпишникам дайте знать в комментах
Re: Неделю отбиваюсь от DDos атак
Добавлено: Вт окт 29, 2019 8:45 am
Akrobs
freehosting.by писал(а): ↑Пн окт 28, 2019 9:00 pm
Привет! Помогите советом как отбиться от DDos стандартные средства перестали реагировать на атаки и вот почему!
Вобщем пока сражаюсь с Досерами вручную кто что знает как настроить защиту сервера и оставить только регионы СНГ по айпишникам дайте знать в комментах
Для этих целей лучше всего подходит ipset, добавляете подсети нужных стран, правило в IPtables и все подсети из списка DROP или REJECT, что вам больше нравится. Можно создать список и с IP адресами...
Сразу можете вносить в блок: Китай, Корею, Турцию, Пакистан...От них постоянно атаки идут на 21, 25, 80, 22, 443 порты, если они открыты.
Статей на эту тему много.
В догонку статья, почему Fail2Ban не панацея от атак
https://habr.com/ru/post/238303/
В ПУ версия Fail2Ban очень старая поэтому пропускает "умные" типы атак, в статье написано об этом.
Re: Неделю отбиваюсь от DDos атак
Добавлено: Вт окт 29, 2019 1:23 pm
Savage
Аналогичная ситуация. Штатный fail2ban блочит только ssh , и очень малую часть от атакующих.
Re: Неделю отбиваюсь от DDos атак
Добавлено: Чт окт 31, 2019 12:11 pm
vikont
Давно решил эту проблему с помощью ipset, воспользовавшись статьей
https://itsecforu.ru/2018/01/19/скрипт- ... -iptables/
Так же можно скачать скрипт с
https://github.com/trick77/ipset-blacklist. Там же есть ссылка на постоянно обновляющиеся черные списки с различных сервисов
https://github.com/firehol/blocklist-ipsets
Мой ipset-blacklist.conf
Код: Выделить всё
IPSET_BLACKLIST_NAME=blacklist # change it if it collides with a pre-existing ipset list
IPSET_TMP_BLACKLIST_NAME=${IPSET_BLACKLIST_NAME}-tmp
# ensure the directory for IP_BLACKLIST/IP_BLACKLIST_RESTORE exists (it won't be created automatically)
IP_BLACKLIST_RESTORE=/etc/ipset-blacklist/ip-blacklist.restore
IP_BLACKLIST=/etc/ipset-blacklist/ip-blacklist.list
VERBOSE=yes # probably set to "no" for cron jobs, default to yes
FORCE=yes # will create the ipset-iptable binding if it does not already exist
let IPTABLES_IPSET_RULE_NUMBER=1 # if FORCE is yes, the number at which place insert the ipset-match rule (default to 1)
# Sample (!) list of URLs for IP blacklists. Currently, only IPv4 is supported in this script, everything else will be filtered.
BLACKLISTS=(
"file:///etc/ipset-blacklist/ip-blacklist-custom.list" # optional, for your personal nemeses (no typo, plural)
#"file:///etc/ipset-blacklist/ip-blacklist-bots.list"
# "file:///etc/ipset-blacklist/redireckt_atack.txt"
"https://www.projecthoneypot.org/list_of_ips.php?t=d&rss=1" # Project Honey Pot Directory of Dictionary Attacker IPs
"https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=1.1.1.1" # TOR Exit Nodes
"https://www.maxmind.com/en/high-risk-ip-sample-list" # MaxMind GeoIP Anonymous Proxies
"http://danger.rulez.sk/projects/bruteforceblocker/blist.php" # BruteForceBlocker IP List
"https://www.spamhaus.org/drop/drop.lasso" # Spamhaus Don't Route Or Peer List (DROP)
"http://cinsscore.com/list/ci-badguys.txt" # C.I. Army Malicious IP List
"https://lists.blocklist.de/lists/all.txt" # blocklist.de attackers
"http://blocklist.greensnow.co/greensnow.txt" # GreenSnow
"http://osint.bambenekconsulting.com/feeds/banjori-iplist.txt"
"https://www.badips.com/get/list/any/0?age=1d"
"https://www.badips.com/get/list/any/1?age=7d"
"https://www.badips.com/get/list/any/2?age=1d"
"https://www.badips.com/get/list/any/2?age=30d"
"https://www.badips.com/get/list/any/2?age=7d"
"http://lists.blocklist.de/lists/all.txt"
"https://blocklist.net.ua/blocklist.csv"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_1d.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_30d.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_7d.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_new.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_new_1d.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_new_30d.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_new_7d.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_top20.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_updated.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_updated_1d.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_updated_30d.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_updated_7d.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level1.netset" # Firehol Level 1
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/stopforumspam_7d.ipset" # Stopforumspam via Firehol
"https://myip.ms/files/blacklist/csf/latest_blacklist.txt"
"https://myip.ms/files/blacklist/csf/latest_blacklist_users_submitted.txt"
# "http://ipverse.net/ipblocks/data/countries/xx.zone" # Ban an entire country, see http://ipverse.net/ipblocks/data/countries/
)
MAXELEM=16777216
Мой ip-blacklist-bots.list - заношу IP зловредных ботов
Код: Выделить всё
94.100.176.0/20
94.100.181.128/25
195.239.211.0/24
Мой ip-blacklist-custom.list - здесь IP отсутствующие в черных списках, вношу вручную. Можно не использовать если найдутся нужные черные списки.
https://yadi.sk/d/ZvFbmxd4uiCCdA
Мой redireckt_atack.txt - здесь IP с которых идет спамм-атака редиректами. Пополняется вручную из логов.
https://yadi.sk/d/5I-OpD7WF5i1yg
ПС. Уже предлагал встроить такую защиту в ПУ, но пока это не реализовано.
Re: Неделю отбиваюсь от DDos атак
Добавлено: Чт окт 31, 2019 12:23 pm
vikont
Так же могу порекомендовать установку
Скрипта защиты от ботов, спам ботов и авто ботов - ограничителя коннектов в единицу времени с временной блокировкой.
http://usefulscript.ru/bad_bot.php
Для себя удобным нашел такой показатель в файле index.php скрипта защиты
Код: Выделить всё
* Количество запросов страницы в интервал времени.
*/
const intervalTimes = 8;
Re: Неделю отбиваюсь от DDos атак
Добавлено: Вс ноя 03, 2019 7:59 pm
freehosting.by
vikont писал(а): ↑Чт окт 31, 2019 12:11 pm
Давно решил эту проблему с помощью ipset, воспользовавшись статьей
https://itsecforu.ru/2018/01/19/скрипт- ... -iptables/
Так же можно скачать скрипт с
https://github.com/trick77/ipset-blacklist. Там же есть ссылка на постоянно обновляющиеся черные списки с различных сервисов
https://github.com/firehol/blocklist-ipsets
Мой ipset-blacklist.conf
Код: Выделить всё
IPSET_BLACKLIST_NAME=blacklist # change it if it collides with a pre-existing ipset list
IPSET_TMP_BLACKLIST_NAME=${IPSET_BLACKLIST_NAME}-tmp
# ensure the directory for IP_BLACKLIST/IP_BLACKLIST_RESTORE exists (it won't be created automatically)
IP_BLACKLIST_RESTORE=/etc/ipset-blacklist/ip-blacklist.restore
IP_BLACKLIST=/etc/ipset-blacklist/ip-blacklist.list
VERBOSE=yes # probably set to "no" for cron jobs, default to yes
FORCE=yes # will create the ipset-iptable binding if it does not already exist
let IPTABLES_IPSET_RULE_NUMBER=1 # if FORCE is yes, the number at which place insert the ipset-match rule (default to 1)
# Sample (!) list of URLs for IP blacklists. Currently, only IPv4 is supported in this script, everything else will be filtered.
BLACKLISTS=(
"file:///etc/ipset-blacklist/ip-blacklist-custom.list" # optional, for your personal nemeses (no typo, plural)
#"file:///etc/ipset-blacklist/ip-blacklist-bots.list"
# "file:///etc/ipset-blacklist/redireckt_atack.txt"
"https://www.projecthoneypot.org/list_of_ips.php?t=d&rss=1" # Project Honey Pot Directory of Dictionary Attacker IPs
"https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=1.1.1.1" # TOR Exit Nodes
"https://www.maxmind.com/en/high-risk-ip-sample-list" # MaxMind GeoIP Anonymous Proxies
"http://danger.rulez.sk/projects/bruteforceblocker/blist.php" # BruteForceBlocker IP List
"https://www.spamhaus.org/drop/drop.lasso" # Spamhaus Don't Route Or Peer List (DROP)
"http://cinsscore.com/list/ci-badguys.txt" # C.I. Army Malicious IP List
"https://lists.blocklist.de/lists/all.txt" # blocklist.de attackers
"http://blocklist.greensnow.co/greensnow.txt" # GreenSnow
"http://osint.bambenekconsulting.com/feeds/banjori-iplist.txt"
"https://www.badips.com/get/list/any/0?age=1d"
"https://www.badips.com/get/list/any/1?age=7d"
"https://www.badips.com/get/list/any/2?age=1d"
"https://www.badips.com/get/list/any/2?age=30d"
"https://www.badips.com/get/list/any/2?age=7d"
"http://lists.blocklist.de/lists/all.txt"
"https://blocklist.net.ua/blocklist.csv"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_1d.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_30d.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_7d.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_new.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_new_1d.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_new_30d.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_new_7d.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_top20.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_updated.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_updated_1d.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_updated_30d.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/cleantalk_updated_7d.ipset"
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level1.netset" # Firehol Level 1
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/stopforumspam_7d.ipset" # Stopforumspam via Firehol
"https://myip.ms/files/blacklist/csf/latest_blacklist.txt"
"https://myip.ms/files/blacklist/csf/latest_blacklist_users_submitted.txt"
# "http://ipverse.net/ipblocks/data/countries/xx.zone" # Ban an entire country, see http://ipverse.net/ipblocks/data/countries/
)
MAXELEM=16777216
Мой ip-blacklist-bots.list - заношу IP зловредных ботов
Код: Выделить всё
94.100.176.0/20
94.100.181.128/25
195.239.211.0/24
Мой ip-blacklist-custom.list - здесь IP отсутствующие в черных списках, вношу вручную. Можно не использовать если найдутся нужные черные списки.
https://yadi.sk/d/ZvFbmxd4uiCCdA
Мой redireckt_atack.txt - здесь IP с которых идет спамм-атака редиректами. Пополняется вручную из логов.
https://yadi.sk/d/5I-OpD7WF5i1yg
ПС. Уже предлагал встроить такую защиту в ПУ, но пока это не реализовано.
Отличная статья как в автозагрузку кидал через панель или напрямую в загрузчик и у меня на Центосе всё стоит как с ним?
Re: Неделю отбиваюсь от DDos атак
Добавлено: Пн ноя 04, 2019 4:34 pm
vikont
freehosting.by писал(а): ↑Вс ноя 03, 2019 7:59 pm
Отличная статья как в автозагрузку кидал через панель или напрямую в загрузчик и у меня на Центосе всё стоит как с ним?
Вот с этим моментом так и не разобрался.
При перезагрузке приходится вручную выполнять команды
Код: Выделить всё
/usr/local/sbin/update-blacklist.sh /etc/ipset-blacklist/ipset-blacklist.conf
и
Код: Выделить всё
ipset restore < /etc/ipset-blacklist/ip-blacklist.restore
После этого перезапускаю iptables
Так же, по Крон не выполняется команда
Код: Выделить всё
/usr/local/sbin/update-blacklist.sh /etc/ipset-blacklist/ipset-blacklist.conf
Хотя при ручном выполнении команды все срабатывает.
Почему КРОН не выполняет ни одной команды после системной, мне так и не ответили.
Re: Неделю отбиваюсь от DDos атак
Добавлено: Вт ноя 05, 2019 9:15 am
Savage
я добавил в /var/spool/cron/root
Код: Выделить всё
10 * * * * bash -l /usr/local/sbin/update-blacklist.sh /etc/ipset-blacklist/ipset-blacklist.conf && bash -l ipset restore < /etc/ipset-blacklist/ip-blacklist.restore
обновляет раз в час в хх:10
Re: Неделю отбиваюсь от DDos атак
Добавлено: Вт ноя 05, 2019 12:39 pm
vikont
Savage писал(а): ↑Вт ноя 05, 2019 9:15 am
я добавил в /var/spool/cron/root
Код: Выделить всё
10 * * * * bash -l /usr/local/sbin/update-blacklist.sh /etc/ipset-blacklist/ipset-blacklist.conf && bash -l ipset restore < /etc/ipset-blacklist/ip-blacklist.restore
обновляет раз в час в хх:10
Спасибо, про команду bash -l я даже не подумал, системная команда в root ее не использует
На каждый час использую такую настройку * */1 * * *
Как вы решили вопрос с автозапуском iptables после перезапуска сервера? У меня почему то сам не поднимается, толкаю вручную.
Как общее впечатление от полученного результата? Может быть стоит более настоятельно попросить разработчиков внедрить эту защиту?
Re: Неделю отбиваюсь от DDos атак
Добавлено: Вт ноя 05, 2019 8:34 pm
Savage
У меня iptables поднимается сам.
Результатом доволен, прорываются, конечно, но не так уж сильно.