قبل از این آموزش لازم هست شما 2 اموزش قبلی یعنی “نصب nginx در اوبونتو” و “راه اندازی reverse-proxy در nginx” رو مشاهده کنید
خوب قبل از هر چیز باید ابتدا توضیح کوتاهی در باره شبکه تور بدهیم: شبکه تور یا The Onion Router شبکه ای هست که شما به وسیله آن میتوانید رد پای انلاین خود را مخفی کنید و از دید هکر ها دور بمانید ، نام گذاری این شبکه به اسم پیاز (onion) به این دلیل هست که این شبکه چند لایه میباشد و برعکس سرویس های vpn معمولی که شما بعد از متصل شد به یک سرور (ip) با همان ip نیز به اینترنت وصل میشود ولی در شبکه تور شما ابتدا به نود اولیه (entry node) متصل میشود و سپس از چندین relay node گذر خواهید کرد و در اخر با ای پی exit node یا نود خروجی همانند شکل زیر به اینترنت متصل میشوید
خوب همانطور که در بالا گفته شد کاربران شبکه تور با ای پی exit node یا نود خروجی به اینترنت متصل میشوند پس اگر ما لیسی از این ای پی ها داشته باشیم به راحتی میتونیم تمام کاربران این شبکه را مسدود کینم! خوب نه به این سادگی ها هم نیست چون شبکه تور به طور مستمر در حال تعویض ای پی ها میباشد پس باید یک لیست بروز از ای پی ها داشته باشیم تا بتوانیم شبکه تور را به شکل کامل مسدود کنیم
خوب بریم سراغ بحث شیرین ای پی ها تور : سایت تور لیستی از ای پی ها رو در سایت خودش به اشتراک گداشته که این لیست چند مشکل داره
اول اینکه در ایران فیلتر هست امکان استفاده بر روی سرور های ایرانی نیست
دوم اینکه این لیست به طریقی طراحی شده که کار کردن با اون برای کاربر سخت باشه
در در اخر اینکه این لیست اصلا کامل نیست !
لیست رو میتونید از لینک زیر ببینید
https://check.torproject.org/exit-addresses
همچنین می تونید از لینک زیر که به راحتی از ایران در دسترس هست نیز همان لیست بالا رو مشاهده کنید
https://sec-list.ar.geekboy.pro/tor.txt
لیست بالا هر 1 ساعت یک بار بروز میشه
خوب ما با یک اسکریپت لیست بالا رو اصلاح کردیم که برای کاربر نهایی کاملا خوانا باشه که میتونید از لینک زیر به اون دسترسی داشته باشید
https://sec-list.ar.geekboy.pro/geekboy-tor.txt
برای مسدود سازی ای پی های لیست بالا ما باید این ای پی هارو به فرمتی که وب سرور nginx نیاز داره همانند شکل زیر دربیاریم
در وب سرور nginx ما باید ای پی هایی که میخواهیم مسدود بشن رو به شکل بالا در بیاریم که این کار رو ما با یک اسکریپت براتون انجام دادیم
و میتونید از لینک زیر اون فایل مورد نظر رو دانلود کنید
https://sec-list.ar.geekboy.pro/geekboy-tor-nginx.conf
خوب حالا که همه چیز اماده هست ما با دستور زیر به محل نصب nginx در سرور میریم
cd /etc/nginx/
سپس با کامند زیر محتویات فولدر را بررسی میکنیم
ls -l
حالا که در محل نصب nginx هستیم با کامند wget فایل اماده شده برای nginx را در این محل با کامند زیر دانلود میکنیم
wget https://sec-list.ar.geekboy.pro/geekboy-tor-nginx.conf
سپس دوباره با کامند زیر محتویات رو بررسی میکنیم که ایا فایل جدید ما اضافه شده یا نه
ls -l
خوب همانطور که در شکل زیر میبینید فایل ما اضافه شده است
خوب حالا فقط لازمه فایل دانلود شده رو در فایل vhost که در اموزش قبلی کامل اموزش دادیم اضافه کنیم
ابتدا با دستور زیر فایل vhost رو باز میکنیم
nano /etc/nginx/sites-enabled/default
و سپس با کامند زیر فایل رو کانفیگ دانلود شده رو لود میکنم
include /etc/nginx/geekboy-tor-nginx.conf;
سپس فایل را با ctrl +xسپس y و enter ذخیره میکنیم
سپس با دستور زیر چک مینماییم که آیا فایل را درست ویرایش کردیم یا خیر
nginx -t
خروجی باید به این صورت باشد :
root@geekboy:~# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
بعد از اینکه خروجی بدستور بالا درست بود با دستور زیر وب سرور nginx رو restart میکنیم تا تغییرات اعمال شود
systemctl restart nginx
در اخر با کامند زیر یک cronjob تعریف میکنیم که هر ساعت لیست ای پی های از سرور ما به روز کنه
echo “9 * * * * root /usr/bin/rm -f /etc/nginx/geekboy-tor-nginx.conf && cd /etc/nginx; /usr/bin/wget -q https://sec-list.ar.geekboy.pro/geekboy-tor-nginx.conf” >> /etc/crontab