بغیر گرافیکل انٹرفیس والے سرورز پر VPN تعینات کریں
FreeGuard CLI بغیر ڈیسک ٹاپ ماحول کے ہیڈلیس Linux سرورز پر مقامی طور پر چلتا ہے۔ چاہے آپ کلاؤڈ انسٹنس محفوظ کر رہے ہوں، ہوم لیب کی حفاظت کر رہے ہوں، یا کنٹینر ٹریفک کو VPN کے ذریعے روٹ کر رہے ہوں، یہ گائیڈ پروڈکشن سرور تعیناتیوں کے لیے انسٹالیشن، تصدیق، سروس کنفیگریشن اور مانیٹرنگ کا احاطہ کرتا ہے۔

بغیر گرافیکل انٹرفیس والے سرورز پر VPN تعینات کریں

FreeGuard CLI بغیر ڈیسک ٹاپ ماحول کے ہیڈلیس Linux سرورز پر مقامی طور پر چلتا ہے۔ چاہے آپ کلاؤڈ انسٹنس محفوظ کر رہے ہوں، ہوم لیب کی حفاظت کر رہے ہوں، یا کنٹینر ٹریفک کو VPN کے ذریعے روٹ کر رہے ہوں، یہ گائیڈ پروڈکشن سرور تعیناتیوں کے لیے انسٹالیشن، تصدیق، سروس کنفیگریشن اور مانیٹرنگ کا احاطہ کرتا ہے۔

سرور پر VPN کیوں چلائیں؟

سرورز حساس ٹریفک کو سنبھالتے ہیں: ڈیٹا بیس کنکشنز، API کالز، بیک اپ ٹرانسفرز، اور سروسز کے درمیان مواصلات۔ سرور پر VPN چلانا یقینی بناتا ہے کہ انفرادی ایپلیکیشنز کو کنفیگر کیے بغیر تمام آؤٹ باؤنڈ ٹریفک انکرپٹ ہو۔

عام استعمال کے منظرنامے:

  • کلاؤڈ انسٹنسز جو جغرافیائی طور پر محدود APIs تک رسائی حاصل کرتے ہیں
  • CI/CD رنرز جنہیں مستقل نیٹ ورک شناخت کی ضرورت ہے
  • سیلف ہوسٹڈ سروسز جو IP چھپانے سے فائدہ اٹھاتی ہیں
  • ڈیویلپمنٹ سرورز جو تقسیم شدہ ٹیموں کے ذریعے استعمال ہوتے ہیں

انسٹالیشن

Ubuntu / Debian

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

یا 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

یا 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

Alpine صارفین کو پہلے libc6-compat انسٹال کرنے کی ضرورت ہو سکتی ہے:

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

انسٹالیشن کی تصدیق

freeguard --version

ہیڈلیس تصدیق

براؤزر کے بغیر سرورز پر، آپ ڈیفالٹ OAuth لاگ ان فلو استعمال نہیں کر سکتے۔ FreeGuard CLI ہیڈلیس ماحول کے لیے ای میل پر مبنی تصدیق فراہم کرتا ہے۔

ای میل لاگ ان

freeguard login --method email

CLI آپ سے اکاؤنٹ ای میل داخل کرنے کو کہتا ہے۔ اس ایڈریس پر تصدیقی کوڈ بھیجا جاتا ہے۔ تصدیق مکمل کرنے کے لیے ٹرمینل میں کوڈ داخل کریں۔

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

ٹوکن پر مبنی لاگ ان

خودکار تعیناتیوں کے لیے، سروس ٹوکن استعمال کریں:

freeguard login --method token --token YOUR_SERVICE_TOKEN

اپنے اکاؤنٹ ڈیش بورڈ سے سروس ٹوکنز بنائیں۔ ٹوکنز مخصوص سرورز تک محدود کیے جا سکتے ہیں اور قابل ترتیب میعاد ختم ہونے کی تاریخ رکھتے ہیں۔

تصدیق کی جانچ

freeguard status --json | jq '.authenticated'

systemd سروس کے طور پر چلانا

پروڈکشن تعیناتیوں کے لیے، FreeGuard CLI کو systemd سروس کے طور پر چلائیں تاکہ یہ بوٹ پر شروع ہو اور ناکامی پر دوبارہ شروع ہو۔

سروس فائل بنائیں

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

فعال کریں اور شروع کریں

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

سروس اسٹیٹس چیک کریں

sudo systemctl status freeguard

لاگز دیکھیں

sudo journalctl -u freeguard -f

–json اور --no-color کے ساتھ اسکرپٹنگ

پروڈکشن اسکرپٹس کو انسانی پڑھنے کے قابل متن کی بجائے ساختی آؤٹ پٹ پارس کرنا چاہیے۔

JSON آؤٹ پٹ

ہر کمانڈ --json کو سپورٹ کرتی ہے:

# Connection status
freeguard status --json

آؤٹ پٹ:

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

بغیر رنگ موڈ

صاف لاگ فائلوں کے لیے ANSI رنگ کوڈز ہٹائیں:

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

اسکرپٹنگ مثال

ایک ہیلتھ چیک اسکرپٹ جو ناکامی پر دوبارہ جڑتا ہے:

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

باقاعدہ جانچ کے لیے cron میں شامل کریں:

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

مانیٹرنگ اور ہیلتھ چیکس

بنیادی ہیلتھ چیک

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

true یا false واپس کرتا ہے۔ کسی بھی مانیٹرنگ سسٹم کے لیے کافی آسان۔

مانیٹرنگ ٹولز کے ساتھ انضمام

Prometheus، Datadog یا کسی بھی مانیٹرنگ سسٹم میں اسٹیٹس ایکسپورٹ کریں جو 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

الرٹنگ

ہیلتھ چیک کو اپنے الرٹنگ سسٹم کے ساتھ ملائیں۔ سادہ webhook کی مثال:

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

سیکیورٹی کے لحاظ سے غور طلب باتیں

  • root کے طور پر چلائیں: VPN ٹنل کو نیٹ ورک روٹس تبدیل کرنے کے لیے root مراعات کی ضرورت ہے۔ systemd سروس بطور ڈیفالٹ root کے طور پر چلتی ہے۔
  • ٹوکن اسٹوریج: سروس ٹوکنز ~/.config/freeguard/ میں محفوظ ہوتے ہیں۔ مناسب فائل اجازتیں یقینی بنائیں (chmod 600
  • فائر وال قوانین: اگر آپ UFW یا iptables استعمال کرتے ہیں تو یقینی بنائیں کہ VPN ٹنل انٹرفیس کی اجازت ہے۔
  • Kill switch: VPN منقطع ہونے پر تمام ٹریفک بلاک کرنے کے لیے kill switch فعال کریں: freeguard config set kill-switch true۔

اگلے اقدامات

آخری اپ ڈیٹ: مارچ 2026