# Fail2ban Whitelist Configuration **Дата**: 19 ноября 2025 **Статус**: ✅ Настроено ## Проблема Fail2ban блокировал IP администратора (89.19.210.178) при установке Flutter и интенсивном использовании VSCode Server. ## Решение Добавлен IP администратора в whitelist (ignoreip) для всех VSCode jail'ов. ## Конфигурация **Файл**: `/etc/fail2ban/jail.d/vscode.conf` ```ini [vscode] enabled = true port = http,https filter = vscode logpath = /var/log/nginx/access.log maxretry = 3 bantime = 3600 findtime = 600 ignoreip = 127.0.0.1/8 ::1 89.19.210.178 [vscode-ddos] enabled = true port = http,https filter = vscode-ddos logpath = /var/log/nginx/access.log maxretry = 100 bantime = 600 findtime = 60 ignoreip = 127.0.0.1/8 ::1 89.19.210.178 ``` ## Что означает ignoreip - `127.0.0.1/8` - локальные IP адреса (localhost) - `::1` - IPv6 localhost - `89.19.210.178` - ваш текущий внешний IP ## Параметры защиты ### vscode jail - **maxretry**: 3 попытки - **bantime**: 3600 секунд (1 час) - **findtime**: 600 секунд (10 минут) Блокирует за 3 неудачные попытки входа в течение 10 минут на 1 час. ### vscode-ddos jail - **maxretry**: 100 запросов - **bantime**: 600 секунд (10 минут) - **findtime**: 60 секунд (1 минута) Блокирует за более 100 запросов в минуту на 10 минут (защита от DDoS). ## Проверка ### Текущий статус ```bash ssh root@147.45.152.129 'fail2ban-client status vscode-ddos' ``` **Результат**: ``` Status for the jail: vscode-ddos |- Filter | |- Currently failed: 0 | |- Total failed: 0 `- Actions |- Currently banned: 0 |- Total banned: 0 `- Banned IP list: ``` ✅ Нет заблокированных IP ### Проверка whitelist ```bash ssh root@147.45.152.129 'fail2ban-client get vscode-ddos ignoreip' ``` Должно показать: `127.0.0.1/8 ::1 89.19.210.178` ## Добавление нового IP в whitelist Если ваш IP изменится или нужно добавить другой IP: ```bash ssh root@147.45.152.129 # Редактировать конфигурацию nano /etc/fail2ban/jail.d/vscode.conf # Добавить новый IP в строку ignoreip через пробел ignoreip = 127.0.0.1/8 ::1 89.19.210.178 NEW_IP_HERE # Перезапустить fail2ban systemctl restart fail2ban # Проверить статус systemctl status fail2ban ``` ## Разблокировка IP вручную Если всё же кто-то был заблокирован: ```bash # Посмотреть заблокированные IP ssh root@147.45.152.129 'fail2ban-client status vscode-ddos' # Разблокировать конкретный IP ssh root@147.45.152.129 'fail2ban-client set vscode-ddos unbanip IP_ADDRESS' # Пример ssh root@147.45.152.129 'fail2ban-client set vscode-ddos unbanip 89.19.210.178' ``` ## Логи ### Просмотр логов fail2ban ```bash ssh root@147.45.152.129 'tail -f /var/log/fail2ban.log' ``` ### Просмотр nginx access log ```bash ssh root@147.45.152.129 'tail -f /var/log/nginx/access.log | grep vscode' ``` ## Backup Создан backup оригинальной конфигурации: ``` /etc/fail2ban/jail.d/vscode.conf.backup ``` Для восстановления: ```bash ssh root@147.45.152.129 'cp /etc/fail2ban/jail.d/vscode.conf.backup /etc/fail2ban/jail.d/vscode.conf && systemctl restart fail2ban' ``` ## Безопасность ✅ **Fail2ban продолжает работать** - защита от атак активна ✅ **Ваш IP в whitelist** - вас больше не будет блокировать ✅ **Другие IP защищены** - атаки с других адресов будут блокироваться ## Проверка после изменений Все сервисы работают: | Сервис | URL | Статус | |--------|-----|--------| | Forgejo | https://code.mnemo-cards.online/ | 🟢 Доступен | | VSCode | https://vscode.mnemo-cards.online/ | 🟢 Доступен | | Backend API | https://api.mnemo-cards.online/ | 🟢 Доступен | ## Связанные документы - [VSCODE_SERVER_SETUP.md](./VSCODE_SERVER_SETUP.md) - Настройка VSCode Server - [RECOVERY_REPORT_2025-11-19.md](./RECOVERY_REPORT_2025-11-19.md) - Восстановление после перезагрузки --- **Вывод**: Ваш IP (89.19.210.178) добавлен в whitelist. Fail2ban больше вас не заблокирует, но продолжит защищать сервер от атак с других IP адресов.