Installa VPN fuq Servers Headless
FreeGuard CLI jaħdem nativistikaement fuq servers Linux headless mingħajr ambjent desktop. Kemm jekk qed tissigura istanza cloud, tipproteġi laboratorju domestiku, jew tiddirieġi t-traffiku tal-kontenituri permezz ta' VPN, din il-gwida tkopri l-installazzjoni, l-awtentikazzjoni, il-konfigurazzjoni tas-servizz u l-monitoraġġ għal installazzjonijiet ta' servers ta' produzzjoni.

Installa VPN fuq Servers Headless

FreeGuard CLI jaħdem nativistikaement fuq servers Linux headless mingħajr ambjent desktop. Kemm jekk qed tissigura istanza cloud, tipproteġi laboratorju domestiku, jew tiddirieġi t-traffiku tal-kontenituri permezz ta’ VPN, din il-gwida tkopri l-installazzjoni, l-awtentikazzjoni, il-konfigurazzjoni tas-servizz u l-monitoraġġ għal installazzjonijiet ta’ servers ta’ produzzjoni.

Għaliex Tħaddem VPN fuq Server?

Is-servers jimmaniġġjaw traffiku sensittiv: konnessjonijiet tad-database, sejħiet API, trasferimenti ta’ backup, u komunikazzjoni bejn is-servizzi. Li tħaddem VPN fuq is-server innifsu jiżgura li t-traffiku kollu li joħroġ ikun kriptat mingħajr ma tikkonfigura applikazzjonijiet individwali.

Każijiet ta’ użu komuni:

  • Istanzi cloud li jaċċessaw APIs b’restrizzjoni ġeografika
  • CI/CD runners li jeħtieġu identità tan-network konsistenti
  • Servizzi self-hosted li jibbenefikaw minn maskjar tal-IP
  • Servers tal-iżvilupp użati minn timijiet distribwiti

Installazzjoni

Ubuntu / Debian

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

Jew installa mir-repożitorju APT:

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

Jew uża r-repożitorju RPM:

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

L-utenti ta’ Alpine jistgħu jkollhom bżonn jinstallaw libc6-compat l-ewwel:

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

Ivverifika l-Installazzjoni

freeguard --version

Awtentikazzjoni Headless

Fuq servers mingħajr browser, ma tistax tuża l-fluss ta’ login OAuth default. FreeGuard CLI jipprovdi awtentikazzjoni bbażata fuq l-email għal ambjenti headless.

Login bl-Email

freeguard login --method email

Il-CLI jitolbok iddaħħal l-email tal-kont tiegħek. Kodiċi ta’ verifika jintbagħat f’dak l-indirizz. Daħħal il-kodiċi fit-terminal biex tlesti l-awtentikazzjoni.

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

Login b’Token

Għal installazzjonijiet awtomatizzati, uża token tas-servizz:

freeguard login --method token --token YOUR_SERVICE_TOKEN

Iġġenera tokens tas-servizz mid-dashboard tal-kont tiegħek. It-tokens jistgħu jkunu limitati għal servers speċifiċi u jkollhom skadenza konfigurabbli.

Ivverifika l-Awtentikazzjoni

freeguard status --json | jq '.authenticated'

Tħaddem bħala Servizz systemd

Għal installazzjonijiet ta’ produzzjoni, ħaddem FreeGuard CLI bħala servizz systemd biex jibda mal-boot u jerġa jibda meta jfalli.

Oħloq il-Fajl tas-Servizz

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

Attiva u Ibda

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

Iċċekkja l-Istatus tas-Servizz

sudo systemctl status freeguard

Ara l-Logs

sudo journalctl -u freeguard -f

Scripting b’ --json u --no-color

L-iskripts ta’ produzzjoni għandhom jipparsjaw output strutturata minflok test li jinqara mill-bnedmin.

Output JSON

Kull kmand issapportja --json:

# Connection status
freeguard status --json

Output:

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

Modalità Mingħajr Kuluri

Neħħi l-kodiċijiet tal-kuluri ANSI għal fajls ta’ log nodfa:

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

Eżempju ta’ Scripting

Skript ta’ health-check li jerġa jaqbad meta jfalli:

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

Żidu mal-cron għal kontrolli regolari:

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

Monitoraġġ u Health Checks

Health Check Bażiku

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

Jirritorna true jew false. Sempliċi biżżejjed għal kwalunkwe sistema ta’ monitoraġġ.

Integrazzjoni ma’ Għodod ta’ Monitoraġġ

Esporta l-istatus lejn Prometheus, Datadog jew kwalunkwe sistema ta’ monitoraġġ li tista’ tesegwixxi kmandi shell:

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

Twissijiet

Ikkombina l-health check mas-sistema ta’ twissijiet tiegħek. Eżempju b’webhook sempliċi:

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

Konsiderazzjonijiet ta’ Sigurtà

  • Ħaddem bħala root: It-tunnel VPN jeħtieġ privileġġi root biex jimmodifika r-rotot tan-network. Is-servizz systemd jaħdem bħala root b’default.
  • Ħażna tat-tokens: It-tokens tas-servizz huma maħżuna f’ ~/.config/freeguard/. Żgura permessi tal-fajls xierqa (chmod 600).
  • Regoli tal-firewall: Jekk tuża UFW jew iptables, żgura li l-interface tat-tunnel VPN hija permessa.
  • Kill switch: Attiva l-kill switch biex timblokka t-traffiku kollu jekk il-VPN taqta’: freeguard config set kill-switch true.

Passi Li Jmiss

L-aħħar aġġornament: Marzu 2026