How to connect with SSH behind Cloudflare's CDN with iSegaro
iSegaro - 1402-02-15سلام چطورید خوبید , سگارو هستم باز مثل همیشه , بریم ببینیم میتونیم اتصال SSH رو ببریم پشت کلادفلر و ازش برای رفع محدودیت ها استفاده کنیم , سوالی و مشکلی بود فقط در توییتر من هستم و پاسخگوی شما , دوستان دیگه هم اونجا به شما میکنند که مشکلی اگه دارید حل بشه و راهای جدید رو هم پروموت میکنیم توسط دوستان دیگه , ادرس توییترم
https://twitter.com/iSegaro
خوب با پروتکل SSH ما فقط برای ارتباط با سرور استفاده میکردیم که ارتباطم بر اساس TCP هست , به واسطه برنامه های واسط میتونستیم ارتباطمون رو بر بستر SSH هم بفرستیم و محدودیت هارو دور بزنیم , یعنی از SSH به عنوان یک VPN استفاده میکردید , خوب یه مشکلی که داشت ارتباط مستقیم با آی پی سرور بود که امروزه روز در این تاریخ شما یکم ارتباطتتون با سرور بر اساس SSH زیاد باشه سریع سرور شمارو بلاک میکنن , یا اینکه با کلی زحمت رفتید از هتزنر و دیتاسنترهای دیگه سرور خریدید حالا از همون اول ای پیش بلاک هست و ممکنه سرور برای شما بلا استفاده بشه با این روش میخوایم دوباره سرورهایی که بلاک هستند رو به عنوان یک کانفیگ رفع محدودیت ها استفاده کنیم , سوای پروتکل v2ray هست این روش , در کنارشم میتونید پروتکل های دیگه ای رو داشته باشید مشکلی نداره , خودم الان با این روش بدون مشکل روی ایرانسل که این روزا خیر سرش سنگ تموم گذاشته وصلم امیدوارم شمام بتونید ازین روش استفاده کنید و وصل بمونید , روش سختی نیست فقط کافیه کپی پیست کنید دستورهارو بریم که انجام بدیم , ازونجایی که ارتباط SSH معمولا TCP هست و ما برای ارتباط صوتی و تصویری نیاز به ارتباط UDP هم داریم این ارتباط رو هم روی سرور برقرار میکنیم , یعنی با این روش میتونید واتس اپ و تلگرام و ... ارتباط صوتی و تصویری هم باهاش بگیرید, راستی پیش نیاز سرور شخصی + دامنه روی کلادفلر میخاد
1.تنظیم کلادفلر
خوب وارد اکانت کلادفلرتون بشید که از قبل یه دامنه بهش وصل کردید , یک ساب دامنه بسازید و متصل به ای پی سرورتون بکنید با پروکسی روشن مثل عکس زیر (همه بلدید دیگه)
فرض من دامین isegaro.com رو دارم و یک ساب دامین ساختم به اسم de و وصل کردم به ای پی سرورم و پروکسی هم روشن پس ساب دامین de.isegaro.com رو دارم.
در قسمت SSL/TLS هم مثل عکس زیر روی حالت Full بزارید (اگه میخواید از سرتیفیکیتهای خود کلادفلر استفاده کنید مثل قبل که گفتم از قسمت Origin Server برید و Cert , Key بسازید و یجا نگه دارید که لازم هست و مود SSL رو هم روی Full(Strict)بزارید , فرقیم نمیکنه با کدوم روش برید)
خوب کارمون فعلا اینجا تمومه روی کلادفلر , بریم روی سرورمون
احتمالا سرورتون بلاکه و نمیتونید بهش SSH بزنید با پروکسی فعلا به سرورتون SSH بزنید که دستورات رو بدیم. پس به سرورتون متصل بشید و بریم دونه دونه دستورات زیر رو انجام بدیم
2.دستورات روی سرور
همین اول بگم تا یادم نرفته , شما باید پورت های 443 , 80 , 40000 و 7300 رو روی سرورتون ازاد داشته باشید و یادتون باشه حتما که ما باید هروقت یه صورت وضعیت از ارتباط سرور گرفتیم این چهارتا پورت همیشه ران روی سرور باشن وگرنه مشکل میخورید در اتصال.
سرور رو با دو دستور زیر اپدیت و تمامی پیکیج های مورد نظر رو هم نصب کنید روش
sudo apt update
sudo apt install wget net-tools libssl-dev pkg-config libnspr4-dev libnss3-dev stunnel dropbear gcc make cmake build-essential unzip zip tmux
خوب نصب و اپدیت تمام شد بریم حالا سراغ ادامه کار
2.1 تنظیمات dropbear
دراپ بیر یک SSH وکوچیک سمت سرور و کلاینت هست که به ما اجازه برقراری ارتباط SSH رو میده
sudo nano /etc/default/dropbear
این دستور رو که زدید مثل عکس زیر مقدار رو تغییر بدید و وارد کنید , برای ذخیره هم که میدونید که چی کنید بعد از تغییرات Ctrl+x رو بزنید بعد Y رو فشار بدید و بعدشم اینتر بزنید
حالا دستور زیر رو بزنید و در فایلی که باز میشه تایپ کنید iSegaro We Love You و ذخیره کنیدش :D
sudo nano /etc/banner.dat
کارمون اینجا تمومه.
2-2 تنظیمات Stunnel
اس تونل هم نیاز به معرفی نداره میدونید کارش چیه از اسمشم مشخصه برای تانل روی سرور استفاده میشه و مسیردهی میکنه , با دستور زیر وارد فولدر برنامه بشید
cd /etc/stunnel/
بعد وارد شدن دو دستور زیر رو وارد کنید , میاد برای شما گواهی SSL رو میسازه , اینجا ما گواهی رو خودمون میسازیم بالا گفتم اگه میخواید از کلادفلر استفاده کنید جاش اینجاست اون گواهیارو توی فایل های cert.pem و key.pem میتونید قرار بدید
openssl genrsa -out key.pem 2048
openssl req -new -x509 -key key.pem -out cert.pem -days 1095
دقت کنید دستور دوم رو که وارد میکنید از شما مشخصات میپرسه مثل کشور و شهر و ادرس و ... هرچی دوست داشتید بزنید مهم نیست ولی مهمترین بخشش قسمت همون ادرس Common Name هست که باید مثل عکس زیر وارد کنید یعنی یک .* اول دامنتون بزارید بعد اسم دامنتون رو بنویسید
بعد که اینجارو پر کردید و تموم شد دستور زیر رو بزنید تا دوتا فایل گواهی باهم ترکیب بشن در فایل stunnel.pem
cat key.pem cert.pem > stunnel.pem
خوب بعدش دستور زیر رو بزنید تا کانفیگ Stunnel رو بگیریم
wget https://gitlab.com/PANCHO7532/scripts-and-random-code/-/raw/master/nfree/stunnel.conf
نیازی نیست در فایل بالا تغییراتی انجام بدید محتویاتش مثل عکس زیر هست اگه نیاز بود بنا به نیازتون میتونید تغییرات رو انجام بدید , روی این کانفیگ ما ارتباط رو با پورت 443 کلادفلر انجام میدید اگه شما نیاز به تغییر دارید فایل بالا رو باز کنید و یکی از پورتای کلادفلر https رو قرار بدید
خوب کارمون با اس تونل هم تموم شد با دستور زیر برگردیم صفحه اصلی روت
cd $HOME
2-3 تنظیمات badvpn
تنظیمات badvpn هم خیلی سادست با دستور زیر اول فایل badvpn رو روی سرورمون دانلود کنیم , این تنضیمات برای همون پروتکل UDP ما هست که برای بازی و تماس صوتی و تصویری نیازه
wget -O badvpn-master.zip https://codeload.github.com/ambrop72/badvpn/zip/refs/heads/master
بادستور زیر اون رو از حالت زیپ خارج کنیم
unzip badvpn-master.zip
با دستور زیر وارد فولدرش بشیم
cd badvpn-master
با دستور زیر یک فولدر برای بیلدش بسازیم
mkdir build
با دستور زیر وارد فولدر بیلدش بشیم
cd build
حالا که وارد فولدرش شدیم با دستور زیر بیلدش کنیم
cmake .. -DBUILD_NOTHING_BY_DEFAULT=1 -DBUILD_UDPGW=1
بعد که دستور بالا رو زدید و کارش تموم شد دستور زیر رو بزنید
sudo make install
حدود یک دقیقه ای زمان میبره تا ساختن و نصبش تموم شه و تمام حالا بریم دوباره وارد صفحه اصلی سرور بشیم با دستور زیر
cd $HOME
2-4 تنظیمات PDirect.py
مرحله اخر کار ماهست این مرحله برای ارسال Responce هدر هست , با دستور زیر فایلو دانلود کنیم اول روی سرور
wget https://gitlab.com/PANCHO7532/scripts-and-random-code/-/raw/master/nfree/PDirect.py
با دستور زیر بریم تغییرش بدیم
nano PDirect.py
وقتی باز شد مثل عکس زیر تغییرات رو اعمال کنید پورت و ریسپانس رو تغییر بدید مثل عکس زیر و ذخیره کنید
HTTP/1.1 101 Switching Protocols\r\nContent-Length: 1045576000000\r\n\r\n
خوب همین تمام شد تا اینجا.
فایل shells رو اول باز کنید با دستور زیر
nano /etc/shells
دو خط زیر رو به انتهای فایل اضافه کنید و ذخیره کنید به جهت مدیریت یوزر ها
/bin/false
/usr/sbin/nologin
3.ران کردن سرویس ها
همه کارا رو کردیم وقتشه بریم حالا سرویس هایی که ساختیم رو Run کنیم و بعدش تست بگیریم ببینیم مطمن بشیم درست کار میکنن یا نع
تایپ کنید
tmux
و اینتر رو بزنید و بعدش تایپ کنید
stunnel
باید مثل عکس زیر سرویس اس تانل ران بشه من از قبل ران کردم شاید یخورده تغییر داشته با واسه شما ولی میبینید نوشته که اس تانل روی پورت 443 داره کار میکنه (اگه یوقت چیزی نشون نداد دوباره بنویسید stunnel و اینتربزنید)
تی موکس که تایپ کردید میاد مولتی ترمینال میسازه , حالا وقتی هنوز توی صفحه بالا هستید اول روی کیبوردتون کلید های Ctrl+B رویکبار فشار بدید و بعدش کلید D رو فشار بدید تا از تریمنال اول خارج بشیم وقتیم خارج میشید یه عمچین چیزی براتون مینویسه(فقط میگیم که بدونید درست دارید میرید)
خوب نوبت سرویس دوم هست تایپ کنید باز
tmux
و اینتر بزنید و سپس تایپ کنید
sudo apt install python2
python2 PDirect.py 80
سرویس دوم و ران میشه روی پورت 80 دوباره روی کیبوردتون کلید های Ctrl+B رویکبار فشار بدید و بعدش کلید D رو فشار بدید تا از تریمنال دوم خارج بشیم
بریم نوبت سرویس سوم تایپ کنید
tmux
و بعدش دستور زیر رو بزنید
badvpn-udpgw --listen-addr 127.0.0.1:7300 --max-clients 250 --max-connections-for-client 3
این دستور مشخصه میگه نهایت تا 250 تا کلاینت بتونن استفاده کنند و هر یوزر هم فقط 3نفر همزمان وصل باشن
برای خارج شدنشم بازم روی کیبوردتون کلید های Ctrl+B رویکبار فشار بدید و بعدش کلید D رو فشار بدید تا از تریمنال سوم هم خارج بشیم تمام , الان همه سرویس ها روی سرور های ما ران هستند , خوب بریم یوزر هم اضافه کنیم , با دستور زیر من یک یوزر به اسم isegaro میسازم شما میتونید هرچی دوست دارید بسازید
sudo useradd -M isegaro -s /bin/false
با دستور زیر میام پسورد برای یوزر isegro تایین میکنم
sudo passwd isegaro
الان شما میتونید هم با یوزر root خودتون با پسوردی که از قبل داشتید و هم یوزر isegaro با پسوردی که تعیین کردید متصل بشید
دستور بالا رو میزنید میگه پسورد رو وارد کنید که دوبار وارد میکنید و بعد ذخیره میشه تمام , حالا اصل کاری ببینیم دست داره کار میکنه یا نع؟ گفتیم باید روی سرور ما 4تا پورت 80 و 443 و 40000 و 7300 ران باشه دستور زیر رو بزنید و مثل عکس زیر باید باشه
netstat -tulnp
اگه مثل تصویر بالا همه ران بودن که میتونید استفاده کنید , اگه یکی از سرویس ها برای شما ران نبود یکار کنید اول سرورتون رو با دستور reboot ریبوت کنید وقتی ریست شد و بالا اومد دوباره دستور
netstat -tulnp
رو بزنید ببینید کدام سرویس ران نشده همونو مثل مرحله شماره 3 اجراش کنید فرضا اگه badvpn پورت 7300 رو ندیدید یعنی اجرا نشده برید دوباره تایپ کنید tmux و دستور زیر رو بزنید
badvpn-udpgw --listen-addr 127.0.0.1:7300 --max-clients 250 --max-connections-for-client 3
و یبار دیگه
netstat -tulnp
بگیرید ببینید اجرا شده یا نع , مثل همین برای بقیه انجام بدید , خوب حالا چطوری وصل بشیم , روی ویندوز برنامه NetMode رو میخواد از لینک زیر دانلود کنید
https://sourceforge.net/projects/netmodhttp/
روی اندروید برنامه HTTP Custom رو میخاد نصب کنید از لینک زیر
https://play.google.com/store/apps/details?id=xyz.easypro.httpcustom&hl=en&gl=US
آیفون ندارم نمیدونم پوزش ولی قطعا برنامه براش هست
بعد که اینارو نصب کردید حالا روی ویندوز یا اندروید , مثل عکس زیر باید یک Payload بسازید با دستور زیر و با اون وصل بشید چیکار کنیم من روی اندروید بهتون میگم
GET / HTTP/1.1[crlf]Host: yourhost.com[crlf]Connection: Keep-Alive[crlf]User-Agent: [ua][crlf]Upgrade: websocket[crlf][crlf]
برنامه رو روی گوشیتون باز کنید و روی سه خط همبرگری بالا سمت چپ کلید کنید اول روی Payload کلیک کنید
در صفحه ای که باز میشه اون کد بالا که دادم رو با ساب دامینی که توی کلادفلر ساختید جایگزین کنید و وارد کنید مثل عکس زیر
بعد Apply کنید و ذخیر بشه , در نوبت بعدی روی SNI کلیک کنید و یه مقداری مثل این هرچیدوست داشتید وارد کنید ولی به همراه اسم ساب دامین خودتون و اپلای رو بزنید تا ذخیره بشه
حالا در صفحه اصلی روی 3 نقطه بالا سمت راست کلیک کنید و از منوی SSH Settings تیک فشرده سازی مثل عکس زیر رو بزنید
خوب حالا وقتشه یوزر و پسور و ادرس اتصال رو هم در قسمت SSH وارد کنید مثل عکس زیر
و کانکت رو بزنید و متصل بشید روی اوپراتور های اینترنتیتون من الان روی ایرانسل و مخابرات و شاتل و همراه وصل میشم به راحتی , کیفیت اتصال روی شاتل و مخابرات به مراتب بهتر و پینک حدود 120میلی ثانیه هست , روی همراه و ایرانسل حدود 400 تا 600 متغییر هست ولی به راحتی یوتوب و اینستاگرام بدون قطعی برام باز میشه
مثل عکس بالا در قسمت لاگ برنامه هروقت عبارت ssh forward susccessfully رو نوشت و بعدشم HTTP Custom رو با رنگ زرد نوشت اماده کار هست یعنی میتونید استفاده کنید از برنامه
برای ویندوز هم همینه تماما فرقی نداره پی لود بسازید و مقدار رو قرار بدید و اتصال , من روی ویندوز خیلی دیگه برنامه نصب دارم اینو زورم اومد نصب کنم چون نیاز ندارمش اصن , مخلص
فعلا خدانگهدار