برای اینکه کاربران ما نسبت به ایمنی دادههایشان در برابر دیواره GFW مطمئن باشند، ما میبایست دادههای شان را با پروتکلهای TLS و یا XTLS رمزنگاری کنیم. برای این رمزنگاری ما نیاز خواهیم داشت که بر روی سرور لینوکسی خود کلیدهای رمزنگاری یا certificate داشته باشیم. در این مستند شرح خواهیم داد که این کلیدها چگونه ساخته خواهند شد.
برای ساخت کلید رمزنگاری دو روش Self-Signed
و Let's Encrypt
را شرح خواهیم داد. فکر میکنیم برای کاربران عادی، استفاده از روش Self-Signed راحتتر میباشد. استفاده از روش Let's Encrypt نیاز به خرید domain دارد که هزینهای حدود سالی ۱۰ دلار خواهد داشت اما در عوض امنیت بیشتری را برای کاربرانتون فراهم خواهد کرد.
این روش برای کسانی مناسب هست که برای اولینبار میخواهند فیلترشکن را راهاندازی کنند و یا خیلی از کامپیوتر سررشته ندارند. شما این مرحله رو فقط یکبار لازم هست که انجام بدهید. شروع میکنیم.
با دستور زیر، سطح اختیارات را بالا میبریم.
sudo -i
با دستور زیر، بانک اطلاعاتی اپلیکیشنهای لینوکس را به روز میکنیم.
apt update && apt upgrade -y
با دستور زیر، openssl را نصب میکنیم.
sudo apt-get install openssl
با دستور زیر، کلیدهای رمزنگاری را بر روی سیستم تعریف میکنیم. دستور زیر دو فایل به نام privkey.pem
و fullchain.pem
بر روی سرور شما ایجاد میکند.
openssl req -x509 -newkey rsa:4096 -keyout privkey.pem -out fullchain.pem -sha256 -days 365 -nodes
دستور قبلی، سوالهایی را از شما میپرسد. نیازی به پاسخ دادن هیچ کدام از سوالها نیست مگر برای سوال Common Name که نام دامنه را از شما میپرسد.
در تصویر فوق مشاهده میکنید که ما از دامنه فرضی iranxray.hope.com استفاده کرده ایم. شما میتوانید هر نام دلخواهی را استفاده کنید. این دامنه را یادداشت کنید، چون در حین ساخت VLESS و Trojan به آن نیاز خواهیم داشت.
با دستور زیر، به X-UI دسترسی خواهیم داد که فایلهای ساخته شده برای رمزنگاری استفاده کند.
chmod ugo+rwx fullchain.pem
chmod ugo+rwx privkey.pem
حال دو فایل بر روی سیستم شما ساخته شده. برای گرفتن آدرس کامل فایل certificate دستور زیر را وارد کنید. نتیجه را یادداشت نمایید چون باید این آدرس را باید در X-UI وارد نمایید.
echo "$(pwd)/fullchain.pem"
و برای گرفتن آدرس کامل کلید خصوصی دستور زیر را وارد کنید. نتیجه را یادداشت نمایید چون باید این آدرس را باید در X-UI وارد نمایید
echo "$(pwd)/privkey.pem"
تمام. برای راهاندازی پروتکلهای VLESS و Trojan به دامنه و آدرس فایلهایی که در مراحل قبل یادداشت کردید، نیاز خواهیم داشت. ادامه را از مقاله ساخت کانفیگ دنبال کنید
طی این مرحله اجباری نیست. اگر Self-Signed را ساختهاید، میتوانید از اینجا گذر کنید. این مرحله حکم پرتاب سه امتیازی دارد. گرفتن کلید رمزنگاری معتبر از Let's Encrypt نیاز به خرید domain واقعی و انجام برخی تنظیمات دارد که برای کاربرهای مبتدی دشوار میباشد اما در عوض امنیت بیشتری را برای کاربرانتان فراهم خواهد کرد.
برای ساخت certificate با Let's Encrypt نیاز به یک domain واقعی دارید. می توانید از شرکتهایی مثل GoDaddy یا Namecheap برای خرید domain استفاده کنید. هیچ فرقی ندارد که دامنه شما com. باشد یا net.و یا هر چیز دیگر. هر کدام ارزانتر بود بخرید. بعد از خرید دامنه باید با اعمال تغییرات در DNS کاری کنید که دامنه شما به آدرس IP سرور شما متصل شده باشد.
پیش از طی مراحل بعدی، اطمینان حاصل کنید که پورت 80 بر روی سرور لینوکسی شما باز میباشد. برای باز کردن پورت میتوانید به مقاله ما در مورد باز کردن پورت رجوع کنید تا پورت 80 را باز کنید. اپلیکیشن certbot نیاز دارد تا اطلاعات کلید را از روی پورت 80 دریافت کند.
ابتدا با دستور زیر، سطح اختیارات را بالا میبریم.
sudo -i
با دستور زیر، بانک اطلاعاتی اپلیکیشنهای لینوکس را به روز میکنیم.
apt update && apt upgrade -y
حالا certbot را نصب میکنیم تا بتوانیم به لطف پروژه Let's Encrypt کلیدهای معتبر TLS بسازیم.
sudo apt-get install certbot
بعد از نصب، دستور زیر را اجرا کنید تا کلیدهای رمزنگاری بر روی سیستم شما ساخته شود. در دستور پایین، از ایمیل فرضی [email protected] و دامنه فرضی iran-free-xray.com استفاده کردهایم. شما باید این مقادیر را تغییر دهید و نام دامنهای که انتخاب میکنید باید مطابق با دامنهای باشد که خریداری کردهاید.
⭐ دقت کنید که NameServer ها بایستی به آدرس IP سیستم شما اشاره کنند وگرنه نمیتوانید certificate را صادر کنید.
sudo certbot certonly --standalone --preferred-challenges http --agree-tos --email [email protected] -d iran-free-xray.com
در حین صدور certificate، سوال زیر در مورد اشتراک گذاری اطلاعات پرسیده میشود. می توانید N
را وارد کنید تا اطلاعات شما محفوظ بماند.
⭐
اگر با خطای زیر مواجه شدید، احتمالا به این خاطر هست که پورت 80
را باز نکردهاید. برای باز کردن پورت میتوانید به مقاله ما در مورد باز کردن پورت رجوع کنید تا پورت 80
را باز کنید.
اگر همه چیز خوب پیش رفته باشد، باید پیغامی شبیه زیر دریافت کنید. همانطور که در عکس میبینید، آدرس فایلهایی certificate به شما نشان داده شدهاند. هم آدرس fullchain.pem
و هم آدرس privkey.pem
را کپی کنید و دم دست داشته باشید. ما به آدرس این فایلها نیاز خواهیم داشت تا بتوانیم Trojan
و یا VLESS+XTLS
را بسازیم.
از این لحظه به بعد، برای باز کردن پورتال در مرورگر به جای استفاده از http://ip:port
باید از دامنه برای باز کردن پورتال استفاده کنید. مثلا اگه دامنه شما iran-free-xray.com باشد و از پورت 34567 استفاده میکنید، باید از این به بعد از آدرس http://iran-free-xray.com:34567
استفاده کنید.
اگر به ایراد دسترسی به فایلهای سرتیفیکیت برخوردید (موارد خیلی نادر) یه سر به این مقاله بزنید تا مشکل دسترسی رو حل کنید. ایرادهای دسترسی به سرتیفیکیت معمولا با این پیغام ظاهر میشه (که البته ممکنه دلایل دیگه هم داشته باشه:
Fail to detect internet connection io read/write on closed pipe
تمام. از آدرس دامنه استفاده کنید تا به پورتال بروید و ادامه را از مقاله ساخت کانفیگ دنبال کنید.