Неделю отбиваюсь от DDos атак

Защита сервера от взлома, антивирус, файрвол, SSL-сертификаты и прочие вопросы, связанные с безопасностью данных.
freehosting.by
Сообщения: 8
Зарегистрирован: Сб мар 23, 2019 11:21 am

Неделю отбиваюсь от DDos атак

Сообщение freehosting.by » Пн окт 28, 2019 9:00 pm

Привет! Помогите советом как отбиться от 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 запросов тоже с указанного региона


Вобщем пока сражаюсь с Досерами вручную кто что знает как настроить защиту сервера и оставить только регионы СНГ по айпишникам дайте знать в комментах :cry:

Akrobs
Сообщения: 315
Зарегистрирован: Чт сен 21, 2017 10:48 pm
Откуда: Saint-Petersburg
Контактная информация:

Re: Неделю отбиваюсь от DDos атак

Сообщение Akrobs » Вт окт 29, 2019 8:45 am

freehosting.by писал(а):
Пн окт 28, 2019 9:00 pm
Привет! Помогите советом как отбиться от DDos стандартные средства перестали реагировать на атаки и вот почему!
Вобщем пока сражаюсь с Досерами вручную кто что знает как настроить защиту сервера и оставить только регионы СНГ по айпишникам дайте знать в комментах :cry:
Для этих целей лучше всего подходит ipset, добавляете подсети нужных стран, правило в IPtables и все подсети из списка DROP или REJECT, что вам больше нравится. Можно создать список и с IP адресами...
Сразу можете вносить в блок: Китай, Корею, Турцию, Пакистан...От них постоянно атаки идут на 21, 25, 80, 22, 443 порты, если они открыты.
Статей на эту тему много.

В догонку статья, почему Fail2Ban не панацея от атак https://habr.com/ru/post/238303/
В ПУ версия Fail2Ban очень старая поэтому пропускает "умные" типы атак, в статье написано об этом.

Savage
Сообщения: 20
Зарегистрирован: Пт июн 28, 2019 8:17 am

Re: Неделю отбиваюсь от DDos атак

Сообщение Savage » Вт окт 29, 2019 1:23 pm

Аналогичная ситуация. Штатный fail2ban блочит только ssh , и очень малую часть от атакующих.

vikont
Сообщения: 247
Зарегистрирован: Сб ноя 11, 2017 10:51 pm

Re: Неделю отбиваюсь от DDos атак

Сообщение 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

ПС. Уже предлагал встроить такую защиту в ПУ, но пока это не реализовано.
Последний раз редактировалось vikont Чт окт 31, 2019 12:29 pm, всего редактировалось 1 раз.

vikont
Сообщения: 247
Зарегистрирован: Сб ноя 11, 2017 10:51 pm

Re: Неделю отбиваюсь от DDos атак

Сообщение vikont » Чт окт 31, 2019 12:23 pm

Так же могу порекомендовать установку Скрипта защиты от ботов, спам ботов и авто ботов - ограничителя коннектов в единицу времени с временной блокировкой.
http://usefulscript.ru/bad_bot.php

Для себя удобным нашел такой показатель в файле index.php скрипта защиты

Код: Выделить всё

     * Количество запросов страницы в интервал времени.
     */
    const intervalTimes = 8;

freehosting.by
Сообщения: 8
Зарегистрирован: Сб мар 23, 2019 11:21 am

Re: Неделю отбиваюсь от DDos атак

Сообщение freehosting.by » Вс ноя 03, 2019 7:59 pm

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

ПС. Уже предлагал встроить такую защиту в ПУ, но пока это не реализовано.
Отличная статья как в автозагрузку кидал через панель или напрямую в загрузчик и у меня на Центосе всё стоит как с ним?

vikont
Сообщения: 247
Зарегистрирован: Сб ноя 11, 2017 10:51 pm

Re: Неделю отбиваюсь от DDos атак

Сообщение vikont » Пн ноя 04, 2019 4:34 pm

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
Хотя при ручном выполнении команды все срабатывает.
Почему КРОН не выполняет ни одной команды после системной, мне так и не ответили.

Savage
Сообщения: 20
Зарегистрирован: Пт июн 28, 2019 8:17 am

Re: Неделю отбиваюсь от DDos атак

Сообщение 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

vikont
Сообщения: 247
Зарегистрирован: Сб ноя 11, 2017 10:51 pm

Re: Неделю отбиваюсь от DDos атак

Сообщение vikont » Вт ноя 05, 2019 12:39 pm

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 после перезапуска сервера? У меня почему то сам не поднимается, толкаю вручную.

Как общее впечатление от полученного результата? Может быть стоит более настоятельно попросить разработчиков внедрить эту защиту?

Savage
Сообщения: 20
Зарегистрирован: Пт июн 28, 2019 8:17 am

Re: Неделю отбиваюсь от DDos атак

Сообщение Savage » Вт ноя 05, 2019 8:34 pm

У меня iptables поднимается сам.
Результатом доволен, прорываются, конечно, но не так уж сильно.

Ответить