Надёжный подход к любым техническим задачам

Михаил Анкудинов Magbusjap

Рейтинг: 243
Паспорт верифицирован
Всего отзывов: 7 0
Выполнил заданий: 8
  • Работ в портфолио: 11
  • Типовых услуг: 0
  • Работ на продажу: 0
  • Возраст: 34 года
  • Стаж работы: 6 лет
  • Зарегистрирован: 12.06.2013
  • Образование: Среднее профессиональное
  • Юридический статус:Самозанятый
  • Стоимость услуг (руб): 1 000 за час 70 000 за месяц
Был на сайте:

Настройка безопасности VPS и защита от сканеров для Laravel-проекта

Используемые навыки:

Описание

Многоуровневая защита production-сервера для сайта на Laravel 12. Настроена с нуля самостоятельно, работает в production с апреля 2026.

Решение

— backend = polling в jail.d config для надёжного мониторинга file-based логов
— Custom filter regex для nginx-scan с tuning под реальные паттерны атак
— Fail2Ban viewer интегрирован прямо в Filament-админку — просмотр banned IPs без SSH
— Автоматический мониторинг: логи fail2ban и nginx доступны через Security Log в админке
Стек: Ubuntu 24.04, Nginx 1.24, Fail2Ban, UFW, OpenSSH, Let's Encrypt, PHP 8.3.

Результат

— Fail2Ban с кастомными jail'ами: SSH-jail (424 забаненных IP на данный момент), nginx-scan jail с custom-фильтром (24-часовой бан за 3 запроса к .env, .git, wp-admin, config.json, .aws и другим типичным путям сканеров)
— Nginx hardening: server_tokens off, Basic Auth на админ-панели (/magbusjap), limit_req на защищённые endpoints
— UFW firewall: открыты только 3 порта (80, 443, кастомный SSH)
— SSH hardening: нестандартный порт, запрет root-login, key-only authentication
— SSL Let's Encrypt с автопродлением через certbot cron
— PHP hardening: expose_php = Off, disable_functions для опасных функций
— Отключение VPN-конфликтов: специально выбрана Basic Auth вместо limit_req для админки (чтобы VPN с ротацией IP не триггерил self-ban)

Презентация проекта

2026-04-22_20-16-26.png

Оценили проект:

0