Home Knowledge base Skyline Cloud نیا VPS کیسے محفوظ بنائیں: فائر وال اور SSH کی سختی (ہارڈننگ) KNOWLEDGE BASE

نیا VPS کیسے محفوظ بنائیں: فائر وال اور SSH کی سختی (ہارڈننگ)

ایک تازہ Linux VPS کو محفوظ بنانے کے لیے عملی، مرحلہ وار رہنمائی: ایک sudo صارف بنائیں، صرف کلید کے ذریعے لاگ اِن کے ساتھ SSH کو محدود کریں، اور UFW کے ساتھ فائر وال ترتیب دیں۔ اس میں Fail2ban اور خودکار سیکیورٹی اپڈیٹس بھی شامل ہیں۔

نیا VPS کیسے محفوظ بنائیں: فائر وال اور SSH کی سختی (ہارڈننگ)

ایک تازہ Linux VPS کو محفوظ بنانے کے لیے عملی، مرحلہ وار رہنمائی: ایک sudo صارف بنائیں، صرف کلید کے ذریعے لاگ اِن کے ساتھ SSH کو محدود کریں، اور UFW کے ساتھ فائر وال ترتیب دیں۔ اس میں Fail2ban اور خودکار سیکیورٹی اپڈیٹس بھی شامل ہیں۔

شروع کرنے سے پہلے

آپ کو درکار ہے:

  • ایک نیا VPS جس کے ساتھ ایک عوامی IP اور آپ کے فراہم کنندہ کی طرف سے ابتدائی root اسناد (یا ایک طے شدہ sudo صارف) ہوں۔
  • آپ کی مشین پر ایک SSH کلائنٹ۔ Linux/macOS پر یہ پہلے سے موجود ہوتا ہے؛ Windows پر OpenSSH کلائنٹ یا PowerShell استعمال کریں۔
  • ایک SSH کلید جوڑا (key pair)۔ اگر آپ کے پاس نہیں ہے تو اسے مقامی طور پر تیار کریں:
ssh-keygen -t ed25519 -C "you@example.com"

ed25519 کلیدیں مختصر، تیز رفتار، اور پرانی 2048-bit RSA سے زیادہ مضبوط ہوتی ہیں۔ طے شدہ راستہ (~/.ssh/id_ed25519) قبول کرنے کے لیے Enter دبائیں اور ایک پاس فریز (passphrase) مقرر کریں۔

مرحلہ 1 — پہلے سسٹم کو اپڈیٹ کریں

لاگ اِن کریں اور کسی بھی اور کام سے پہلے تمام پیکجز کو موجودہ حالت میں لائیں، تاکہ آپ ایک پیچ شدہ بنیاد (patched baseline) سے آغاز کریں:

ssh root@your_server_ip
apt update && apt upgrade -y

مرحلہ 2 — ایک غیر روٹ sudo صارف بنائیں

روزانہ root کے طور پر کام کرنا خطرناک ہے: ایک ہی غلطی تباہ کن ثابت ہو سکتی ہے، اور root وہ پہلا اکاؤنٹ ہوتا ہے جسے ہر حملہ آور نشانہ بناتا ہے۔ اس کے بجائے ایک مخصوص انتظامی صارف بنائیں:

adduser deploy
usermod -aG sudo deploy

اب اپنی SSH عوامی کلید نئے صارف میں نقل کریں تاکہ آپ اُس کے طور پر لاگ اِن کر سکیں:

rsync --archive --chown=deploy:deploy ~/.ssh /home/deploy/

اگر آپ نے پاس ورڈ لاگ اِن کے ساتھ سرور قائم کیا تھا، تو اس کے بجائے اپنی مقامی مشین سے ssh-copy-id deploy@your_server_ip استعمال کریں۔ ایک دوسرا ٹرمینل کھولیں اور تصدیق کریں کہ آپ deploy کے طور پر لاگ اِن کر سکتے ہیں اور sudo whoami چلا سکتے ہیں (اسے root ظاہر کرنا چاہیے) اِس سے پہلے کہ آپ کسی اور چیز کو ہاتھ لگائیں۔ نئی رسائی کی تصدیق ہونے تک اپنا کام کرنے والا سیشن کبھی بند نہ کریں۔

مرحلہ 3 — SSH ڈیمن کو سخت بنائیں

یہ سب سے زیادہ اثر ڈالنے والی واحد تبدیلی ہے۔ SSH کنفگ میں ترمیم کریں:

sudo nano /etc/ssh/sshd_config

درج ذیل ہدایات مقرر کریں (انہیں ان کمنٹ کریں یا شامل کریں):

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
MaxAuthTries 3
X11Forwarding no
ہدایت اثر
PermitRootLogin no SSH پر براہِ راست روٹ لاگ اِن کو روکتا ہے
PasswordAuthentication no صرف کلید پر مبنی تصدیق پر مجبور کرتا ہے، جس سے بروٹ فورس ناکام ہو جاتا ہے
MaxAuthTries 3 3 ناکام کوششوں کے بعد کنکشن منقطع کر دیتا ہے

سروس کو دوبارہ لوڈ کر کے تبدیلی لاگو کریں:

sudo systemctl reload ssh

لاگ آؤٹ کرنے سے پہلے ایک نئے ٹرمینل میں جانچ کریں۔ تصدیق کریں کہ کلید سے لاگ اِن اب بھی کام کرتا ہے اور پاس ورڈ کی کوشش مسترد ہو جاتی ہے۔ اگر کوئی چیز غلط ہو، تو آپ کا موجودہ سیشن اب بھی اسے ٹھیک کرنے کے لیے کھلا رہتا ہے۔

اختیاری: SSH پورٹ تبدیل کریں

SSH کو پورٹ 22 سے ہٹا کر کسی اور پورٹ پر منتقل کرنا (مثلاً 2222) کسی پُرعزم حملہ آور کو نہیں روکے گا لیکن خودکار اسکینرز سے پیدا ہونے والے لاگ شور کو ڈرامائی طور پر کم کر دیتا ہے۔ sshd_config میں Port 2222 مقرر کریں، اسے دوبارہ لوڈ کرنے سے پہلے فائر وال میں اجازت دیں (اگلا مرحلہ)، اور ssh -p 2222 deploy@your_server_ip کے ساتھ جُڑیں۔

مرحلہ 4 — UFW کے ساتھ فائر وال ترتیب دیں

UFW (Uncomplicated Firewall) iptables کے لیے ایک دوستانہ فرنٹ اینڈ ہے۔ بطورِ طے شدہ، اِن باؤنڈ ہر چیز سے انکار کریں اور صرف وہی اجازت دیں جس کی آپ کو ضرورت ہو:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH

اگر آپ ایک ویب سرور چلاتے ہیں، تو HTTP اور HTTPS بھی کھولیں:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

انتہائی اہم: فائر وال فعال کرنے سے پہلے اپنے SSH پورٹ کی اجازت دیں، ورنہ آپ خود کو باہر بند کر لیں گے۔ اگر آپ نے پورٹ تبدیل کی ہے، تو OpenSSH کے بجائے sudo ufw allow 2222/tcp استعمال کریں۔

فعال کریں اور تصدیق کریں:

sudo ufw enable
sudo ufw status verbose

مرحلہ 5 — Fail2ban انسٹال کریں

Fail2ban آپ کے لاگز پر نظر رکھتا ہے اور اُن IPs کو عارضی طور پر بلاک کر دیتا ہے جو بدنیتی پر مبنی پیٹرن ظاہر کرتے ہیں، جیسے بار بار ناکام لاگ اِن:

sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

jail.local میں ترمیم کریں اور [sshd] کے تحت، یقینی بنائیں کہ jail معقول حدود کے ساتھ فعال ہے:

[sshd]
enabled = true
maxretry = 3
bantime = 1h
findtime = 10m

دوبارہ شروع کریں اور jail چیک کریں:

sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

مرحلہ 6 — خودکار سیکیورٹی اپڈیٹس فعال کریں

بغیر پیچ کیا گیا سافٹ ویئر سب سے عام خلاف ورزی (breach) کا ذریعہ ہے۔ Ubuntu/Debian پر، غیر حاضر (unattended) سیکیورٹی اپ گریڈز فعال کریں:

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

یہ سیکیورٹی پیچز خودکار طور پر لاگو کرتا ہے جبکہ فیچر اپ گریڈز کو آپ کے اختیار میں رکھتا ہے۔

ہارڈننگ چیک لسٹ

  • [x] سسٹم مکمل طور پر اپڈیٹ کیا گیا
  • [x] غیر روٹ sudo صارف بنایا اور تصدیق کیا گیا
  • [x] روٹ SSH لاگ اِن غیر فعال کیا گیا
  • [x] پاس ورڈ تصدیق غیر فعال کی گئی (صرف کلید)
  • [x] UFW فائر وال طے شدہ-انکار (default-deny) پالیسی کے ساتھ فعال کیا گیا
  • [x] Fail2ban SSH jail پر چل رہا ہے
  • [x] خودکار سیکیورٹی اپڈیٹس فعال کی گئیں

آگے کیا کریں

یہ بنیادی سطح (baseline) موقع پرست حملوں کی بھاری اکثریت کو بلاک کر دیتی ہے۔ یہاں سے، فی-ایپلیکیشن ہارڈننگ پر غور کریں (ایک ریورس پراکسی، Let's Encrypt کے ذریعے TLS، ڈیٹابیس کو localhost سے باندھنا)، مرکزی لاگنگ، اور باقاعدہ آف-سرور بیک اپس۔ اگر آپ کا سرور ای میل بھی سنبھالتا ہے، تو مناسب بزنس ای میل ہوسٹنگ ای میل کو باکس سے باہر رکھتی ہے اور اسے SPF، DKIM، اور DMARC کے ساتھ صحیح طریقے سے تصدیق شدہ بناتی ہے۔

مملکت (Kingdom) کے اندر سرورز چلانے سے متعلق مزید رہنمائی کے لیے، VPS اور کلاؤڈ سرورز کا مرکز دیکھیں۔ شفاف قیمتوں اور مقامی سپورٹ کے ساتھ مملکت کے اندر کے بنیادی ڈھانچے پر تعینات کرنے کے لیے تیار ہیں؟ اپنا Skyline Cloud اکاؤنٹ بنائیں اور چند منٹوں میں ایک ہارڈنڈ VPS شروع کریں۔

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship Skyline Cloud for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.