Desti
Актив
-
В сети
-
Количество сообщений
2 149 -
Reputation
1,2k Desti's Reputation
Everything posted by Desti
-
Чат для общения.
А у кого подключен GeoIP от IPS? Делаю свой GeoIP-сервис, нужно несколько любых записей из таблицы core_geoip_cache, чтобы понять, что отвечает ips-овский сервер. А без активной лицензии он посылает
-
Проблемы с сайтом?
Жирновато будет ему столько выделять Значение для оценки можно получить запросом SELECT CONCAT( CEILING (RIBPS/POWER(1024,pw)), SUBSTR(' KMGT',pw+1,1)) Recommended_InnoDB_Buffer_Pool_Size FROM (SELECT RIBPS,FLOOR(LOG(RIBPS)/LOG(1024)) pw FROM (SELECT SUM(data_length+index_length)*1.1*growth RIBPS FROM information_schema.tables AAA, (SELECT 1 growth) BBB WHERE ENGINE='InnoDB') AA) A; Полученное значение можно увеличить процентов на 20-50-100, зависит от скорости роста базы. Если это форум, то 50% более чем достаточно, т.е. просто умножаем на 2. В свое время этот запрос выдал мне 10G, поэтому я поставил 24G в этой настройке, никаких проблем. В итоге не 80% бессмысленно заняты, а 40%. Если свежие MqSQL ругаются на "In aggregated query without GROUP BY... sql_mode=only_full_group_by", надо в третьей строке заменить growth на any_value(growth)
-
Переключаем Redis-server в режим работы через socket
Ой, да не нужно никаких уязвимостей, просто долбить в главную страницу, 200к ответа на каждый запрос, пусть даже из кеша, всё равно сервер начнет тупить.
-
Проблемы с сайтом?
Их не было, видимо освободился или новый блейд завезли.
-
Проблемы с сайтом?
Кому выделенный сервер за 2900 в месяц? www.hostland.ru/services/dedicated-server
-
Переключаем Redis-server в режим работы через socket
Уже есть конвертеры правил ipset в сеты nft, так что это не очень большая проблема. Да и iptables под Debian 11 работает так же хорошо, как и раньше, так что паника преждевременна
-
Переключаем Redis-server в режим работы через socket
Полезный ресурс для настройки GeoIP блокировок - www.ipdeny.com/ipblocks/data/countries/[код страны].zone Код страны двухбуквенный, cn, kr, in и прочее, есть в инете как "двуxбуквенные коды стран ISO" Полученный список можно обработать скриптом и запихать в именованный сет ipset и потом просто добавлять или удалять правило iptables Все зоны можно получить по ссылке - www.ipdeny.com/ipblocks/data/countries/all-zones.tar.gz
-
Проблемы с сайтом?
Поэтому только суверенный чебурнет!
-
Проблемы с сайтом?
Закроют атакующие сети на вход, а не на выход. Они к нам не смогут зайти, а не мы к ним. Валят всё подряд, вообще без каких-либо привязок к конкретике. Наберите "ддос атаки 2022" в поисковике, информации много на эту тему. Большой дядя, а в сказки веришь.. Возможно..
-
Переключаем Redis-server в режим работы через socket
aplayer я делаю то же самое, но не на уровне nginx, а на уровне ядра - через iptables/ipset, блокирую целые сети, с которых идут атаки. Для полноценного GeoIP надо держать огромные таблицы, это тоже не проблема для ipset, но администрирование начнет напрягать. Где найти списки - вопрос вторичный, сейчас много источников, полнота их не очень важна, основной трафик идет с крупных провайдеров. За ссылки спасибо, посмотрю. В общем не очень важно, где давить атаку, проблема в том, что канал эти запросы все равно забивают, а это может не понравится провайдеру и начнутся проблемы.
-
Проблемы с сайтом?
Нет у меня конкурентов. Пара жалких подобий, одно обиженки с моего форума создали, второй - у хохлов, но там по 5 сообщений в день уже праздник. Это атаки не на конкретные сайты, а на Россию, как бы не пафосно это звучало.
-
Проблемы с сайтом?
Да какая проблема от udp закрыться? Ну засрут канал, да, но сервер хоть не повиснет. Но вообще мне это всё не нравится...
-
Проблемы с сайтом?
Вот кусочек атаки: поддельные UA, запросов по 20 в секунду. IP корейский, родительский префикс 118.40.0.0/13, поэтому 2 миллиона адресов из солнечной кореи идут в бан.. Чует мое сердце, чебурнета нам не избежать. Если атаки будут продолжаться, провайдеры начнут на магистральных машинках закрывать целые страны. 118.42.7.135 - [09/Jun/2022:17:39:19 +0300] "GET / HTTP/1.1" 301 0 "" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.0.0 Safari/537.36" [0.000] 118.42.7.135 - [09/Jun/2022:17:39:19 +0300] "GET / HTTP/1.1" 301 0 "" "Mozilla/5.0 (Android 11; Mobile; rv:99.0) Gecko/99.0 Firefox/99.0" [0.100] 118.42.7.135 - [09/Jun/2022:17:39:19 +0300] "GET / HTTP/1.1" 301 0 "" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:99.0) Gecko/20100101 Firefox/99.0" [0.100] 118.42.7.135 - [09/Jun/2022:17:39:19 +0300] "GET / HTTP/1.1" 301 0 "" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Mobile/15E148 Safari/604.1" [0.000] 118.42.7.135 - [09/Jun/2022:17:39:19 +0300] "GET / HTTP/1.1" 301 0 "" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:99.0) Gecko/20100101 Firefox/99.0" [0.100] 118.42.7.135 - [09/Jun/2022:17:39:19 +0300] "GET / HTTP/1.1" 301 0 "" "Opera/9.80 (Android; Opera Mini/7.5.54678/28.2555; U; ru) Presto/2.10.289 Version/12.02" [0.100] 118.42.7.135 - [09/Jun/2022:17:39:19 +0300] "GET / HTTP/1.1" 301 0 "" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Mobile/15E148 Safari/604.1" [0.000] 118.42.7.135 - [09/Jun/2022:17:39:19 +0300] "GET / HTTP/1.1" 301 0 "" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Mobile/15E148 Safari/604.1" [0.100] 118.42.7.135 - [09/Jun/2022:17:39:19 +0300] "GET / HTTP/1.1" 301 0 "" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 10.0; Trident/6.0; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" [0.100] 118.42.7.135 - [09/Jun/2022:17:39:19 +0300] "GET / HTTP/1.1" 301 0 "" "Mozilla/5.0 (Linux; Android 10; JSN-L21) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.58 Mobile Safari/537.36" [0.000] 118.42.7.135 - [09/Jun/2022:17:39:20 +0300] "GET / HTTP/1.1" 301 0 "" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36" [0.100] 118.42.7.135 - [09/Jun/2022:17:39:20 +0300] "GET / HTTP/1.1" 301 0 "" "Mozilla/5.0 (Android 11; Mobile; rv:99.0) Gecko/99.0 Firefox/99.0" [0.000] 118.42.7.135 - [09/Jun/2022:17:39:20 +0300] "GET / HTTP/1.1" 301 0 "" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:99.0) Gecko/20100101 Firefox/99.0" [0.100]
- Чат для общения.
-
Переключаем Redis-server в режим работы через socket
Меня атакуют тупо на "GET / HTTP/1.1", но с нескольких сотен адресов. При этом (по непонятным причинам) засыпает redis и перестает отдавать шаблоны, форум останавливается. Никаких кривых запросов нет ни в логах nginx, ни в ошибках форума (ну кроме redis not responding). Так что ничего необычного, атака на исчерпание ресурсов.
-
Интеграция с Вконтакте
Для работы в dev-mode нужен пакет исходных файлов приложения. Для движка он поставляется IPS-ом, найти не проблема. Для 4.3.6 есть тут, на мафии, https://ipbmafia.ru/files/file/2322-developer-tools-436/ В приложениях из магазина обычно dev папки нет, но ее можно сгенерить, используя еще один пакет (codingjungle.com/files/file/47-the-dev-toolbox/). Короче, магия..
-
Чат для общения.
Я на крон не переходил, т.к. одна из задач использует вызов \IPS\forums\Topic::getItemsWithPermission(), а он member-зависимый, из под task без танцев с бубном не работает. Ну а мне лень было разбираться, что там надо добавить. Приперло-сделал.
-
Чат для общения.
Если работает, не трогай Мне не мешало, плюс у крона минутный тайминг, для запуска чаще надо извращаться со sleep.
-
Интеграция с Вконтакте
Да также, как и в любой другой версии, но нужен dev-пакет.
-
Чат для общения.
Обнаружил одну очень странную фичу.. При атаках или просто большом трафике система запуска "задач по трафику" начинает глючить. У меня висела задача обновления списка последних сообщений, я решил отследить ее исполнение, добавил в редис уникальный ключик и при каждом запуске задачи писал туда time(). Запустив redis monitor обнаружил, что задачка запускается не раз в 45 секунд, а гораздо чаще! Иногда она вообще лупила не переставая раз в пару секунд! Причин так и не обнаружил, обычная задача, созданная через devcenter. Короче, переделал немного свои самописные задачи и запустил, наконец, всё через cron. Теперь всё как по часам, сказано раз в минуту, запускает раз в минуту.
-
Переключаем Redis-server в режим работы через socket
Работает уже сутки, из плюсов - в соединениях больше не висят отмирающие коннекты к 127.0.0.1, при атаках перестал отваливаться redis-server. Из минусов - для запуска redis-cli надо указывать путь к сокету.. (ну так себе минус ) root@comp:~# redis-cli -s /var/run/redis/redis.sock
-
Переключаем Redis-server в режим работы через socket
Сокеты - это стильно, модно, молодежно, быстрее, чем tcp, не грузит сетевую подсистему и не нуждается в защите от доступа извне. Но есть проблема, IPS про сокеты не знает или, по каким-то причинам, не хочет их использовать, в настройках есть только TCP режим (IP и порт). Попробуем научить IPS работать с redis-сервером через сокеты. Первое - надо настроить redis-сервер, тут всё просто, редактируем /etc/redis/redis.conf и пишем следующее: # ставим 0 вместо стандартного 6379, после этого redis перестает слушать сетевой интерфейс. port 0 # раскомментариваем строки и редактируем (папка /var/run/redis/ уже существует, там живет pid файл, поэтому просто добавим туда файл сокета) unixsocket /var/run/redis/redis.sock #права на файл - должен быть доступен для чтения www-data или под чем вы там запускаете php.. Можно добавить этого пользователя в группу redis и поставить права 750, а я не заморачивался и поставил 777, всё равно на сервере только я. unixsocketperm 777 Сохраняем конфиг файл. Если сейчас перезапустить redis-server, то ничего не получится, IPS не может подключится к redis и ругается на странице настроек "Хранение данных". Учим IPS... Интерфейс к redis живет в system/Redis/Redis.php, там нам надо найти строчку if( @static::$connections[ $identifier ]->connect( $useConfig['server'], $useConfig['port'], 2 ) === FALSE ) и заменить ее на if( @static::$connections[ $identifier ]->connect( '/var/run/redis/redis.sock' ) === FALSE ) Сохраняем и рестартуем redis-server, всё должно заработать как раньше. На странице настроек redis в админке останется IP и порт, удалять их не надо, редактировать тоже. Сообщение о неработающем кеше появляться не должно. Сильные духом могут написать плагин, а я пойду дальше сражаться с ddos Будут вопросы - пишите.
-
Проблемы с сайтом?
Respected мы все ждем душераздирающую историю!!
-
Возраст обывателей форума
У мну дохода хватает на новые носочки... (но старые не выбрасываю и у тещи кожаный плащ подрезал).
-
Проблемы с сайтом?
А ответ быстро залетает..