ممکن است در شبکهای باشید که امن نیست، یا تنظیمات دیوار آتشش بسیار محدود کننده است. تصور کنید شما به همچین شبکهای متصل هستید و میخواهید به وبسایتی دسترسی داشته باشید، همچنین نمیخواهید کسی ترافیک شما را ببینید. در این مقاله نحوه راهاندازی SOCKS proxy روی لینوکس و مک را میخوانیم که یکی از راههای مفید برای مرور امن وب و عبور از سانسور اینترنت است.
هرچند بهترین گزینه استفاده از VPN است، اما ممکن است به دلایل مختلف از جمله دسترسی نداشتن به سرور VPN از شبکه حال حاضر، یا نداشتن کلاینت مورد نیاز و دلایل دیگر قادر به استفاده از آن نباشید. اگر فقط میخواهید ترافیک مرورگرتان را امن منتقل کنید، راه جایگزین سادهای به نام SOCKS proxy وجود دارد. در مقاله «تفاوت VPN و پراکسی» میتوانید تفاوتهای پراکسی و VPN را بخوانید.
[box type=”tip”]یکی از راههای عبور از سانسور اینترنت برقراری تونل SSH بین چندین سرور است. [/box]
SOCKS proxy یک تونل SSH است که در آن اپلیکیشن مشخصی ترافیک خودش را از تونل به سمت سرور پراکسی هدایت میکند، سپس سرور پراکسی ترافیک را به سمت اینترنت عمومی هدایت میکند. سرور پراکسی بین کلاینت و شبکه اینترنت قرار میگیرد. تصور کنید دستگاه شما در شبکهای است که به اینترنت دسترسی ندارد، اما سروری دارید که به اینترنت (هرچند محدود شده) دسترسی دارد و همچنین به آن سرور دسترسی ssh دارید، در این حالت میتوانید با استفاده از SOCKS proxy به اینترنت آن سرور روی مرورگرتان دسترسی داشته باشید.
[box type=”tip”] راهاندازی تونل روی سیستم عامل ویندوز : تنظیم ssh tunnel روی Putty برای اتصال به اینترنت [/box]
راه اندازی تونل روی سیستم عامل لینوکس و مک
نیازمندیها :
سرور لینوکس با دسترسی SSH
ترمینال
مرورگر فایرفاکس
[box type=”tip”]۱۰ تا از بهترین وب پراکسیهای رایگان سال ۲۰۱۹ [/box]
روی دستگاهتان یک جفت کلید SSH بسازید. میتوانید از دستور زیر استفاده کنید:
ssh-keygen -t rsa
سپس آن را ذخیره کنید و میتوانید برای امنیت بیشتر روی آن یک کلمهعبور یا همان Passphrase هم قرار دهید. کلید عمومی را روی سرورتان کپی کنید. کلید خصوصی روی دستگاهتان میماند، علاوه بر این بهتر است در تنظیمات sshd_config روی سرور گزینه PermitRootLogin را روی without-password تنظیم کنید تا برای احراز هویت تنها از کلید استفاده شود.
اگر این کلید را نسازید، باید با پسورد احراز هویت صورت گیرد. بدین معنی که برای احراز هویت اجباری برای ساخت کلید نیست، اما احراز هویت با کلید هم امنتر و هم اتصال آن راحتتراست، زیرا در هر بار راهاندازی تونل مجبور به وارد کردن رمزعبور نیستید.
سپس ترمینال را باز کنید و دستور زیر را برای برقراری تونل ssh وارد کنید. روی سیستم عامل مک ترمینال را در مسیر Applications > Utilities پیدا کنید.
ssh -D 8123 -f -C -q -N root@serverIP
توضیح آرگومانهای دستور بالا :
D- : به SSH میگوید که یک تونل SOCKS روی درگاه بخصوصی میخواهم (برای درگاه یک عدد دلخواه بین 1025-65536 انتخاب کنید.)
f- : فرایند یا پروسس را به بکگراند میبرد.
C- : داده را قبل از انتقال فشردهسازی میکند.
q- : از حالت quiet استفاده میکند
N- : به SSH میگوید که بعد از راهاندازی تونل، هیچ دستوری ارسال نخواهد شد.
فراموش نکنید که به جای serverIP در دستور بالا، IP سرور و یا دامنه آن را وارد کنید.
با فشردن دکمه Enter اگر همه چیز درست باشد بدون هیچ پیغام شکست یا موفقیتی به خط بعدی منتقل میشوید. اگر از کلید برای احراز هویت استفاده نکرده باشید، از شما رمزعبور سرور را میخواهد آن را وارد کنید.
برای تائید اینکه تونل با موفقیت راهاندازی شده است، دستور زیر را وارد کنید:
ps aux | grep ssh
خروجی باید چیزی شبیه خط زیر باشد:
root 14345 0.0 0.0 2462228 452 ?? Ss 6:43AM 0:00.00 ssh -D 8123 -f -C -q -N [email protected]
اکنون میتوانید ترمینال را ببندید، زیرا از آرگومان f- استفاده کردیم که این فرایند را در پسزمینه اجرا نگاه میدارد.
تنظیم مرورگر فایرفاکس :
- از منوی مرورگر روی گزینه Preferences یا Options کلیک کنید.
- سپس به تب Advanced بروید.
- سپس تب Network را انتخاب و از بخش Connection روی Settings کلیک کنید.
از پنجره باز شده روی گزینه Manual proxy configuration کلیک کنید.
در قسمت SOCKS Host آدرس IP داخلیتان (۱۲۷.۰.۰.۱) را بنویسید و در سمت راست در قسمت درگاهها، درگاهی که هنگام تنظیم ssh تونل وارد کرده بودید (در مثال ما ۸۱۲۳) را وارد کنید.
مطمئن شوید که گزینه Enable DNS over HTTPS را تیک و سپس روی OK کلیک کنید.
اکنون روی این مرورگرتان تب جدید باز کنید، اگر وارد وبسایت whatismyipaddress.com شوید باید IP شما همان IP سرور باشد. در غیر اینصورت ترافیک مرورگرتان از تونل SSH عبور نمیکند.
برای بستن تونل SSH
دستور زبر را در ترمینال وارد کنید :
ps aux |grep ssh
خط مشابه خط زیر راپیدا کنید
root 14345 0.0 0.0 2462228 452 ?? Ss 6:43AM 0:00.00 ssh -D 8123 -f -C -q -N [email protected]
عدد 14345 برای شما عدد دیگری خواهد بود. این عدد PID یا همان ID فرآیند یا پروسس است که با دستور زیر آن را kill میکنیم:
sudo kill 14345
اگر سوالی دارید حتما مطرح کنید.
[…] […]
روی سرور نیاز نیست چیزی نصب بشه؟ و فقط یه سرور با دسترسی ssh کافیه؟
مثلا یه چیزی مثل پراکسی سرور یا همچین چیزی. که به درخواست های کلاینت جواب بده؟
تنها یک سرور با دسترسی SSH نیاز دارید.
[…] […]
اگر آموزش ها ویدیویی هم بشن عالیه
[…] […]
سلام بسیار عالی. منو باش داشتم دنبال cisco-openconnect یا , wire guard یا openvpn روی لینوکس و تنظیمات NAT و forwarding میگشتم…. این روش که خیلی ساده است اگه جواب بده برای داشتن یک سرور شخصی و عبور از شر اشرار ازار رسان !!