Skip to main content

Command Palette

Search for a command to run...

dnscrypt روی اسلکور (‌و باقی لینوکس‌ها‌)

Published
3 min read

خوب عملا کامپیوتر‌های روی یه شبکه (‌سرور‌ها و سرویس گیرنده‌ها‌) با آدرس آی پی شناخته می‌شن‌. خوب حالا برای من کاربر که قصد داره روی اینترنت به یه سایت دسترسی داشته باشه‌، سخته که یه عدد نافهوم مثل 188.35.73.20 رو حفظ کنم‌. تازه این فقط برای دسترسی به یه سایته‌. یا فرض کنین صاحب سایت به هر دلیلی قصد تعویض سرورش رو داره‌، در این صورت باید تمام کسایی که با آی پی قبلی به سایت دسترسی داشتن‌، از آی پی سرور جدید استفاده کنن‌. حالا کار DNS Server‌ها اینه که می‌آن‌، هر آدرس معنادار (‌که طبیعتا استاندارد خودش رو داره‌) رو به یه آدرس آی پی معادلش ربط می‌دن‌. اینطوریه که وقتی شما می‌نوسین http://shahinism.com مرورگرتون آی پی و آدرس مسیری که وبلاگ من توش قرار داره رو پیدا می‌کنه و بهتون نشون می‌ده‌. به همین سادگی ;-)

حالا بحث سر اینه که DNS Server‌های متفاوتی توی اینترنت هستن‌. هر کدومشون با توجه به سلایق خاصی شخصی سازی شدن‌. اگه شما تا به حال نمی‌دونستین که اصلا DNS Server چی هست‌، پس احتمالا دارین از مال ISP‌تون استفاده می‌کنین‌. حالا ممکن شما از رفتار ISP‌تون نسبت به DNS‌ها راضی نباشین‌. یا فکر کنین که امنیت لازم براتون از این DNS فراهم نمی‌شه (‌حتما فهمیدین که اگه یه DNS سرور بخواد‌، می‌تونه وقتی شما http://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 قبلی رو با اضافه کردن یه # کامنت کنین‌! حالا با مرورگرتون (‌و بدون استفاده از پروکسی‌) [این صفحه](http://www.opendns.com/welcome/ "Are you using OpenDNS?") رو ببینین‌. احتمالا بهتون تبریک می‌گه که از OpenDNS استفاده می‌کنین ;-)

حل یک مشکل:

احتمالا بعد از اولین ریبوت می‌فهمین که فایل resolv.conf‌تون دوباره عوض شده و آدرس قبلی توش نیست‌! این به دلیل استفاده از dhcpcd هست که تنظیمات این فایل رو بعد از هر بار شناسایی آی پی روتر دوباره‌نویسی می‌کنه‌. خوب حالا چاره چیه‌؟ هیچی دستور زیر رو می‌زنیم:

chattr +i /etc/resolv.conf

که یعنی دست خر کوتاه‌! (‌یعنی هیچ‌کس غیر از صاحب فایل حق دست زدن بهش رو نداشته باشه‌) در مورد این که این دستور دقیقا چی کار می‌کنه می‌تونین به [این مطلب](http://weblog.aqlinux.ir/?p=204 "مجوزهای دسترسی فایل سیستم‌های ext در لینوکس") از علی عزیز در آکلینوکس رجوع کنین ;-)

More from this blog

معجون بهشتی Selenium, PhantomJS و Requests برای web scraping

این روز‌ها خودکار کردن کار‌های تکراری روزمره‌مان یک جورهایی برگ برندهٔ کاربران، توسعه‌دهندگان و یا حتی تیم‌های فعال در حوزهٔ نرم‌افزار محسوب می‌شود. از پتانسیل بالای درآمد‌زایی‌اش در بعضی شرایط اگر بگذریم‌، کاهش زمان مورد نیاز انجام کار‌ها به میزان ز...

Oct 15, 20168 min read

ورژن کنترل اختیاری نیست!

حقیقتش انتظار داشتم این موضوع خیلی وقت پیش حل شده باشد. حتی پیش خودم فکر می‌کردم که ورژن کنترل یک جورهایی جزء غرایض جامعه‌ی نرم‌افزاری است‌، آن هم با درجه‌ی اهمیتی مثل نفس کشیدن. دوستی دارم که حدوداً دو سال پیش روی دیوار فیس‌بوک‌اش از پاک شدن اتفاقی ...

Dec 27, 20154 min read

خوبی‌های جاوا اسکریپت؟

خیلی وقت است ننوشته‌ام و حقیقتش همین الان هم زیاد مثل گذشته حس نوشتن ندارم. موضوع این است که از طرفی چند نفر از شما دوستان در ایمیل‌هایی از من خواستید که باز بنویسم (راستش اصلا فکر نمی‌کردم کسی آن بیرون به فکر چرایی آپدیت نشدن این وبلاگ باشد.) که ازش...

Jul 8, 20153 min read

کدنویسی بازی جاوااسکریپت به صورت زنده توسط Mary Rose

نمی‌دونم چقدر با جاوااسکریپت آشنایی دارین، ولی جدا زبان فوق‌العاده‌ایه. خصوصا این که پلتفرم جذابی داره‌، اصلا نیاز نیست چیزی کامپایل شه یا برنامه خاصی نصب شه‌، یه مرورگر و تموم، دیگه شمایید و خلاقیتتون. گاها آدم یه چیزایی می‌بینه که بدجوری سر شوق می‌...

Oct 8, 20141 min read

برنامه نویسی کرنل لینوکس با راهنمایی The Eudyptula Challenge

عموما کسانی که از گنو/لینوکس به عنوان سیستم‌عامل اصلی‌شان استفاده می‌کنند‌، همه‌اش به خاطر چه می‌دانم‌، فرهنگ آزاد یا روش‌های گیکانه انجام کار‌هایشان نیست. حتی برای باحال‌تر به نظر رسیدن هم نیست. حقیقت این است که ما‌، علاقه به درک بیشتر ابزار‌هایمان ...

Oct 1, 20143 min read

وبلاگ شاهین

221 posts

dnscrypt روی اسلکور (‌و باقی لینوکس‌ها‌)