docs(security): периметр 80/443→HAProxy, 25→KSMG; UFW на .117

Переписаны docs/security под текущий этап: SSH/stats из SSH_ALLOWED,
80/443 для всех. Скрипт UFW дополнен правилом 8404.
This commit is contained in:
Andrey Lutsenko
2026-06-13 22:34:57 +10:00
parent e3201ae41b
commit 8e2a4ac1b9
9 changed files with 259 additions and 406 deletions
+5 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# UFW для HAProxy: default deny, SSH из SSH_ALLOWED, inbound 80/443 (25 — опционально для LAN).
# UFW для HAProxy: SSH и stats из SSH_ALLOWED, 80/443 для всех.
# Dry-run по умолчанию; --apply для включения.
#
# cp haproxy-ufw.env.example /etc/haproxy/security/haproxy-ufw.env
@@ -38,6 +38,7 @@ source "$ENV_FILE"
SSH_ALLOWED=${SSH_ALLOWED:-}
INBOUND_TCP=${INBOUND_TCP:-80 443}
STATS_TCP=${STATS_TCP:-8404}
UFW_IPV6=${UFW_IPV6:-no}
[[ -n $SSH_ALLOWED ]] || die "SSH_ALLOWED is empty — lockout risk"
@@ -63,6 +64,9 @@ run ufw default allow outgoing
for cidr in $SSH_ALLOWED; do
run ufw allow from "$cidr" to any port 22 proto tcp comment 'admin ssh'
for port in $STATS_TCP; do
run ufw allow from "$cidr" to any port "$port" proto tcp comment 'haproxy stats'
done
done
for port in $INBOUND_TCP; do
+7 -8
View File
@@ -1,14 +1,13 @@
# UFW для haproxy.kalinamall.ru — пример.
# Копия: /etc/haproxy/security/haproxy-ufw.env (не коммитить в GitHub с prod-IP при необходимости)
# UFW для haproxy.kalinamall.ru
# Копия: /etc/haproxy/security/haproxy-ufw.env
# IP/CIDR для SSH (через пробел). Обязательно перед --apply.
SSH_ALLOWED="192.168.160.0/24 5.100.81.121"
# SSH и stats — только эти IP/CIDR (через пробел)
SSH_ALLOWED="5.100.81.121 192.168.128.0/17"
# Публичные сервисы HAProxy с периметра (пробел). MikroTik DNAT: только 80 и 443.
# С периметра (MikroTik DNAT) — для всех
INBOUND_TCP="80 443"
# Добавьте 25, если нужен SMTP через HAProxy только из LAN (не с интернета):
# INBOUND_TCP="80 443 25"
# HAProxy stats (если fe_stats включён в haproxy.cfg)
STATS_TCP="8404"
# IPv6: yes | no
UFW_IPV6=no