Nasadenie VPN na serveroch bez grafického rozhrania
FreeGuard CLI beží natívne na headless Linux serveroch bez potreby desktopového prostredia. Či už zabezpečujete cloudovú inštanciu, chránite domáce laboratórium alebo smerujete kontajnerový prenos cez VPN, táto príručka pokrýva inštaláciu, autentifikáciu, konfiguráciu služby a monitorovanie pre produkčné nasadenia na serveroch.

Nasadenie VPN na serveroch bez grafického rozhrania

FreeGuard CLI beží natívne na headless Linux serveroch bez potreby desktopového prostredia. Či už zabezpečujete cloudovú inštanciu, chránite domáce laboratórium alebo smerujete kontajnerový prenos cez VPN, táto príručka pokrýva inštaláciu, autentifikáciu, konfiguráciu služby a monitorovanie pre produkčné nasadenia na serveroch.

Prečo spustiť VPN na serveri?

Servery spracúvajú citlivú prevádzku: pripojenia k databázam, volania API, prenosy záloh a komunikáciu medzi službami. Spustenie VPN priamo na serveri zabezpečí šifrovanie všetkej odchádzajúcej prevádzky bez konfigurácie jednotlivých aplikácií.

Bežné prípady použitia:

  • Cloudové inštancie pristupujúce ku geograficky obmedzeným API
  • CI/CD runnery vyžadujúce konzistentnú sieťovú identitu
  • Vlastne hostované služby profitujúce z maskovania IP adresy
  • Vývojové servery používané distribuovanými tímami

Inštalácia

Ubuntu / Debian

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

Alebo nainštalujte z APT repozitára:

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

Alebo použite RPM repozitár:

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

Používatelia Alpine môžu najprv potrebovať nainštalovať libc6-compat:

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

Overenie inštalácie

freeguard --version

Autentifikácia bez grafického rozhrania

Na serveroch bez prehliadača nemôžete použiť štandardný OAuth prihlasovací tok. FreeGuard CLI poskytuje e-mailovú autentifikáciu pre headless prostredia.

Prihlásenie e-mailom

freeguard login --method email

CLI vás požiada o zadanie e-mailu účtu. Na túto adresu sa odošle overovací kód. Zadajte kód v termináli na dokončenie autentifikácie.

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

Prihlásenie tokenom

Pre automatizované nasadenia použite servisný token:

freeguard login --method token --token YOUR_SERVICE_TOKEN

Vygenerujte servisné tokeny z panela účtu. Tokeny môžu byť obmedzené na konkrétne servery a mať konfigurovateľnú dobu platnosti.

Overenie autentifikácie

freeguard status --json | jq '.authenticated'

Spustenie ako služba systemd

Pre produkčné nasadenia spúšťajte FreeGuard CLI ako službu systemd, aby sa spustila pri štarte a reštartovala pri zlyhaní.

Vytvorenie súboru služby

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

Povolenie a spustenie

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

Kontrola stavu služby

sudo systemctl status freeguard

Zobrazenie logov

sudo journalctl -u freeguard -f

Skriptovanie s --json a --no-color

Produkčné skripty by mali analyzovať štruktúrovaný výstup namiesto textu čitateľného človekom.

JSON výstup

Každý príkaz podporuje --json:

# Connection status
freeguard status --json

Výstup:

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

Režim bez farieb

Odstráňte ANSI farebné kódy pre čisté log súbory:

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

Príklad skriptu

Skript na kontrolu stavu, ktorý sa pri zlyhaní znova pripojí:

#!/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

Pridajte do cronu pre pravidelné kontroly:

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

Monitorovanie a kontroly stavu

Základná kontrola stavu

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

Vráti true alebo false. Dostatočne jednoduché pre akýkoľvek monitorovací systém.

Integrácia s monitorovacími nástrojmi

Exportujte stav do Prometheus, Datadog alebo akéhokoľvek monitorovacieho systému, ktorý dokáže spúšťať shell príkazy:

#!/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

Upozornenia

Kombinujte kontrolu stavu s vaším systémom upozornení. Príklad s jednoduchým webhookom:

#!/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

Bezpečnostné aspekty

  • Spustenie ako root: VPN tunel vyžaduje root oprávnenia na úpravu sieťových trás. Služba systemd beží ako root v predvolenom nastavení.
  • Úložisko tokenov: Servisné tokeny sú uložené v ~/.config/freeguard/. Zabezpečte príslušné oprávnenia súborov (chmod 600).
  • Pravidlá firewallu: Ak používate UFW alebo iptables, uistite sa, že rozhranie VPN tunela je povolené.
  • Kill switch: Aktivujte kill switch na blokovanie všetkej prevádzky pri odpojení VPN: freeguard config set kill-switch true.

Ďalšie kroky

Posledná aktualizácia: marec 2026