হেডলেস সার্ভারে VPN স্থাপন করুন
FreeGuard CLI হেডলেস Linux সার্ভারে নেটিভভাবে কাজ করে, কোনো ডেস্কটপ পরিবেশের প্রয়োজন নেই। আপনি একটি ক্লাউড ইনস্ট্যান্স সুরক্ষিত করছেন, একটি হোম ল্যাব রক্ষা করছেন, বা কন্টেইনার ট্র্যাফিক VPN এর মাধ্যমে রাউট করছেন — এই গাইড প্রোডাকশন সার্ভার ডিপ্লয়মেন্টের জন্য ইনস্টলেশন, অথেনটিকেশন, সার্ভিস কনফিগারেশন এবং মনিটরিং কভার করে।

হেডলেস সার্ভারে VPN স্থাপন করুন

FreeGuard CLI হেডলেস Linux সার্ভারে নেটিভভাবে কাজ করে, কোনো ডেস্কটপ পরিবেশের প্রয়োজন নেই। আপনি একটি ক্লাউড ইনস্ট্যান্স সুরক্ষিত করছেন, একটি হোম ল্যাব রক্ষা করছেন, বা কন্টেইনার ট্র্যাফিক VPN এর মাধ্যমে রাউট করছেন — এই গাইড প্রোডাকশন সার্ভার ডিপ্লয়মেন্টের জন্য ইনস্টলেশন, অথেনটিকেশন, সার্ভিস কনফিগারেশন এবং মনিটরিং কভার করে।

সার্ভারে VPN কেন চালাবেন?

সার্ভারগুলি সংবেদনশীল ট্র্যাফিক পরিচালনা করে: ডাটাবেস সংযোগ, API কল, ব্যাকআপ ট্রান্সফার এবং সার্ভিস-টু-সার্ভিস যোগাযোগ। সার্ভারেই VPN চালালে পৃথক অ্যাপ্লিকেশন কনফিগার না করেই সমস্ত আউটবাউন্ড ট্র্যাফিক এনক্রিপ্ট করা নিশ্চিত হয়।

সাধারণ ব্যবহারের ক্ষেত্র:

  • ক্লাউড ইনস্ট্যান্স যেগুলি ভৌগোলিকভাবে সীমাবদ্ধ API অ্যাক্সেস করে
  • 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

পরবর্তী পদক্ষেপ

সর্বশেষ আপডেট: মার্চ ২০২৬