172 lines
4.9 KiB
Markdown
172 lines
4.9 KiB
Markdown
# 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 адресов.
|
||
|