Местоположение
Россия, Санкт-Петербург и область, Санкт-Петербург

Достижения

Все достижения (13)

Наибольший вклад в теги

Все теги (218)

Лучшие ответы пользователя

Все ответы (191)
  • DDoS атака заставляет php-fpm грузить сервак на 100%, как пофиксить?

    dyuriev
    @dyuriev
    A posteriori
    Любая DDoS атака, которая пробивает уже настроенные защитные механизмы фиксится одним и тем же методом

    1) Смотрим какие запросы и откуда сыпятся
    2) Находим паттерн запросов
    3) Придумываем, как фильтровать паразитный трафик по паттерну

    PS: и да, заодно переписываем код, чтобы форма регистрации не грузила сайт

    UPD: Больно смотреть на эти комментарии. До автора до самого не дойдет, а другим комментаторам отвечать лень (и правильно делают, ибо автор в ответ какашками кидается), то подсказываю первый шаг в случае с CF

    итак, главное, чтобы nginx был собран с этим волшебным модулем - ngx_http_realip_module (скорее всего уже итак собран)
    если этот модуль в текущем положении дел не доступен, то с нижеописанным конфигом nginx не стартанет.
    в секцию http конфига nginx добавьте вот эти магические строки

    http {
      set_real_ip_from 103.21.244.0/22;
      set_real_ip_from 103.22.200.0/22;
      set_real_ip_from 103.31.4.0/22;
      set_real_ip_from 104.16.0.0/12;
      set_real_ip_from 108.162.192.0/18;
      set_real_ip_from 131.0.72.0/22;
      set_real_ip_from 141.101.64.0/18;
      set_real_ip_from 162.158.0.0/15;
      set_real_ip_from 172.64.0.0/13;
      set_real_ip_from 173.245.48.0/20;
      set_real_ip_from 188.114.96.0/20;
      set_real_ip_from 190.93.240.0/20;
      set_real_ip_from 197.234.240.0/22;
      set_real_ip_from 198.41.128.0/17;
      set_real_ip_from 2400:cb00::/32;
      set_real_ip_from 2606:4700::/32;
      set_real_ip_from 2803:f800::/32;
      set_real_ip_from 2405:b500::/32;
      set_real_ip_from 2405:8100::/32;
      set_real_ip_from 2c0f:f248::/32;
      set_real_ip_from 2a06:98c0::/29;
      real_ip_header CF-Connecting-IP;
    
    ...
    }


    так nginx начнет "видеть" реальные айпишники пользователей, а не серверов CF

    ТОЛЬКО ПОСЛЕ ЭТОГО ваши манипуляции с limit_req имеют смысл.
    Иначе под раздачу 429й ошибки рандомно попадают все посетители сайта

    UPD2:
    Если кто-нибудь когда нибудь посоветует вам вот такую запись
    set_real_ip_from 0.0.0.0/0;
    real_ip_header CF-Connecting-IP;

    то шлите мамкиного хакера обратно в школу.
    Ответ написан
    12 комментариев
  • Почему Linux предпочтительнее для администрирования и чем? Почему многие предпочитают её?

    dyuriev
    @dyuriev
    A posteriori
    Скорее всего под таким вопросом начнется всем уже известный срач. А пару человек еще упрекнут вас в том, что у них 30-50-70 процентов серверов под FreeBSD

    Мое скромное мнение
    • Бесплатность
      Да, сейчас кто-нибудь заявит о том что на Red Hat не дешевле, а иногда и дороже Windows, но большинство дистрибьютивов Linux бесплатны
    • Открытость
      Данный факт не ценишь ровно до того момента, как приходится сделать что-то, что не разжевано в интернете. Рано или поздно разработчик доходит до того момента, когда ползет в исходники с глубоким душевным вопросом "как это %&$ должно работать?". Ибо некоторые моменты либо документированы неправильно, либо не полностью, либо в коде досадная ошибка, которую никто не замечал ранее, ну или замечал, но багрепорт/коммит с фиксом разрабу не кидал.
      В Windows-среде, особенно если это сама система, а не прикладной софт, данный баг может вылиться в недели или месяцы страданий. Там только реверс-инжиринг, если саппорт вас игнорит.
    • Документированость
      Команда не сработала как ожидалось? man commandname
      Не помогло? Гляньте сайт разработчика, там обычно на столько обширное вики/документация, что увлечетесь чтением.
      Программа свежая и документация пока не исчерпывающая? Гляньте репозиторий, поиском найдите по исходнику место которое хотите вызвать параметрически - скорее всего там увидите комментарий разраба, кто писал этот код, заодно еще парочку недокументированных возможностей почерпнете.
      В конце концов, если вдруг вам станет интересно, почему сделано так, а не иначе - гляньте багзиллу проекта - скорее всего поиском найдете обсуждение данного куска кода.
    • Гибкость
      Воткнуть свой драйвер в прямо в ядро? Легко (если уж научитесь драйвера писать, то внедрить в ядро особых проблем не составит)
    • Повсеместность
      Че уж там сервера. Роутеры, телефоны, embedded-решения - там везде в кулуарах за редким исключением крутится ядро Linux и знакомые пакеты и команды. Этакая стандартизация.
    • Эффект IKEA
      Вы сами того не подозреваете, но когда по кирпичикам соберете этот чертов конструктор, заставите каждый винтик крутиться (с вероятностью стремящейся к 100%) так как вам надо, вы полюбите эту систему.

    И еще раз напоминаю, что это мое скромное личное мнение.

    Несомнено, сервера и на Windows бывают быстрые, стабильные, работающие 24/7/365 годами. Но так уж повелось.
    Ответ написан
    2 комментария
  • Почему не запускается сайт html на nginx?

    dyuriev
    @dyuriev
    A posteriori
    погадал на гуще кофейной
    гуща говорит, что прав на каталог /sites у nginx нет - по этому и логи пустые, ибо писать туда тоже не может
    гуща из второй чашки говорит, что после правок nginx, вы забыли перезагрузить nginx
    гуща из третьей чашки говорит, что вы в браузере открываете сайт без указания порта 8080

    больше кофе я сегодня не выпью
    Ответ написан
    2 комментария
  • Какую версию Ubuntu лучше поставить на Ноутбук HP Pavilion 14-dv0004ua (34Q62EA)?

    dyuriev
    @dyuriev
    A posteriori
    Если вопрос про версию в плане 20.04 vs 21.04, то однозначно 20.04 (LTS тут решает)
    Если вопрос про ubuntu vs xubuntu vs kubuntu, то ставьте ubuntu

    Ответ дан с предположением, что опыта с линуксом у вас мало.

    Когда пойдет речь про разворачивание среды разработки - разные версии php, вебсерверов и прочего, то используйте докер - сначала помучаетесь, потом дзен словите, когда не надо будет с напильником устанавливать/переустанавливать/править конфигруацию окружения под разные проекты
    Ответ написан
    2 комментария
  • Как сделать SSL сертификат для сервера, который пока-что не использует домен?

    dyuriev
    @dyuriev
    A posteriori
    скопируйте сертификат (файлы которые в соответствующих директивах конфига nginx прописаны) с рабочего сервера перед переносом и пропишите в директивы nginx на новом сервере

    уже после переноса и смены А-записей поставьте нормально certbot с автообновлением сертификата

    не городите велосипед и грабли

    Это будет самый быстрый способ для разового переноса одного сервера.

    UPD: чтобы не было конфликтов, размещайте файлы с рабочего сервера с ключем и сертификатом на новый не в /etc/letsencrypt, а, например, в /etc/nginx/ssl, а то потом certbot офигеет, че ему подсунули
    Ответ написан
    2 комментария