dnscrypt روی اسلکور (و باقی لینوکسها)
خوب عملا کامپیوترهای روی یه شبکه (سرورها و سرویس گیرندهها) با آدرس آی پی شناخته میشن. خوب حالا برای من کاربر که قصد داره روی اینترنت به یه سایت دسترسی داشته باشه، سخته که یه عدد نافهوم مثل 188.35.73.20 رو حفظ کنم. تازه این فقط برای دسترسی به یه سایته. یا فرض کنین صاحب سایت به هر دلیلی قصد تعویض سرورش رو داره، در این صورت باید تمام کسایی که با آی پی قبلی به سایت دسترسی داشتن، از آی پی سرور جدید استفاده کنن. حالا کار DNS Serverها اینه که میآن، هر آدرس معنادار (که طبیعتا استاندارد خودش رو داره) رو به یه آدرس آی پی معادلش ربط میدن. اینطوریه که وقتی شما مینوسین shahinism.com مرورگرتون آی پی و آدرس مسیری که وبلاگ من توش قرار داره رو پیدا میکنه و بهتون نشون میده. به همین سادگی ;-)
حالا بحث سر اینه که DNS Serverهای متفاوتی توی اینترنت هستن. هر کدومشون با توجه به سلایق خاصی شخصی سازی شدن. اگه شما تا به حال نمیدونستین که اصلا DNS Server چی هست، پس احتمالا دارین از مال ISPتون استفاده میکنین. حالا ممکن شما از رفتار ISPتون نسبت به DNSها راضی نباشین. یا فکر کنین که امنیت لازم براتون از این DNS فراهم نمیشه (حتما فهمیدین که اگه یه DNS سرور بخواد، میتونه وقتی شما google.com رو توی مرورگرتون میزنین، شما رو به آدرسی غیر از سرورهای گوگل وارد کنه و این یعنی خطر!)
اینجاست که فایل resolv.conf توی لینوکس سر و کلش پیدا میشه. شما با استفاده از این فایل میتونین به لینوکستون بفهمونید که از چه DNS Serverای استفاده کنه تا در خطر نباشین (این کار رو اگه روترتون ازش پشتیبانی کنه میشه توی خود روتر هم انجام داد ;-))
مزیت استفاده از DNSCrypt
بزرگترین و بهترین مزیتش اینه که ما رو به صورت کاملا امن به سرورهای OpenDNS وصل میکنه، و دیگه ارتباطمون با DNS Server غیر قابل شنود میشه. یعنی اگه شخص خرابکاری روی اینترنتمون باشه، باید اول با کدگذاری DNSCrypt بجنگه تا دستش به ما برسه!
نصب روی اسلکور (و اکثر توزیعها)
خیلی راحت، اول با دستور زیر فایلها رو میگیریم:
git clone git://github.com/opendns/dnscrypt-proxy.git
بعد وارد پوشه میشیم و دستورات زیر رو به ترتیب میزنیم:
./autogen
./configure
make -j4
که اون -j4 منظورم اینه که از همه زور CPUم استفاده کن (اگه شما CPUتون چهار هستهای نیست میتونین تعداد هسته خودتون رو جای چهار بزارین یا کلا تگ j رو بیخیال شین) حالا برای این که وقتی دلمون خواست پاکش کنیم این کار رو میکنیم (مخصوص اسلکور):
mkdir /tmp/dnscrypt
make install DESTDIR=/tmp/dnscrypt
cd /tmp/dnscrypt
makepkg -l y -c n /tmp/dnscrypt.tgz
installpkg /tmp/dnscrypt.tgz
توی باقی توزیعها تنها کافیه بزنین make install ولی خوب پاک کردنش پای خودتونه!
کار با DNSCrypt
برای کار باهاش اول اون رو با دستور زیر فعال میکنیم:
/usr/local/sbin/dnscrypt-proxy -d
و اگه دلتون نمیخواد بعد از هر بار ریاستارت دوباره این دستور رو بزنین، فقط کافیه توی فایل /etc/rc.d/rc.local همین دستور بالا رو اضافه کنین.
و در آخر با اضافه کردن خط زیر توی /etc/resolv.conf به لینوکستون بگین که از 127.0.0.1 به عنوان DNS Server استفاده کنه:
nameserver 127.0.0.1
حواستون باشه که nameserver قبلی رو با اضافه کردن یه # کامنت کنین! حالا با مرورگرتون (و بدون استفاده از پروکسی) [این صفحه](opendns.com/welcome "Are you using OpenDNS?") رو ببینین. احتمالا بهتون تبریک میگه که از OpenDNS استفاده میکنین ;-)
حل یک مشکل:
احتمالا بعد از اولین ریبوت میفهمین که فایل resolv.confتون دوباره عوض شده و آدرس قبلی توش نیست! این به دلیل استفاده از dhcpcd هست که تنظیمات این فایل رو بعد از هر بار شناسایی آی پی روتر دوبارهنویسی میکنه. خوب حالا چاره چیه؟ هیچی دستور زیر رو میزنیم:
chattr +i /etc/resolv.conf
که یعنی دست خر کوتاه! (یعنی هیچکس غیر از صاحب فایل حق دست زدن بهش رو نداشته باشه) در مورد این که این دستور دقیقا چی کار میکنه میتونین به [این مطلب](weblog.aqlinux.ir/?p=204 "مجوزهای دسترسی فایل سیستمهای ext در لینوکس") از علی عزیز در آکلینوکس رجوع کنین ;-)