با WireGuard و Netmaker VPN دسترسی از راه دور خود را به AWS بسازید

معرفی
یک حساب AWS معمولاً از چندین VPC و زیرشبکه خصوصی تشکیل شده است. ممکن است بخواهید دسترسی از راه دور به زیرشبکه های خصوصی یا نقاط پایانی در AWS بدون افشای عمومی آنها ارائه دهید.
AWS راه حل VPN دسترسی از راه دور خود را به نام “AWS Client VPN” دارد. با این حال، این می تواند غیر ضروری گران باشد. با چندین کاربر و نقاط پایانی، می توانید به راحتی صدها دلار در ماه خرج کنید.
خوشبختانه، ساخت راه حل شخصی خود با استفاده از WireGuard® و Netmaker به صورت رایگان بسیار آسان است. این مراحل را دنبال کنید تا حدود 30 دقیقه دیگر آماده باشید.
در پایان این آموزش، یک دستگاه دروازه در حال اجرا بر روی AWS خواهید داشت که می توانید به راحتی کلاینت های WireGuard را برای دسترسی به منابع خصوصی AWS به آن متصل کنید.
مشکل
در سناریوی مثال ما، Rocket Chat در حال اجرا بر روی AWS است که فقط از طریق آدرس VPC (172.31.95.26) قابل دسترسی است. ما می خواهیم یک توسعه دهنده بتواند با استفاده از این آدرس وارد Rocket Chat شود.
برای راهاندازی شما، این میتواند هر آیپی یا زیرشبکه خصوصی در AWS باشد، تا زمانی که آدرسها از دستگاه دروازه در دسترس هستند (نمونه EC2).
قسمت 1: استقرار نمونه Gateway
دستگاهی را در AWS انتخاب کنید تا به عنوان دروازه VPN شما عمل کند. این می تواند یک کانتینر یا نمونه EC2 باشد، اما باید مبتنی بر لینوکس باشد. می توانید از یک نمونه موجود استفاده کنید، اما در صورت استقرار یک نمونه جدید، توصیه می کنیم از آخرین اوبونتو استفاده کنید (22.04 تا این لحظه). شما می توانید از t2.micro استفاده کنید، زیرا به منابع نیاز ندارد.
این دستگاه باید به دستگاهها یا زیرشبکههای هدف دسترسی داشته باشد، بنابراین مطمئن شوید که در منطقه دسترسی صحیح مستقر شده است و تنظیمات امنیتی دستگاههای هدف اجازه ترافیک از دستگاه دروازه را میدهد.
در نهایت، دستگاه باید به صورت عمومی از طریق پورت WireGuard در دسترس باشد، که به طور پیش فرض برای Netmaker 51821 است، بنابراین 51821/udp را به 0.0.0.0/0 در تنظیمات امنیتی باز کنید و مطمئن شوید که یک IP قابل دسترسی برای عموم دارد (مثلاً Elastic IP) نشانی).
الزامات دروازه:
- نوع وسیله: نمونه یا کانتینر EC2 (نمونه EC2 توصیه می شود)
- سیستم عامل: لینوکس (اوبونتو 22.04 توصیه می شود)
- اندازه: هر (t2.micro توصیه می شود)
- تنظیمات شبکه: باید یک نقطه پایانی عمومی داشته باشد و 51821/udp را به صورت عمومی نمایش دهد
قسمت 2: راه اندازی Gateway با Netmaker
اکنون که یک دستگاه دروازه مناسب را پیکربندی کرده اید، باید این دستگاه را به Netmaker اضافه کنید. میتوانید Netmaker را خود میزبانی کنید، اما برای شروع سریع (و رایگان)، به سادگی در https://app.netmaker.io ثبت نام کنید.
به طور پیش فرض، حساب شما دارای یک شبکه مجازی به نام «netmaker» و یک کلید دسترسی است که «netmaker» نیز نامیده می شود. شما باید از اینها برای باقیمانده آموزش استفاده کنید، اما توجه داشته باشید که در مثال و اسکرین شات های ما، نام آنها “rocket-chat” است.
روی شبکه کلیک کنید، روی “hosts” کلیک کنید و سپس روی دکمه “Add a new host” کلیک کنید:
مراحل افزودن گیت وی به نت میکر را با دانلود و نصب نت کلاینت و پیوستن به شبکه دنبال کنید.
هنگامی که دستگاه در لیست های “میزبان” شما قابل مشاهده است، می توانید به پیکربندی دستگاه به عنوان دروازه ادامه دهید.
قسمت 3: پیکربندی Egress Gateway
بر روی “Egress” و سپس “Create Egress” کلیک کنید. دستگاه دروازه را به عنوان خروجی به آدرس IP هدف در AWS تنظیم می کنیم. در مثال ما این 172.31.95.26/32 است، اما در صورت لزوم آن را اصلاح کنید و در صورت لزوم محدوده های متعددی را ارائه دهید.
دستگاه اکنون آماده ارائه ترافیک به مقصد مورد نظر است.
قسمت 4: WireGuard Client Gateway را پیکربندی کنید
آخرین مرحله ارائه دسترسی از راه دور از طریق “دروازه مشتری” است. Client Gateway به سادگی به شما امکان می دهد فایل های پیکربندی WireGuard را ایجاد کنید که از طریق دستگاه دروازه و به شبکه هدایت می شوند. بنابراین، پس از پیکربندی، کاربر میتواند از طریق Client Gateway به محدوده Egress برسد.
دستگاه ما در AWS هم به عنوان «دروازه خروج» و هم «دروازه کلاینت» عمل می کند، به طوری که می تواند ترافیک WireGuard را بپذیرد و آن را به زیرشبکه خصوصی ارسال کند.
روی “Clients” و سپس “Create Client” کلیک کنید. از آنجایی که هنوز دروازه کلاینت ندارید، از شما می خواهد که دستگاهی را انتخاب کنید تا به عنوان دروازه عمل کند، و اولین کلاینت شما (فایل پیکربندی WireGuard) را در بالای این دروازه ایجاد می کند.
اکنون می توانید این فایل پیکربندی را دانلود کرده و با استفاده از هر کلاینت استاندارد WireGuard اجرا کنید.
اگر همه چیز به درستی انجام شده باشد، آدرس خصوصی اکنون باید از دستگاه محلی قابل دسترسی باشد:
دسترسی به نمونه خصوصی Rocket Chat در مرورگر
میتوانید در صورت لزوم، کلاینتهای اضافی ایجاد کنید، به طوری که دروازه شما دسترسی کل تیم را فراهم میکند.
نتیجه
در این آموزش ما:
- AWS را برای دروازه دسترسی از راه دور پیکربندی کرد
- یک نمونه EC2 را پیکربندی کرد تا به عنوان دروازه دسترسی از راه دور عمل کند
- برای دسترسی به AWS از طریق دروازه، یک فایل پیکربندی WireGuard را به صورت محلی ایجاد و اجرا کرد.
کارهای بیشتری می توانید با Netmaker و WireGuard انجام دهید، بنابراین امیدوارم این اولین تجربه خوبی بوده باشد. مراحل فوق نیز به صورت کلیکی در لینک زیر موجود است: https://www.netmaker.io/tutorials#remote-access-gateway
اگر سوال یا بازخوردی دارید، در نظرات به من بگویید!