Добавлен firewall-скрипт для private proxy Matrix
Этот коммит содержится в:
@@ -0,0 +1,59 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -Eeuo pipefail
|
||||||
|
|
||||||
|
FASTPANEL_PROXY_IP="${FASTPANEL_PROXY_IP:-192.168.0.221}"
|
||||||
|
MATRIX_PORT="${MATRIX_PORT:-8008}"
|
||||||
|
ALLOW_SSH="${ALLOW_SSH:-yes}"
|
||||||
|
SSH_PORT="${SSH_PORT:-22}"
|
||||||
|
APPLY_UFW_DEFAULTS="${APPLY_UFW_DEFAULTS:-no}"
|
||||||
|
|
||||||
|
log() { echo "[INFO] $*"; }
|
||||||
|
warn() { echo "[WARN] $*"; }
|
||||||
|
fail() { echo "[ERROR] $*" >&2; exit 1; }
|
||||||
|
|
||||||
|
need_root() {
|
||||||
|
if [ "$(id -u)" -ne 0 ]; then
|
||||||
|
fail "Run as root: sudo FASTPANEL_PROXY_IP=$FASTPANEL_PROXY_IP bash scripts/firewall_private_proxy.sh"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
need_command() {
|
||||||
|
command -v "$1" >/dev/null 2>&1 || fail "Required command not found: $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
need_root
|
||||||
|
need_command ufw
|
||||||
|
|
||||||
|
log "Configuring UFW for Matrix private reverse proxy"
|
||||||
|
echo " FastPanel proxy IP: $FASTPANEL_PROXY_IP"
|
||||||
|
echo " Matrix port: $MATRIX_PORT"
|
||||||
|
|
||||||
|
if [ "$ALLOW_SSH" = "yes" ]; then
|
||||||
|
ufw allow "$SSH_PORT"/tcp comment 'allow SSH'
|
||||||
|
else
|
||||||
|
warn "ALLOW_SSH is not yes, SSH rule was not added"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ufw allow from "$FASTPANEL_PROXY_IP" to any port "$MATRIX_PORT" proto tcp comment 'Pulse Matrix from FastPanel proxy'
|
||||||
|
ufw deny "$MATRIX_PORT"/tcp comment 'deny public Matrix direct access'
|
||||||
|
|
||||||
|
if [ "$APPLY_UFW_DEFAULTS" = "yes" ]; then
|
||||||
|
ufw default deny incoming
|
||||||
|
ufw default allow outgoing
|
||||||
|
else
|
||||||
|
warn "UFW default policy not changed. Set APPLY_UFW_DEFAULTS=yes if this is a clean Core server."
|
||||||
|
fi
|
||||||
|
|
||||||
|
ufw --force enable
|
||||||
|
|
||||||
|
echo
|
||||||
|
log "Current UFW status"
|
||||||
|
ufw status numbered
|
||||||
|
|
||||||
|
echo
|
||||||
|
log "Done. Verify from FastPanel proxy: curl http://<CORE_PRIVATE_IP>:$MATRIX_PORT/_matrix/client/versions"
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
Ссылка в новой задаче
Block a user