پورٹ فارورڈ بمقابلہ VPN رسائی: پیکٹ دراصل کہاں جاتا ہے
پورٹ فارورڈ منزل دوبارہ لکھتا ہے اور وہیں رک جاتا ہے؛ VPN پہلے پیکٹ لپیٹتا ہے۔ دیکھیں کہ کون سی تہہ کون بدلتا ہے اور HTTPS کے لیے اس کا کیا مطلب ہے۔
دو ڈیزائن، ایک HTTPS ایپلیکیشن، اور پیکٹ ہر ایک میں مختلف راستہ لیتا ہے۔ پورٹ فارورڈ بدلتا ہے کہ پیکٹ کہاں پہنچایا جائے اور باقی کو ویسا ہی چھوڑ دیتا ہے۔ VPN پہلے اس پیکٹ کو دوسرے پیکٹ کے اندر لے جاتا ہے، اس لیے ایپلیکیشن کا سننے والا مختلف ماخذ اور چھوٹا زیادہ سے زیادہ پے لوڈ دیکھتا ہے۔ جس انکرپشن پر لوگ بحث کرتے ہیں وہ دونوں صورتوں میں موجود ہے، کیونکہ ایپلیکیشن اب بھی HTTPS ہے؛ فرق یہ ہے کہ کون کنکشن کھول سکتا ہے اور درمیانی نیٹ ورک کیا مشاہدہ کر سکتا ہے۔ یہی فرق زیادہ تر عملی سوالات طے کرتا ہے۔
DNAT قاعدہ منزل دوبارہ لکھتا ہے اور وہیں رک جاتا ہے
Linux گیٹ وے پر سروس شائع کرنے کا مطلب nat جدول کی PREROUTING زنجیر میں قاعدہ، یا nftables میں اس کا متبادل۔ قاعدہ عوامی پتہ اور پورٹ سے میل کھاتا ہے، پھر منزل کو ایپلیکیشن کے نجی پتے پر دوبارہ لکھتا ہے۔ ماخذ پتہ، ماخذ پورٹ اور پے لوڈ اچھوتے رہتے ہیں، اور conntrack نقشہ ریکارڈ کرتا ہے تاکہ جواب باہر جاتے وقت دوبارہ لکھے جائیں۔ یہ رویہ RFC 3022 میں بیان کردہ روایتی پتہ ترجمہ ماڈل ہے۔
sudo iptables -t nat -A PREROUTING -d 203.0.113.10 -p tcp --dport 443 \
-j DNAT --to-destination 10.20.30.40:443
sudo iptables -t nat -L PREROUTING -n -v
sudo conntrack -L -p tcp --dport 443
ایپلیکیشن کا سننے والا کبھی نہیں جانتا کہ کنکشن ترجمے سے آیا۔ وہ کلائنٹ کا اصل ماخذ پتہ دیکھتا ہے، جو رسائی لاگ اور رفتار کی حد کے لیے مفید ہے، اور نجی پتے پر جواب دیتا ہے کیونکہ conntrack نقشہ الٹ دیتا ہے۔ اس راستے پر کچھ بھی ڈکرپٹ یا دوبارہ انکرپٹ نہیں ہوتا: TLS اب بھی کلائنٹ اور ایپلیکیشن کے اپنے سرٹیفکیٹ کے درمیان چلتا ہے۔
قاعدہ ان ناکامی کے طریقوں کو بھی طے کرتا ہے جو آپ کو بعد میں ملیں گے۔ اگر گیٹ وے فارورڈ کرتا ہے لیکن ایپلیکیشن کے ہوسٹ کے پاس کلائنٹ کی طرف واپسی کا راستہ نہیں ہے، تو جواب غلط ماخذ کے ساتھ نکلتے ہیں اور ہینڈ شیک رک جاتا ہے۔ اگر دوسرا قاعدہ پہلے میل کھاتا ہے، تو ترتیب نتیجہ طے کرتی ہے، اور iptables -t nat -L -n -v وہ کاؤنٹر دکھاتا ہے جو ثابت کرتے ہیں کہ کس قاعدے نے پیکٹ لیا۔
سرنگ سننے والے کے دیکھنے سے پہلے پیکٹ لپیٹتی ہے
VPN ایپلیکیشن کو بالکل شائع نہیں کرتا۔ کلائنٹ گیٹ وے کے عوامی پتے کی طرف نشانہ بنا کر بیرونی پیکٹ بناتا ہے، اندرونی پیکٹ اس کے اندر انکرپٹ کرتا ہے، اور گیٹ وے ڈکرپٹ کر کے اندرونی پیکٹ نجی منزل کی طرف بھیجتا ہے۔ WireGuard میں بیرونی نقل و حمل UDP ہے، عام طور پر اونچی پورٹ پر؛ OpenVPN TCP 443 پر ہو تو بیرونی پیکٹ راستہ دیکھنے والی ہر چیز کو TLS جیسا لگتا ہے۔
سرنگ کے اندر اندرونی پیکٹ نجی پتے رکھتا ہے: کلائنٹ کا سرنگ پتہ، فرض کریں 10.8.0.6، اور ایپلیکیشن 10.20.30.40 پر۔ اسی لیے سننے والا سرنگ کے تالاب سے ماخذ دیکھتا ہے، اور ہر کلائنٹ اس گیٹ وے کو اگلی چھلانگ کے طور پر بانٹتا ہے۔ VPN کے پیچھے رسائی لاگ اکثر صارف کے بجائے گیٹ وے دکھاتے ہیں، یہی وجہ ہے، جب تک گیٹ وے اصل ماخذ محفوظ نہ رکھے۔
لپیٹنا ہیڈر کی جگہ خرچ کرتا ہے، اور یہی واحد طریقہ کار کی سطح کا فرق ہے جس کا نتیجہ ناپا جا سکتا ہے۔ بیرونی IP ہیڈر اور UDP اور WireGuard کا اپنا ہیڈر راستے کے MTU میں سے کھاتے ہیں، اس لیے بڑے پیکٹ تقسیم کرنے پڑتے ہیں یا اندرونی TCP اسٹیک کو اپنا MSS محدود کرنا پڑتا ہے۔ فارورڈ شدہ راستے پر چلنے والی منتقلی سرنگ پر رک سکتی ہے جب درمیانی آلہ وہ ICMP گرا دے جو چھوٹے MTU کا اشارہ دیتا۔
ip route get 10.20.30.40
ping -M do -s 1400 10.20.30.40
sudo iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
-j TCPMSS --clamp-mss-to-pmtu
افشا داخلے پر طے ہوتا ہے، سائفر سے نہیں
دونوں ڈیزائن ایک ہی TLS سننے والے پر ختم ہوتے ہیں، اس لیے دونوں کو وہی سرٹیفکیٹ، وہی پروٹوکول ورژن اور وہی ایپلیکیشن لاگ ان وراثت میں ملتے ہیں۔ بدلتا یہ ہے کہ کسے ہینڈ شیک شروع کرنے کی اجازت ہے۔ عوامی فارورڈ میں، 203.0.113.10:443 تک پہنچنے والا کوئی بھی ہوسٹ آپ کی ایپلیکیشن کی اجازت دیکھے جانے سے پہلے ہی TCP ہینڈ شیک اور TLS ClientHello حاصل کر لیتا ہے۔ صرف سرنگ کے ذریعے رسائی میں، سننے والے تک صرف ان پتوں سے پہنچا جا سکتا ہے جنہیں گیٹ وے سرنگ میں بھیجتا ہے، اور اجنبی کا SYN گیٹ وے کی پالیسی پر مر جاتا ہے۔
یہ فرق رسائی کے بارے میں ہے، رازداری کے بارے میں نہیں۔ فارورڈ شدہ HTTPS سروس سادہ متن نہیں ہے، اور VPN ایپلیکیشن کی تصدیق کی ضرورت ختم نہیں کرتا: سرنگ میں قبولیت بتاتی ہے کہ کوئی آلہ اس نیٹ ورک میں پیکٹ بھیج سکتا ہے یا نہیں، جبکہ فائل ایپلیکیشن بتاتی ہے کہ کوئی صارف دستاویز پڑھ سکتا ہے یا نہیں۔ دونوں کو ملانا ہی وہ راستہ ہے جس سے ٹیمیں پورے LAN دینے والے VPN اور ایک مشترکہ پاس ورڈ والی ایپلیکیشن تک پہنچتی ہیں۔
سننے والے اور پالیسی کو الگ الگ جانچیں، کیونکہ ان میں سے کوئی بھی آپ کے اندازے سے وسیع ہو سکتا ہے:
sudo ss -ltnp 'sport = :443'
sudo nft list ruleset
openssl s_client -connect 203.0.113.10:443 -servername files.example.com </dev/null
اگر ss دکھاتا ہے کہ سننے والا 0.0.0.0 سے بندھا ہے، تو ایپلیکیشن وہاں سے پہنچی جا سکتی ہے جہاں روٹنگ اور فائر وال پالیسی اجازت دیتی ہے، اور فارورڈ داخل ہونے کے راستوں میں سے ایک ہے۔ نجی پتے سے باندھنا، یا فائر وال میں ماخذ کی حد محدود کرنا، VPN چننے سے الگ فیصلہ ہے، اور وہی فیصلہ افشا کو واقعی کم کرتا ہے۔
راستہ ناپیں، لیبل نہیں
جب کوئی دعوی کرتا ہے کہ فارورڈ تیز ہے، تو ایماندار موازنہ باقی سب کچھ مستقل رکھتا ہے: وہی کلائنٹ، وہی رسائی نیٹ ورک، وہی فائل، وہی TLS ترتیب، وہی ایپلیکیشن ہوسٹ۔ ہر راستے پر منتقلی دو بار چلائیں اور کل وقت، ناکامیوں کی تعداد اور جوابدہی لکھیں، کسی غیر متعلق رفتار جانچ کا نتیجہ نہیں۔
curl -sS -o /dev/null -w '%{time_connect} %{time_appconnect} %{time_total}\n' \
https://files.example.com/report.pdf
mtr -rwc 20 203.0.113.10
mtr -rwc 20 10.20.30.40
یہ اعداد کنکشن کے قیام کو منتقلی کے وقت سے الگ کرتے ہیں، جو اہم ہے کیونکہ دونوں راستے عام طور پر سائفر کی لاگت میں نہیں، بلکہ آمد و رفت کی تاخیر اور MTU میں مختلف ہوتے ہیں۔ TLS کا کام دونوں ڈیزائنوں میں سروں پر ہوتا ہے، اور سرنگ انکیپسولیشن، مختلف راستہ اور ممکنہ طور پر زیادہ مصروف گیٹ وے شامل کرتی ہے۔ اگر سرنگ کا راستہ لمبا ہو یا اس کا گیٹ وے بوجھل ہو، تو فرق راستے کا ہے، انکرپشن لفظ کا نہیں۔
وہ داخلہ پالیسی چنیں جس کی سروس کو واقعی ضرورت ہے، پھر فیصلہ کریں کہ ناپا گیا فرق اسے بدلنے کا جواز بنتا ہے یا نہیں۔ عوامی فارورڈ کھلے انٹرنیٹ کے لیے بنی سروس کے لیے موزوں ہے، ماخذ پابندیوں، تازہ TLS اور سامنے نگرانی کے ساتھ۔ صرف سرنگ کے ذریعے رسائی ایسے اندرونی آلے کے لیے موزوں ہے جس کے صارف پہلے سے رجسٹر ہیں، بشرطیکہ گیٹ وے کی روٹنگ اور ایپلیکیشن کی اجازتیں دونوں پورے LAN سے تنگ ہوں۔
ڈیزائن کو مکمل قرار دینے سے پہلے چار چیزیں تصدیق کریں: سننے والا کس پتے سے بندھا ہے، کون سا قاعدہ یا راستہ پیکٹ اندر لیتا ہے، کلائنٹ کے اصل پتے سے واپسی کا راستہ کام کرتا ہے یا نہیں، اور بڑے پے لوڈ MTU پار کرتے ہیں یا نہیں۔ ان میں سے ہر ایک کے لیے اوپر کمانڈ ہے، اور کسی کا بھی جواب «محفوظ» لفظ یا بینڈوڈتھ چارٹ نہیں دیتا۔