راه اندازی VPN شخصی SSTP با میکروتیک

چرا VPN شخصی روی SSTP؟زیرا L2TP را هم از بیخ می بندند! SSTP بدلیل ذات مشابه HTTPS و فعالیت عموماً روی پورت 443 از روی پروتکل قابل بستن ساده نیست و استفاده از تکنیک های DPI هم از نظر پردازشی در این حجم کلان از ترافیک خیلی عملیاتی بنظر نمی رسد. (البته براحتی ممکن است، خیلی عملیاتی نیست.)در حال حاضر روی ویندوز 10 می توانید بسادگی از SSTP استفاده کنید ، روی لینوکس و اندروید هم ظاهراً بسته کلاینت جانبی دارد.البته در میکروتیک می توانید اتصال site2site برقرار کنید و از این طریق ترافیک اینترنت site1 را از طریق site2 رد کنید.در اینجا ما با اجاره یک vps میکروتیک، سرویس را راه اندازی می کنیم و ساخت کانکشن و نصب گواهینامه را هم روی ویندوز 10 صحبت می کنیم.چرا نیاز به VPN داریم؟1- تحریم : در کار و پژوهش روزانه مثلاً برای یک pull ساده داکر یا حتی دانلود java یا حتی ورود به پنل در بسیاری از دیتاسنترهای معتبر دنیا نمی توانید IP ایرانی داشته باشید و بلافاصله که IP ایرانی ثبت شود اکانت شما را معلق می کنند تا مدارک هویتی غیرایرانی بودن ارائه دهید. حتی دسترسی به بسیاری از مستندات و راهنماهای فنی و آموزشی نیز با IP ایرانی میسر نیست.2- اشتباهات فیلترینگ : برای هر موضوعی که سرچ می کنید از هر 10 نتیجه 5تاش یا خودش بدون ربط فیلتره یا جایی که عکس ها و فیلم هاش را روی آنجا آپلود کرده فیلتره و صفحه کامل باز نمی شود یا مثلاً یوتیوب واقعاً سایت آموزشی مفیدی است که فیلتره و ...چرا این مقاله مصداق محتوی مجرمانه نیست؟زیرا واقعاً برای استفاده کاری و پژوهشی جدی از اینترنت لازم است.این روش هرچند در راه اندازی ساده است اما برای ساخت و فروش کانکشن سخت تر از روش های متداول VPNفروش ها است و ما هم اینجا اکانتینگ و RADIUS و ... را توضیح نمی دهیم و روی لینوکس و اندروید و IOS هم بصورت پیش فرض هنوز امکان ساخت کانکشن SSTP وجود ندارد و ...عملاً همان استفاده محدود شخصی و گروهی به مقاصد کاری و پژوهشی را پوشش می دهد و اگر قصد کسی خرید و فروش VPN باشد راه ها و سرویس های ساده تری را استفاده می کند.ما آموزش خرید و فروش VPN ندادیم ، راجع به یک سرویس فنی متداول برای مخاطبین عمدتاً فنی و در مورد یک ابزار و راه حل فنی متداول صحبت می کنیم که هزار تا کاربرد دیگر هم دارد. مثلاً یکی از متداول ترین سناریوهای استفاده متصل کردن کاربران از خارج از شبکه (اینترنت) به شبکه داخل است.https://wiki.mikrotik.com/wiki/Manual:Interface/SSTP1- تهیه سرور مجازی میکروتیک :خرید سرور مجازی میکروتیک :همین عبارت " سرور مجازی میکروتیک " را سرچ بفرمایید فروشندگان متعدد را پیدا خواهید کرد. یکی را انتخاب کنید و یک سرور مجازی روی یکی از دیتاسنترهای معتبر خارج از کشور از وی بگیرید.برای استفاده متداول 3-4 نفر همان ارزان ترین پلن ها کفایت می کند. اما بخصوص با منابع سخت افزاری محدود و روی ماشین مجازی؛ عمل نکردن سرویس ها و قوانین تا یکبار disable/enable کردن آن ها یا گیر کردن زیر بار ترافیک زیاد روی میکروتیک دور از انتظار نیست.اگر برای ترافیک زیاد یا خدمات site2site استفاده می کنید در منابع سخت افزاری خساست نکنید.اتصال به سرور مجازی میکروتیک :برای اتصال به میکروتیک از winbox استفاده کنید. آدرس، نام کاربری و کلمه عبور را بزنید و وصل می شود.تنظیمات اولیه سرور مجازی میکروتیک :معمولاً ساعت و تاریخ میکروتیکی که می خرید درست است، اگر نبود از منوی سمت چپ system و بعد clock آن را درست کنید. به ساعت واقعی همان موقعیت جغرافیایی تنظیم نمایید.همچنین سرویس های غیرضروری را از منوی سمت چپ IP -> Services با دوبار کلیک کردن روی نام آن ها و زدن دکمه disable غیرفعال نمایید.2- تنظیمات فایروال :من نمی خواهم میکروتیک من بجز منابع و سرویس های لازم به هیچ چیز دیگر جواب بدهد، بنابراین این قوانین را تنظیم کرده ام و هر کدام را به ترتیب خدمتتون توضیح می دهم :قانون 0 : این قانون بصورت دینامیک و با اتصال کلاینت sstp بروزرسانی می شود و src Address آن با آخرین IP معتبری که کاربر از خدمات دهنده اینترنت خود دریافت کرده جایگزین می گردد. وارد بحث پروتکل و زنجیره های فایروال و تونل و ... اینجا نمی شویم، در این دیوایس و این سناریو قوانین شما روی آخرین IP معتبر public که کاربر از آن به اینترنت وصل است اعمال می گردند.در این سناریو برای ترافیک DNS به این قانون نیاز داریم و اگر فقط هم DNS را بعنوان پروتکل انتخاب می کردیم کار ما انجام می شد اما من اینجا کلاً برای همه ترافیک از این مبداء ، وروردی به فایروال را باز می کنم.قوانین 1 و 2 : در اینجا دسترسی به پورت winbox و پورت اتصال sstp را برای همه باز کرده ایم، وقتی کلاینتی به sstp تونل زد ، دیگر عملاً در فایروال همان قانون 0 روی آن اعمال می گردد و این دو فقط برای قبل از اتصال کاربر به تونل کاربرد دارند.زیرا پس از اتصال IP کاربر در قانون 0 بروزرسانی می شود.قوانین 3 و 4 و 5 : وقتی سرویس DNS را فعال کردید و گفتید از این DNS ها کوئری بگیرد باید ترافیک ورودی آن ها به روتر را برای پاسخ استعلام DNS باز کنید. می توانستم اینها و بقیه را در یک address list اضافه کنم و یکدفعه آن را معرفی نمایم اما اینجا برای ساده تر شدن مراحل و بحث ، 3 ردیف مجزا تعریف کرده ام.قانون 6 : از خود فایروال به بیرون همه ترافیک آزاد است.قانون 7 : ورودی هر ترافیکی به فایروال بجز موارد تعریف شده در بالا مسدود است.ترتیب قوانین 6 و 7 می تواند با هم عوض شود. همانطور که مستحضر هستید در فایروال ها قوانین براساس اولویت از بالا به پایین (از شماره 0 به بالا) بررسی می شوند و اگر ترافیکی با قانونی مطابق بود براساس آن عمل می شود و قوانین در اولویت بعد بررسی نخواهند شد.3- تنظیمات DNS :قضیه DNS یکی از گلوگاه های فیلترینگ است. خود DNS یک پروتکل textی ساده است که به هزار روش می توان محتوی آن را فیلتر کرد یا با یک destination NAT ساده می توان پرس و جوی DNS کاربران از هر جایی را به جای دیگر فرستاد و پاسخ داد.یعنی ترافیک پرس و جوی DNS هم قابل خواندن و هم قابل hijack کردن است!برای عبور از این قضیه، ما روی میکروتیک خود یک سرور DNS راه اندازی می کنیم که کلاینت ها پس از اتصال به تونل از آن استفاده کنند.در این سناریو در کانکشنی هم که در کلاینت می سازیم metric را عوض می کنیم تا اولویت بالاتری داشته باشد و پس از برقراری تونل همه ترافیک کاربر (از جمله DNS) از داخل تونل عبور کند.برای راه اندازی سرویس DNS در میکروتیک از منوی سمت چپ IP->DNS را انتخاب بفرمایید و این تنظیمات را اعمال کنید.در حالت عادی اگر اون تیک Allow Remote Request را بزنید و هیچ قانونی در فایروال اعمال نکرده باشید ، یک DNS سرور باز راه اندازی کرده اید که مثلاً برای حملات ردسرویس مثل DNS amplification از آن استفاده خواهند کرد! نباید DNS باز راه اندازی کنید!به همین دلیل دسترسی به سرویس DNS را در فایروال برای همه باز نکردیم.4- تنظیمات Certificate :صدور گواهینامه های لازم :یک گواهینامه CA و یک گواهینامه Serverی که با آن CA امضاء شده باشد می خواهیم.سپس گواهینامه CA را در ویندوز نصب می کنیم، ویندوز در هنگام اتصال sstp به server معتبر بودن گواهینامه Server را براساس CA بررسی می کند و برای رمزنگاری ارتباط از آن استفاده خواهد کرد.می توانیم گواهینامه معتبر استفاده کنیم که دیگر CA را در ویندوز کاربران نصب نکنیم اما برای ساده تر شدن بحث اینجا به آن نمی پردازیم.4-1 : ساخت گواهینامه CA :از منوی سمت چپ system -> certificate را بزنید.روی علامت + کلیک کنید تا یک گواهینامه جدید بسازید. name و common name را وارد کرده و در key usage دو گزینه مشخص شده را تیک بزنید.دقت کنید جای Common Name آدرس IP معتبر روتر را وارد کرده ام. اگر اینجا IP نزنیم و یک نام یا دامنه بزنیم ، بعداً باید در فایل hosts ویندوز یا dns server شبکه آن آدرس را به آن ip تعریف کنیم. بنابراین جای Common Name همان IP Valid میکروتیک را که کاربران VPN به آن وصل می شوند وارد می کنیم.پس از زدن apply و ساخت گواهینامه باید روی دکمه sign بزنید تا آن را امضاء کنید.در اینجا نیز برای CA CRL Host آدرس IP معتبر روتر را وارد نمایید.دکمه start را بزنید و وقتی تمام شد close و ok کنید تا گواهینامه server را بسازیم.4-2 : ساخت گواهینامه Server :مجدداً روی + بزنید و Name و Common Name را وارد کنید و در زبانه Key Usage سه گزینه مشخص شده را تیک بزنید.مجدداً گواهینامه را sign کنید اما اینبار فقط CA را انتخاب نمایید.در نهایت که start کردید و وقتی تمام شد و ok کردید و پنجره بسته شد، در لیست گواهینامه ها روی گواهینامه server دوبار کلیک کنید و تیک trusted را بزنید و مجدداً ok کنید.حالا در لیست certificateهای شما دو گواهینامه CA و Server هست.4-3 : نصب گواهینامه در windows 10 :ابتدا گواهینامه CA را که ساخته اید باید export بگیرید و دانلود کنید.پس از export گواهینامه در لیست فایل ها اضافه می شود. من برای دانلود روی آن کلیک کرده و copy را می زنم و روی دسکتاپ paste می کنم.برای نصب روی ویندوز، می توانید روی فایل گواهینامه راست کلیک کرده و install را بزنید و در trusted root certification authorities آن را نصب کنید.یا در run بزنید certlm.msc و در پنجره باز شده پوشه trusted root certificates را باز کنید و به certificates بروید و از منوی بالا action -> all tasks -> import را انتخاب نمایید.در هر روش اگر نصب گواهینامه درست انجام شود باید در لیست سمت راست آن را ببینید.5- تنظیمات PPP :ابتدا از منو IP -> Pool را انتخاب کنید تا رنج IP هایی که برای تونل SSTP استفاده می کنید را تعریف کنید. در تصویر واضح است.سپس از منوی سمت چپ روی PPP کلیک کنید تا پنجره آن باز شود.تنظیم profile :در زبانه profile ، من یک پروفایل جدید نساختم و همان default-encrypted را تغییر دادم. زبانه اول و آخر را باید بشرح تصویر پیوست تنظیم نمایید.کار اسکریپت استفاده شده این است که وقتی کاربر sstp1 که در مرحله بعد تنظیم می کنید به سرور متصل شد IP پابلیک آن را در قانون شماره 0 فایروال که قبلاً ذکر کردیم اضافه کند.ip firewall filter set number=0 src-address [:put [/ppp active get value-name=caller-id [find where name=sstp1 ]]]در اینجا من برای یک کاربر و بدون address list و ... اینکار را انجام داده ام، ممکن است بسته به سناریو لازم باشد تغییراتی اعمال نمایید.تنظیم secret و ساخت کاربر :در زبانه secret می توانید با زدن + کاربر بسازید و profileی را که ساختید به آن کاربر اختصاص دهید. در تصویر واضح است.راه اندازی SSTP Server :اکنون در زبانه interface دکمه SSTP Server را بزنید و تنظیمات را مطابق تصویر انجام دهید و تیک enable را نیز زده و ok کنید.در ویکی میکروتیک نوشته اگر تیک Force AES را بزنید ممکن است روی برخی ویندوزها کار نکند، ما روی ویندوز 10 زدیم و کار کرد!اطلاعات بیشتر را در ویکی میکروتیک ببینید.6- اشتراک گذاری اینترنت برای کاربران تونل :مسیر IP -> Firewall -> NAT را رفته و + بزنید.در اینجا چون IP Public سرور مشخص و ثابت است می توان src-nat تعریف کرد یا رنج IP را مشخص تر تعریف کرد و ...من به این مدل masquerade کردم. بخاطر داشته باشید رنج 10.1.1.0 را (از آدرس 10 تا 50) در IP Pool تعریف کردیم و در profile گفتیم از این رنج برای این کاربران و سرویس آدرس دهی شود.7- ساخت کانکشن و اتصال :یک روش همان ساختن vpn connection در ویندوز است که تشریف ببرید در Setting و Network & Internet و ... یک کانکشن جدید بسازید و ...کاری که من معمولاً می کنم این است که یک فایل pbk. می سازم. یعنی Right Click -> New -> Text File و بعد پسوند فایل را به pbk تغییر می دهم.( قبلاً البته در folder option تیک hide extensions را برداشته اید که بتوانید نوع فایل ها را دستی تغییر دهید.)فایل با فرمت pbk روی ویندوز یک کانکشن vpn به شما می دهد. در حقیقت فایل text است. میتوانید پس از تنظیمات با یک تکست ادیتور باز کنید و تغییر دهید و فایل را بعنوان کانکشن برای مثلاً سایر همکاران که استفاده کاری و پژوهشی دارند ارسال بفرمایید.به هر روش که کانکشن VPN را روی ویندوز 10 خود ساختید وارد بخش properties بشوید تا تنظیمات را انجام دهید.تنظیمات کانکشن SSTP :وارد properties کانکشن خود شده و این تنظیمات را انجام دهید.در زبانه Networking برای حل قضیه DNS که قبلاً صحبت کردیم تنظیمات ذیل را اعمال نمایید.اکنون VPN شما آماده است و Connect بزنید وصل می شود و مثلاً در یکی از سایت های ذیل می توانید چک کنید ترافیک شما از vps میکروتیک خارج شده است و IP آن را نمایش می دهد.ip-lookup.netwww.whatismyip.com/my-ip-information/myip.comهر وقت هم خواستید قطع کنید دوباره روی آن کلیک کرده و Hang Up را بزنید.اگر طریق متداول ویندوز کانکشن ساخته باشید هم که مثل وایرلس روی آیکون شبکه بزنید لیست کانکشن ها و دکمه connect/disconnect دارد.نکته : گاهی اوقات پس از چند لحظه از اتصال کاربر، اینترنت وی قطع می شود یا مشکلات از این دست پیش می آید. برای حل مشکل بصورت دستی SSTP Server Binding را با زدن - پاک کنید و یکبار هم تیک enable را در SSTP Server بردارید و apply کنید و دوباره بزارید و ok کنید! میکروتیک است دیگر!حالا ممکنه بفرمایید من با 20هزارتومان یک VPN Cisco Connect میگیرم چند کاربره ، روی موبایل و دسکتاپ و ... هم راحت کار می کنه، چند تا هم سرور دارد و این همه کار هم ندارد و هزینه اش هم از این کمتر است!ابتدا هم عرض کردم ما راجع به یک راه حل فنی برای استفاده های خودش صحبت می کنیم. برای عبور متداول از فیلترینگ راه های ساده و ارزان تر زیاد است.