mnemo_cards/tools/deploy/FAIL2BAN_WHITELIST.md
2025-11-21 00:28:55 +03:00

4.9 KiB
Raw Blame History

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

[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).

Проверка

Текущий статус

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

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:

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 вручную

Если всё же кто-то был заблокирован:

# Посмотреть заблокированные 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

ssh root@147.45.152.129 'tail -f /var/log/fail2ban.log'

Просмотр nginx access log

ssh root@147.45.152.129 'tail -f /var/log/nginx/access.log | grep vscode'

Backup

Создан backup оригинальной конфигурации:

/etc/fail2ban/jail.d/vscode.conf.backup

Для восстановления:

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/ 🟢 Доступен

Связанные документы


Вывод: Ваш IP (89.19.210.178) добавлен в whitelist. Fail2ban больше вас не заблокирует, но продолжит защищать сервер от атак с других IP адресов.