Files

60 lines
1.4 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
# Базовая настройка UFW под схему own-git.
# ВНИМАНИЕ: проверьте, что доступ к серверу по SSH есть до включения firewall.
ALLOW_SSH_PORT="${ALLOW_SSH_PORT:-22}"
ALLOW_GITEA_SSH_PORT="${ALLOW_GITEA_SSH_PORT:-2222}"
ALLOW_HTTP="${ALLOW_HTTP:-true}"
ALLOW_HTTPS="${ALLOW_HTTPS:-true}"
ALLOW_SMTP="${ALLOW_SMTP:-true}"
ALLOW_RDP="${ALLOW_RDP:-true}"
RDP_PORT="${RDP_PORT:-3389}"
if [[ "${EUID:-$(id -u)}" -ne 0 ]]; then
echo "[ERR] Run as root (sudo)."
exit 1
fi
if ! command -v ufw >/dev/null 2>&1; then
echo "[INFO] Installing ufw..."
apt-get update
apt-get install -y ufw
fi
echo "[INFO] Reset UFW rules"
ufw --force reset
echo "[INFO] Set default policy"
ufw default deny incoming
ufw default allow outgoing
echo "[INFO] Allow SSH management port: ${ALLOW_SSH_PORT}/tcp"
ufw allow "${ALLOW_SSH_PORT}/tcp"
echo "[INFO] Allow Gitea SSH via HAProxy: ${ALLOW_GITEA_SSH_PORT}/tcp"
ufw allow "${ALLOW_GITEA_SSH_PORT}/tcp"
if [[ "$ALLOW_HTTP" == "true" ]]; then
ufw allow 80/tcp
fi
if [[ "$ALLOW_HTTPS" == "true" ]]; then
ufw allow 443/tcp
fi
if [[ "$ALLOW_SMTP" == "true" ]]; then
ufw allow 25/tcp
fi
if [[ "$ALLOW_RDP" == "true" ]]; then
ufw allow "${RDP_PORT}/tcp"
fi
echo "[INFO] Enable UFW"
ufw --force enable
echo "[OK] UFW configured"
ufw status verbose