VPN telepítése headless szerverekre
A FreeGuard CLI natívan fut headless Linux szervereken, asztali környezet nélkül. Akár felhő példányt biztosít, akár otthoni labort véd, akár konténer forgalmat irányít VPN-en keresztül, ez az útmutató lefedi a telepítést, hitelesítést, szolgáltatás konfigurációt és monitorozást éles szerver környezetekben.

VPN telepítése headless szerverekre

A FreeGuard CLI natívan fut headless Linux szervereken, asztali környezet nélkül. Akár felhő példányt biztosít, akár otthoni labort véd, akár konténer forgalmat irányít VPN-en keresztül, ez az útmutató lefedi a telepítést, hitelesítést, szolgáltatás konfigurációt és monitorozást éles szerver környezetekben.

Miért futtassunk VPN-t szerveren?

A szerverek érzékeny forgalmat kezelnek: adatbázis-kapcsolatokat, API-hívásokat, biztonsági mentések átvitelét és szolgáltatások közötti kommunikációt. A VPN futtatása magán a szerveren biztosítja, hogy az összes kimenő forgalom titkosított legyen az egyes alkalmazások konfigurálása nélkül.

Gyakori felhasználási esetek:

  • Felhő példányok, amelyek földrajzilag korlátozott API-khoz férnek hozzá
  • CI/CD futtatók, amelyeknek következetes hálózati identitásra van szükségük
  • Saját hosztolású szolgáltatások, amelyek profitálnak az IP-cím elrejtéséből
  • Fejlesztői szerverek, amelyeket elosztott csapatok használnak

Telepítés

Ubuntu / Debian

curl -fsSL https://cli.freeguard.com/install.sh | bash

Vagy telepítés az APT tárolóból:

curl -fsSL https://cli.freeguard.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/freeguard.gpg
echo "deb [signed-by=/usr/share/keyrings/freeguard.gpg] https://apt.freeguard.com stable main" | sudo tee /etc/apt/sources.list.d/freeguard.list
sudo apt update
sudo apt install freeguard-cli

CentOS / RHEL / Fedora

curl -fsSL https://cli.freeguard.com/install.sh | bash

Vagy használja az RPM tárolót:

sudo rpm --import https://cli.freeguard.com/gpg.key
sudo tee /etc/yum.repos.d/freeguard.repo <<EOF
[freeguard]
name=FreeGuard CLI
baseurl=https://rpm.freeguard.com/stable
gpgcheck=1
gpgkey=https://cli.freeguard.com/gpg.key
EOF
sudo yum install freeguard-cli

Alpine Linux

curl -fsSL https://cli.freeguard.com/install.sh | bash

Alpine felhasználóknak előbb telepíteniük kell a libc6-compat csomagot:

apk add libc6-compat
curl -fsSL https://cli.freeguard.com/install.sh | bash

Telepítés ellenőrzése

freeguard --version

Headless hitelesítés

Böngésző nélküli szervereken nem használható az alapértelmezett OAuth bejelentkezés. A FreeGuard CLI e-mail alapú hitelesítést biztosít headless környezetekhez.

E-mail bejelentkezés

freeguard login --method email

A CLI kéri, hogy adja meg fiókja e-mail címét. Egy ellenőrző kódot küld erre a címre. Írja be a kódot a terminálban a hitelesítés befejezéséhez.

$ freeguard login --method email
Enter your email: [email protected]
Verification code sent. Check your inbox.
Enter code: 483291
Login successful.

Token alapú bejelentkezés

Automatizált telepítésekhez használjon szolgáltatási tokent:

freeguard login --method token --token YOUR_SERVICE_TOKEN

Szolgáltatási tokeneket a fiók kezelőpanelen hozhat létre. A tokenek korlátozhatók adott szerverekre, és beállítható lejárati idejük van.

Hitelesítés ellenőrzése

freeguard status --json | jq '.authenticated'

Futtatás systemd szolgáltatásként

Éles telepítésekhez futtassa a FreeGuard CLI-t systemd szolgáltatásként, hogy induláskor elinduljon és hiba esetén újrainduljon.

Szolgáltatás fájl létrehozása

sudo tee /etc/systemd/system/freeguard.service <<EOF
[Unit]
Description=FreeGuard VPN
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/bin/freeguard connect --server us-east --no-color
ExecStop=/usr/local/bin/freeguard disconnect
Restart=on-failure
RestartSec=10
User=root

[Install]
WantedBy=multi-user.target
EOF

Engedélyezés és indítás

sudo systemctl daemon-reload
sudo systemctl enable freeguard
sudo systemctl start freeguard

Szolgáltatás állapotának ellenőrzése

sudo systemctl status freeguard

Naplók megtekintése

sudo journalctl -u freeguard -f

Szkriptelés --json és --no-color kapcsolókkal

Az éles szkripteknek strukturált kimenetet kell feldolgozniuk az ember által olvasható szöveg helyett.

JSON kimenet

Minden parancs támogatja a --json kapcsolót:

# Connection status
freeguard status --json

Kimenet:

{
  "connected": true,
  "server": "us-east-1",
  "server_name": "New York",
  "protocol": "hysteria2",
  "uptime": 86400,
  "bytes_sent": 1048576,
  "bytes_received": 5242880
}

Szín nélküli mód

ANSI színkódok eltávolítása a tiszta naplófájlokért:

freeguard status --no-color >> /var/log/freeguard-status.log

Szkriptelési példa

Állapotellenőrző szkript, amely hiba esetén újracsatlakozik:

#!/bin/bash
STATUS=$(freeguard status --json 2>/dev/null)
CONNECTED=$(echo "$STATUS" | jq -r '.connected')

if [ "$CONNECTED" != "true" ]; then
  echo "$(date): VPN disconnected, reconnecting..." >> /var/log/freeguard-health.log
  freeguard connect --server us-east --json >> /var/log/freeguard-health.log 2>&1
fi

Adja hozzá a cronhoz rendszeres ellenőrzésekhez:

# Check VPN health every 5 minutes
*/5 * * * * /opt/scripts/freeguard-health.sh

Monitorozás és állapotellenőrzések

Alapvető állapotellenőrzés

freeguard status --json | jq -r '.connected'

true vagy false értéket ad vissza. Elég egyszerű bármely monitorozó rendszer számára.

Integráció monitorozó eszközökkel

Exportálja az állapotot Prometheus, Datadog vagy bármely monitorozó rendszer felé, amely shell parancsokat tud futtatni:

#!/bin/bash
# prometheus-exporter.sh
STATUS=$(freeguard status --json)
CONNECTED=$(echo "$STATUS" | jq -r '.connected')
UPTIME=$(echo "$STATUS" | jq -r '.uptime')

if [ "$CONNECTED" = "true" ]; then
  echo "freeguard_connected 1"
  echo "freeguard_uptime_seconds $UPTIME"
else
  echo "freeguard_connected 0"
  echo "freeguard_uptime_seconds 0"
fi

Riasztások

Kombinálja az állapotellenőrzést a riasztási rendszerével. Példa egyszerű webhookkal:

#!/bin/bash
CONNECTED=$(freeguard status --json | jq -r '.connected')
if [ "$CONNECTED" != "true" ]; then
  curl -X POST https://hooks.example.com/alert \
    -H "Content-Type: application/json" \
    -d '{"text": "FreeGuard VPN disconnected on '"$(hostname)"'"}'
fi

Biztonsági megfontolások

  • Futtatás root-ként: A VPN-alagút root jogosultságokat igényel a hálózati útvonalak módosításához. A systemd szolgáltatás alapértelmezetten root-ként fut.
  • Token tárolás: A szolgáltatási tokenek a ~/.config/freeguard/ könyvtárban tárolódnak. Győződjön meg a megfelelő fájljogosultságokról (chmod 600).
  • Tűzfalszabályok: Ha UFW-t vagy iptables-t használ, győződjön meg róla, hogy a VPN-alagút interfész engedélyezett.
  • Kill switch: Engedélyezze a kill switchet az összes forgalom blokkolásához, ha a VPN lecsatlakozik: freeguard config set kill-switch true.

Következő lépések

Utolsó frissítés: 2026. március