2 سیکنڈ میں Docker میں OpenVPN لانچ کریں۔

ہیلو، خابروسک کے رہائشی! کیا آپ کو کبھی ایسی صورتحال کا سامنا کرنا پڑا ہے جب آپ واقعی کسی دوسرے شہر، ملک یا براعظم میں لے جانا چاہتے تھے؟ مجھے اس کی ضرورت اکثر پڑتی ہے، اس لیے میرا اپنا VPN سرور رکھنے کا موقع، جو کہیں بھی، چند سیکنڈ میں لانچ کیا جا سکتا ہے، کافی ضروری تھا۔ اس مضمون میں میں اپنے پروجیکٹ کے بارے میں بات کرنا چاہتا ہوں، جس کا تصور میں نے اس وقت کیا ایک ریڈی میڈ حل تلاش کر رہے ہیں، اس معاملے میں Docker ایک ایسی تصویر جو آپ کو ایک OpenVPN سرور کو فوری طور پر ترتیب دینے کی اجازت دے گی، جس میں کم از کم ترتیبات اور قابل قبول سطح کی حفاظت ہو گی۔

2 سیکنڈ میں Docker میں OpenVPN لانچ کریں۔

پس منظر

کسی بھی مشین پر سروس چلانے کی اہلیت - خواہ وہ فزیکل سرور ہو، یا ورچوئل پرائیویٹ سرور، یا یہاں تک کہ کسی دوسرے کنٹینر مینجمنٹ سسٹم کے اندر کنٹینر کی جگہ - اہم تھی۔ میری نظر فوراً ڈوکر پر پڑی۔ سب سے پہلے، یہ سروس مقبولیت حاصل کر رہی ہے، اور اس وجہ سے زیادہ سے زیادہ فراہم کنندگان اس کی پہلے سے تنصیب کے ساتھ تیار حل فراہم کر رہے ہیں؛ دوم، تصاویر کا ایک مرکزی ذخیرہ ہے جہاں سے آپ ٹرمینل میں ایک کمانڈ کا استعمال کرکے سروس کو ڈاؤن لوڈ اور چلا سکتے ہیں۔ مجھے یہ خیال آیا کہ اس طرح کا پروجیکٹ پہلے سے موجود ہونا چاہئے اور میں نے سخت تلاش کی۔ لیکن زیادہ تر پروجیکٹس جو مجھے ملے وہ یا تو بہت بوجھل تھے (آپ کو مستقل ڈیٹا اسٹوریج کے لیے ایک کنٹینر بنانا پڑتا تھا اور مختلف پیرامیٹرز کے ساتھ ایپلی کیشن کے ساتھ کنٹینر کو کئی بار لانچ کرنا پڑتا تھا)، یا سمجھدار دستاویزات کے بغیر، یا مکمل طور پر ترک کر دیا جاتا تھا۔ کچھ بھی قابل قبول نہیں تھا۔ میں نے آپ کے پروجیکٹ پر کام شروع کر دیا ہے۔ دستاویزات کا مطالعہ کرنے، کوڈ لکھنے اور ڈیبگ کرنے سے پہلے نیند کی راتیں تھیں، لیکن بالآخر میری سروس نے دن کی روشنی دیکھی اور راؤٹر کے مونوکروم ایل ای ڈی پینل کے تمام رنگوں سے چمکنا شروع کر دیا۔ لہذا، میں آپ سے محبت اور احسان کرنے کے لئے کہتا ہوں - Docker-OpenVPN. یہاں تک کہ میں ایک لوگو لے کر آیا ہوں (اوپر، کٹ سے پہلے)، لیکن اس کا سختی سے فیصلہ نہ کریں، کیونکہ میں ڈیزائنر نہیں ہوں (اب)۔ جب میں نے اس پروجیکٹ کو لاگو کیا، میں نے تعیناتی کی رفتار کو ترجیح دی، کم از کم ترتیبات اور سیکیورٹی کی قابل قبول سطح۔ آزمائش اور غلطی کے ذریعے، میں نے ان معیارات کا بہترین توازن پایا، تاہم، کچھ جگہوں پر مجھے سیکیورٹی کی خاطر تعیناتی کی رفتار کو قربان کرنا پڑا، اور مجھے کم از کم ترتیبات کے لیے پورٹیبلٹی کے لیے ادائیگی کرنا پڑی: موجودہ ترتیب میں، ایک ایک بار ایک سرور پر بننے والے کنٹینر کو دوسرے سرور پر منتقل اور لانچ نہیں کیا جا سکتا۔ مثال کے طور پر، سروس شروع ہونے پر تمام کلائنٹ اور سرور سرٹیفکیٹ تیار ہوتے ہیں اور اس میں تقریباً 2 سیکنڈ لگیں گے۔ تاہم، ہیل مین ڈیفی فائل کی جنریشن کو تعمیراتی وقت میں لینا پڑا: یہ ڈوکر امیج کی تعمیر کے دوران بنتی ہے اور 10 منٹ تک چل سکتی ہے۔ میں واقعی میں معزز کمیونٹی سے اس طرح کے حل کا سیکیورٹی آڈٹ حاصل کرنا چاہوں گا۔

لانچ کریں۔

سروس شروع کرنے کے لیے ہمیں کئی چیزوں کی ضرورت ہے:

  1. سرور: جسمانی یا ورچوئل۔ نظریاتی طور پر ڈوکر کے اندر ڈوکر موڈ میں چلنا ممکن ہے، لیکن میں نے اس آپشن کا وسیع پیمانے پر تجربہ نہیں کیا ہے۔
  2. دراصل ڈوکر۔ بہت سے ہوسٹنگ فراہم کرنے والے ڈوکر آن بورڈ کے ساتھ تیار حل فراہم کرتے ہیں۔
  3. عوامی IP پتہ۔

اگر تمام تفصیلات اپنی جگہ پر ہیں، تو ہمیں بس اپنے سرور کے کنسول میں درج ذیل کمانڈ کو چلانا ہے۔

docker run --cap-add=NET_ADMIN 
-it -p 1194:1194/udp -p 80:8080/tcp 
-e HOST_ADDR=$(curl -s https://api.ipify.org) 
alekslitvinenk/openvpn

ایک دھیان رکھنے والے قاری نے محسوس کیا ہوگا کہ سرور کا IP پتہ خود بخود استعمال کرتے ہوئے طے ہوتا ہے۔ ipify.org. اگر کسی وجہ سے یہ کام نہیں کرتا ہے، تو آپ ایڈریس کو دستی طور پر بتا سکتے ہیں۔ اگر پچھلے تمام مراحل درست طریقے سے مکمل ہوئے ہیں، تو ہمیں کنسول میں کچھ ایسا ہی نظر آنا چاہیے:

Sun Jun  9 08:56:11 2019 Initialization Sequence Completed
Sun Jun  9 08:56:12 2019 Client.ovpn file has been generated
Sun Jun  9 08:56:12 2019 Config server started, download your client.ovpn config at http://example.com/
Sun Jun  9 08:56:12 2019 NOTE: After you download you client config, http server will be shut down!

ہم مقصد کے قریب ہیں: اب ہمیں کاپی کرنے کی ضرورت ہے۔ example.com (آپ کے معاملے میں یہ آپ کے سرور کا پتہ ہوگا) اور اسے اپنے براؤزر کے ایڈریس بار میں چسپاں کریں۔ آپ کے Enter دبانے کے بعد، client.ovpn فائل ڈاؤن لوڈ ہو جائے گی، اور HTTP سرور خود فراموشی میں غائب ہو جائے گا۔ اگر یہ حل شک میں ہے تو، آپ مندرجہ ذیل چال استعمال کرسکتے ہیں: پچھلی کمانڈ چلائیں اور جھنڈے شامل کریں۔ zp اور پاس ورڈ. اب، اگر آپ پیدا کردہ لنک کو براؤزر ونڈو میں چسپاں کرتے ہیں، تو آپ کو پاس ورڈ کے ساتھ ایک زپ آرکائیو ملے گا۔ ایک بار جب آپ کے پاس کلائنٹ کنفیگریشن فائل ہو جائے تو، آپ کسی بھی موزوں کلائنٹ کو استعمال کر سکتے ہیں۔ میں Tunnelblick for Mac استعمال کرتا ہوں۔

ویڈیو ٹیوٹوریل

اس ویڈیو ٹیوٹوریل میں DigitalOcean پر سروس کی تعیناتی کے لیے تفصیلی ہدایات ہیں۔

PS اگر آپ کو یہ پروجیکٹ مفید لگتا ہے، تو براہ کرم اسے GitHub پر ایک ستارہ دیں، اسے فورک کریں اور اپنے دوستوں کو بتائیں۔ شراکت داروں اور سیکیورٹی آڈٹ کا بھی وسیع پیمانے پر خیرمقدم کیا جاتا ہے۔پی پی ایس اگر یہ مضمون ہیبر پر ختم ہوتا ہے، تو میں اگلا لکھنے کا ارادہ رکھتا ہوں کہ میں نے ڈوکر-اِن-ڈوکر اور ڈوکر-اِن-ڈکر-اِن ڈوکر کو کیسے لانچ کیا، میں نے یہ کیوں کیا اور اس سے کیا نکلا۔
EDIT1:

  1. اشاعت میں غلطیاں درست کی گئیں،
  2. تبصروں کا جواب دیتے ہوئے، میں نے یہ معلومات یہاں ڈالنے کا فیصلہ کیا: iptables کے ساتھ کام کرنے کے لیے -privileged پرچم کی ضرورت ہے۔

EDIT2:

  1. امیج لانچ کمانڈ کو بہتر بنایا گیا: اب اسے مراعات یافتہ پرچم کی ضرورت نہیں ہے۔
  2. روسی زبان کی ویڈیو گائیڈ میں ایک لنک شامل کیا گیا: youtu.be/A8zvrHsT9A0

ماخذ: www.habr.com

نیا تبصرہ شامل کریں