Headless Sunuculara VPN Dağıtımı
FreeGuard CLI, masaüstü ortamı gerektirmeden headless Linux sunucularında yerel olarak çalışır. Bir bulut örneğini güvence altına alıyor, ev laboratuvarını koruyor veya konteyner trafiğini VPN üzerinden yönlendiriyor olun, bu kılavuz üretim sunucu dağıtımları için kurulum, kimlik doğrulama, hizmet yapılandırması ve izlemeyi kapsar.

Headless Sunuculara VPN Dağıtımı

FreeGuard CLI, masaüstü ortamı gerektirmeden headless Linux sunucularında yerel olarak çalışır. Bir bulut örneğini güvence altına alıyor, ev laboratuvarını koruyor veya konteyner trafiğini VPN üzerinden yönlendiriyor olun, bu kılavuz üretim sunucu dağıtımları için kurulum, kimlik doğrulama, hizmet yapılandırması ve izlemeyi kapsar.

Sunucuda Neden VPN Çalıştırmalı?

Sunucular hassas trafiği yönetir: veritabanı bağlantıları, API çağrıları, yedek aktarımları ve servisler arası iletişim. VPN’i sunucunun kendisinde çalıştırmak, bireysel uygulamaları yapılandırmadan tüm giden trafiğin şifrelenmesini sağlar.

Yaygın kullanım senaryoları:

  • Coğrafi olarak kısıtlı API’lere erişen bulut örnekleri
  • Tutarlı ağ kimliğine ihtiyaç duyan CI/CD runner’ları
  • IP maskelemeden yararlanan kendi barındırılan hizmetler
  • Dağıtık ekipler tarafından kullanılan geliştirme sunucuları

Kurulum

Ubuntu / Debian

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

Veya APT deposundan yükleyin:

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

Veya RPM deposunu kullanın:

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 kullanıcılarının önce libc6-compat yüklemesi gerekebilir:

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

Kurulumu Doğrulama

freeguard --version

Headless Kimlik Doğrulama

Tarayıcısı olmayan sunucularda varsayılan OAuth giriş akışını kullanamazsınız. FreeGuard CLI, headless ortamlar için e-posta tabanlı kimlik doğrulama sağlar.

E-posta ile Giriş

freeguard login --method email

CLI, hesap e-postanızı girmenizi ister. Bu adrese bir doğrulama kodu gönderilir. Kimlik doğrulamayı tamamlamak için terminalde kodu girin.

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

Token Tabanlı Giriş

Otomatik dağıtımlar için bir hizmet tokeni kullanın:

freeguard login --method token --token YOUR_SERVICE_TOKEN

Hesap kontrol panelinden hizmet tokenleri oluşturun. Tokenler belirli sunucularla sınırlandırılabilir ve yapılandırılabilir son kullanma süresine sahip olabilir.

Kimlik Doğrulamayı Doğrulama

freeguard status --json | jq '.authenticated'

systemd Hizmeti Olarak Çalıştırma

Üretim dağıtımları için FreeGuard CLI’ı systemd hizmeti olarak çalıştırarak önyüklemede başlatılmasını ve hata durumunda yeniden başlatılmasını sağlayın.

Hizmet Dosyasını Oluşturma

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

Etkinleştirme ve Başlatma

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

Hizmet Durumunu Kontrol Etme

sudo systemctl status freeguard

Günlükleri Görüntüleme

sudo journalctl -u freeguard -f

–json ve --no-color ile Betik Yazma

Üretim betikleri, insan tarafından okunabilir metin yerine yapılandırılmış çıktıyı ayrıştırmalıdır.

JSON Çıktısı

Her komut --json destekler:

# Connection status
freeguard status --json

Çıktı:

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

Renksiz Mod

Temiz günlük dosyaları için ANSI renk kodlarını kaldırın:

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

Betik Örneği

Hata durumunda yeniden bağlanan sağlık kontrolü betiği:

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

Düzenli kontroller için cron’a ekleyin:

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

İzleme ve Sağlık Kontrolleri

Temel Sağlık Kontrolü

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

true veya false döndürür. Herhangi bir izleme sistemi için yeterince basit.

İzleme Araçlarıyla Entegrasyon

Durumu Prometheus, Datadog veya shell komutları çalıştırabilen herhangi bir izleme sistemine aktarın:

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

Uyarılar

Sağlık kontrolünü uyarı sisteminizle birleştirin. Basit bir webhook örneğ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

Güvenlik Hususları

  • root olarak çalıştırma: VPN tüneli, ağ yollarını değiştirmek için root yetkileri gerektirir. systemd hizmeti varsayılan olarak root olarak çalışır.
  • Token depolama: Hizmet tokenleri ~/.config/freeguard/ dizininde saklanır. Uygun dosya izinlerini sağlayın (chmod 600).
  • Güvenlik duvarı kuralları: UFW veya iptables kullanıyorsanız, VPN tünel arayüzünün izin verildiğinden emin olun.
  • Kill switch: VPN bağlantısı kesildiğinde tüm trafiği engellemek için kill switch’i etkinleştirin: freeguard config set kill-switch true.

Sonraki Adımlar

Son güncelleme: Mart 2026