Может у меня чет с nft не правильно? Попробовал себя забанить и нифига не работает =(
table inet denyhole {
counter quantity {
packets 0 bytes 0
}
set ban {
type ipv4_addr
policy memory
flags interval
auto-merge
comment "drop all packets from these hosts"
elements = { тут мой ip }
}
chain blackhole {
type filter hook input priority filter; policy accept;
ip saddr @ban log prefix "Dropped connection: " counter name "quantity" drop
}
}
● nftables.service - nftables
Loaded: loaded (/lib/systemd/system/nftables.service; disabled; preset: enabled)
Active: active (exited) since Mon 2025-08-11 17:29:10 MSK; 12min ago
Docs: man:nft(8)
http://wiki.nftables.org
Process: 169617 ExecStart=/usr/sbin/nft -f /etc/nftables.conf (code=exited, status=0/SUCCESS)
Main PID: 169617 (code=exited, status=0/SUCCESS)
CPU: 15ms
Aug 11 17:29:10 4739393-mf78885 systemd[1]: Starting nftables.service - nftables...
Aug 11 17:29:10 4739393-mf78885 systemd[1]: Finished nftables.service - nftables.
SunTechnik, исходящего трафика, на сайте куча народу ранним утром, а на файловом сервере доступ к нему подает, т.е. я не могу к нему по ssh подключится, идет ожидание в то время когда с сетью проблемы, а пользователям статика не отдается. И все это добро рывками работает, сеть в ноль подает на 5 сек, потом поднимается на секунду или 10 и все гуд, затем опять подает и так каждый день.
Трафик есть всегда.
Бана нету, fail2ban пустой, в nft никаких правил нету. Сегодня один раз рашел по ssh, потом опять такая же свистопляска. При чем открыто в power shell, в одном я сижу на сервере, пытаюсь тут же подключиться со второго и таймаут выдает.
ky0, да я все прекрасно понимаю, но в нынешних реалиях копейки выжимаешь к сожалению. Проект только только окупается. Ziptar, по трассеровке все ок, ping идет, а вот доступа что по ssh, что по ftp нету.
Так же прицепил дополнительный IP, он прописался в /etc/network/interfaces, попытка подключится к серверу ничего не принесла.
Хостер пишет что все Ок, и я ему верю, но вот у меня проблемы...
При чем вот прямо сейчас по http картинки грузятся, но как пытаюсь подключится по ssh или ftp, таймаут подключения.
Может у меня с Шindows проблемы, я уже ничего не пойму ))
С других облаков у другого хостера, все отлично конектится к этому облаку, получается проблема сугубо у меня.
Я тут еще вот что надумал, можно ли как то в nginx узнать включен ли в браузере пользователя javascript?
Просто вполне реально что у ддосера js вовсе выключен и тупо сразу его редиректить куда то подальше...
Так же сейчас уменьшил бан-разбан до 30 секунд, вот почему:
За сутки при выборочном переборе айпишников ддосера понял что, он ддосит все время с разных ip, и за сутки они не дублировались ни разу, тогда и смысла нет их хранить долго.
Второе, саме тяжеловесные запросы в базу идут по javascript, собственная коллекция аналитики на миллиона строк за месяц. И если просто тупо банить ip через fail2ban, то доссер только к серверу подрубается, делает пару запросов в базу, ловит бан и до аналитики не доходит. Ну получается просто бан-разбан идел и никакого вреда причинить не может, сервера выыдерживают. Единственно что меня мучает, так это то что постоянная запись-удаление айпишников идет на сервере, ну и nginx логи летатят как не в себя=)
Если бы можно было узнать включен ли javascript с помощью nginx, я бы сделал так что даже банить не пришлось во время нагрузок, и тупо на страницу пустышку редиректил такие запросы.
Refguser, так у меня все это и стоит, я ж об этом и пишу и работает у меня все так же. За исключением того что nginx до кучи и юзеров en/zh бреет во рвемя нагрузки.
А то что вы пишите работать не будет, потому как fail2ban чекает совпадения с одного IP, а у меня ддос, а не дос идет. С обычным дос проблем вообще бы не было, а тут каждый запрос это новый ip, поэтому дефолтная свзяка nginx+limit+fail2ban не работает и в принципе работать не должна.
fail2ban пушит новый ip в elements={}. В общем добавляет, а не создает новое правило.
fail2ban тоже имеет настройку по удалению, сейчас просто стоит время на сутки, спустя 24 часа ip удаляется. Но их просто столько, что жестятк =)
Refguser, я может не правмильно понял, но как я проверю число запросов в секунду с одного IP, если они все разные?
Если вы имеете ввиду общее число запросов со всех IP подряд, так у меня nginx этим как раз и занимается, выставленно ограничение 500 запросов в минуту от тех у кого язык в бразуре en|zh, если пошла лавина трафика, т.е. ддос, тогда все те кто в лимитку не уложился баняться fail2ban и заносятся в nft таблицу.
Refguser, не получится проверять колличество запросов в секунду, потому как весь ддос тогда пройдет. Я режу всех подряд (у кого язык в браузере к примеру en|zh), но только когда nginx забит по лимитам. Zerg89, не, там токен только для общения сайта и апи. Да и смысла не будет, потому как http(s) запросами долбят.
Для статистики в nft уже более 600к айпишников.
Сейчас думаю сделать как:
1. Перенести все айпишники в другую таблицу, тем самым nft немного сократит колличество айпишников, он на автомате интервалы вроде как создает при вставке, что то вроде 47.76.0.0-47.87.255.255
2. Собирать далее с помощью fail2ban новые айпи и после добавлять опять их в другую таблицу.
У меня вообще создана в базе коллекция со всеми подозрительными ips, я эту базу так же прогоняю через cleantalk, ищу спамные и не спамные, делаю поментки. Проблема в том что с моими суточными объемами (бесплатными), я эти 600к айпи год буду проверять)))
d-stream, я тож подсеть банил пару раз, но тут столько данных, это вручную надо будет все проштудировать. Я обычно тут прроверяю ip на спам cleantalk, ну и там же и подсет видна =)
ThunderCat, клоудфлейр мимо, с ним проблемы к сожалению =)
Ну и я бы не хотел прям жестко банить весь траф кроме ru, порядка 10% из за бугра приходит и норм пользователи, но временно забанить их все же можно, на время атаки.
Refguser, у меня бан не совсем по ip проходит, nginx смотрит какой язык в браузере стоит у пользователя и если RU, то он не пишет инфу для fail2ban. Т.е. в практическом смысле банятся только забугорные юзеры и только во время атаки, если атаки нет и банить никого не будет.
Everything_is_bad, я в этом не силен, как мне кажется просто кучей запросов перебирают страницы сайта.
Сервер на котором расположен сайт, выдерживет, а вот сервер с базой данных нет, работает какой то время и клинет к фигам собачим, под базу взял сервер помощьнее и пока полет нормальный. Ну к базе только у приложения есть доступ, сайт+API сервер, а API сервер уже с базой общается.
Идет ддос с разных ip, с разных стран.
У меня ЦА чисто русская, поэтому мне не особо не важны другие страны, ну только разве что поисковые боты, поэтому через nginx выставил лимиты, ну а fail2ban пушит их в nft на 1 день. Но как я понял у него айпишники вообще не заканчиваются...
Уже где то трое сукот практически без передыху ддосит.