feat(security): fail2ban для HAProxy JSON reject и Zabbix 403.
This commit is contained in:
@@ -28,6 +28,14 @@ default outgoing: allow
|
||||
|
||||
`192.168.128.0/17` покрывает офисную/VPN-подсеть (в т.ч. `192.168.160.0/24`).
|
||||
|
||||
Ответный трафик с бэкендов (`.42`, `.129` → высокие порты на `.117`):
|
||||
|
||||
```
|
||||
ufw allow from 192.168.160.0/24 comment 'LAN backends return'
|
||||
```
|
||||
|
||||
(в [haproxy-ufw-apply.sh](../../scripts/security/haproxy-ufw-apply.sh) — `LAN_BACKENDS_CIDR`).
|
||||
|
||||
### Env
|
||||
|
||||
`/etc/haproxy/security/haproxy-ufw.env` (из [haproxy-ufw.env.example](../../scripts/security/haproxy-ufw.env.example)):
|
||||
@@ -73,11 +81,31 @@ Inbound-почта с интернета идёт на **KSMG `.57`**, не на
|
||||
|------|--------|
|
||||
| SSH: ключи, `PermitRootLogin no`, `PasswordAuthentication no` | до/вместе с UFW |
|
||||
| fail2ban на sshd | подстраховка SSH |
|
||||
| fail2ban на HAProxy JSON | бан сканеров / reject SNI / Zabbix 403 |
|
||||
| `unattended-upgrades` | патчи |
|
||||
| Не открывать лишние listen | `ss -tlnp` |
|
||||
|
||||
Опционально позже: sysctl syncookies, rate-limit на frontend, allowlist для Exchange/sac-api.
|
||||
|
||||
## fail2ban (HAProxy JSON)
|
||||
|
||||
Скрипт: [fail2ban-install.sh](../../scripts/security/fail2ban-install.sh), конфиги в `scripts/security/fail2ban/`.
|
||||
|
||||
| Jail | Что ловит |
|
||||
|------|-----------|
|
||||
| `haproxy-reject` | JSON: `"be":"fe_https_sni","srv":"<NOSRV>"` — сканеры, чужой SNI, allowlist reject |
|
||||
| `haproxy-zabbix-403` | httplog: `fe_http_zabbix` + `403` |
|
||||
|
||||
```bash
|
||||
sudo apt install -y fail2ban
|
||||
sudo bash ~/reverse-proxy/scripts/security/fail2ban-install.sh
|
||||
sudo fail2ban-client status haproxy-reject
|
||||
```
|
||||
|
||||
Порог: **15** reject за **10 мин** → бан **24 ч** через UFW. `ignoreip`: LAN, VPN, admin.
|
||||
|
||||
После `systemctl restart fail2ban` подождите 1–2 с перед `fail2ban-client status` (сокет).
|
||||
|
||||
### SSH (пример)
|
||||
|
||||
`/etc/ssh/sshd_config.d/99-hardening.conf`:
|
||||
|
||||
Reference in New Issue
Block a user