مشین پر حملے: ہم کیا کرتے ہیں اور آپ کیا کر سکتے ہیں
چینل اور ایپلیکیشن پر حملہ کیسا لگتا ہے، یہ کیسے مختلف ہیں، آپ اپنی طرف کیا کنفیگر کر سکتے ہیں، اور کیسے سمجھیں کہ یہ حملہ ہی نہیں ہے۔
اپ ڈیٹ 23 اگست، 2026
لفظ "attack" دو بالکل مختلف صورتوں میں ایک جیسا سنائی دیتا ہے: جب آپ کا چینل فضول ٹریفک سے بھر جائے اور جب فی سیکنڈ چند سو درخواستیں آپ کی ایپلیکیشن کو گرما دیں۔ ان دونوں کو مختلف طریقے سے نمٹایا جاتا ہے، اور سب سے پہلے یہ طے کرنا ہے کہ آپ کا سامنا کس سے ہے۔
ایک کو دوسرے سے پہچاننا
| نشانی | چینل بھرا ہوا | ایپلیکیشن اوورلوڈ |
|---|---|---|
| "Overview" میں ٹریفک گراف | حد کو چھو رہا ہے | معمول کی قدریں |
| پروسیسر | لوڈ نہیں | مکمل لوڈ |
| SSH | کنیکٹ نہیں ہوگا | کام کرتا ہے، مگر آہستہ |
| ویب سرور لاگز | خالی | ہزاروں ایک جیسی درخواستیں |
/hosting/vds/m/<id> پر "Overview" میں پچھلے 24 گھنٹوں کے پروسیسر، میموری اور ٹریفک گراف دیکھیں۔ اگر ٹریفک معمول پر ہے مگر پروسیسر حد پر جمّا ہوا ہے، تو یہ ایپلیکیشن کا لوڈ ہے، اور آپ کو اسے اپنی طرف سے نمٹانا ہوگا۔
آپ کیا کر سکتے ہیں
nginx میں درخواستوں کی ریٹ لمٹنگ:
limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=conn:10m;
server {
limit_req zone=perip burst=20 nodelay;
limit_conn conn 20;
client_body_timeout 10s;
client_header_timeout 10s;
}
فائر وال میں کنکشنز کی لمٹنگ:
ufw limit 22/tcp
مزید لچکدار قواعد nftables کے مضمون میں ہیں: وہاں آپ نئے کنکشنز کی ریٹ لمٹ بھی کر سکتے ہیں اور بلاک شدہ ایڈریسز کی فہرست وقتِ زندگی کے ساتھ رکھ سکتے ہیں۔
لاگز میں ماخذ تلاش کریں:
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20
ss -tn state established | awk '{print $4}' | cut -d: -f1 | sort | uniq -c | sort -rn | head
کسی ایڈریس یا نیٹ ورک کو ایک بار بلاک کرنا:
ufw deny from 203.0.113.0/24
fail2ban لاگز کی بنیاد پر بلاکنگ خودکار بنا سکتا ہے۔
ہم کیا کرتے ہیں
ہمارا انفراسٹرکچر فضول ٹریفک کو نوڈ تک پہنچنے سے پہلے فلٹر کرتا ہے — اس سے پہلے کہ وہ آپ کی بینڈوڈتھ استعمال کرے۔ یہ چینل پر ہونے والے حجمی حملوں کے خلاف کام کرتا ہے اور اس کے لیے آپ کی طرف سے کوئی کنفیگریشن درکار نہیں۔
نوڈ لیول کا تحفظ کیا نہیں کرتا: یہ آپ کی ایپلیکیشن کی منطق کا تجزیہ نہیں کرتا۔ ظاہری طور پر معمول کی نظر آنے والی درخواستیں آپ کی مشین تک پہنچ جاتی ہیں، اور ان سے صرف آپ کی اپنی کنفیگریشن بچاتی ہے۔
اگر آپ کی مشین خود کسی حملے کا ماخذ بن جائے — مثلاً اس پر قبضہ کر لیا گیا ہو اور وہ کسی اور کے اسپام مہم میں شریک ہو — تو قابلِ قبول استعمال کی پالیسی کے تحت رسائی محدود کر دی جائے گی۔ اپنی مشین کو نفوذ کی نشانیوں کے مطابق جانچیں۔
کیشنگ اور اسٹیٹک فائلیں
درخواستوں کے سیلاب کے خلاف سب سے مؤثر طریقہ یہ ہے کہ ایک ہی چیز دو بار محسوب نہ کی جائے:
location /static/ {
expires 30d;
add_header Cache-Control "public";
}
بھاری صفحات کو ایپلیکیشن کی طرف کیش کریں۔ کیش سے دی گئی درخواست سینکڑوں گنا کم مہنگی پڑتی ہے۔
عام غلطیاں
burstکے بغیرlimit_reqسیٹ کرنا — عام صارفین جن کا صفحہ دو درجن فائلیں کھینچتا ہے، کٹ جاتے ہیں۔- تقسیم شدہ حملے کے دوران ایڈریسز کو ہاتھ سے ایک ایک کر کے بلاک کرنا: وہ ہزاروں میں ہوتے ہیں، اور آپ سبقت نہیں کر پائیں گے۔
- ICMP کو مکمل طور پر بلاک کرنا — یہ پیکٹ سائز کی گفت و شنید توڑ دیتا ہے، MTU دیکھیں۔
- اپنی ہی بگ کو حملہ سمجھ لینا: کوڈ میں لوپ، کوئی سرچ بوٹ کسی ایسی ڈائریکٹری کو کرال کر رہا ہو جسے آپ خارج کرنا بھول گئے، کلائنٹ کی لامتناہی دوبارہ کوششیں۔
اپنی لمٹس پہلے سے، پرسکون مشین پر سیٹ کریں۔ درخواستوں کے سیلاب کے دوران آپ
rateاورburstکی قدریں ٹھیک نہیں کر سکیں گے: آپ اندھیرے میں اور ٹکڑوں میں کنفیگ ایڈٹ کر رہے ہوں گے۔