DNS over HTTPS (DOH) with Adguard on personal server
@theTCSـ![](/file/751f243324fd8082fcd42.png)
خوب همونطور که میدونید اخیرا اختلالات روی فیلترنت به حد عجیبی افزایش پیدا کرده و به همهی لایه ها رسیده.
یکی از این لایههای مهم DNS هست.
حالا DNS یا Domain Name System اصن چی هست؟
![](/file/4ee059a5a128f5e9b2091.png)
همونطور که گفتم DNS مثه دفترچه تلفن اینترنته و کارش اینه که وقتی یک یوزر اسم یه سایتی رو صدا میزنه اونو ارجاع میده به آیپی سرورهای اون سایت.درواقع کار DNS ترجمهی نام دامنه به آیپیهای سرور هست!
خوب حالا DOH چیه پس؟ (اینو بگم بریم سراغ آموزش :) )
درحالت عادی استفاده از DNS (مثلا استفاده از DNS سرور گوگل 8.8.8.8 یا DNS سرور کلاودفلر 1.1.1.1 )
درخواستهای ما بدون رمزنگاری ارسال میشه.ینی اوپراتور اینترنت میتونه درخواستهای ما رو ببینه یا حتی دستکاریش کنه و ما رو بفرسته جایی که خودش میخواد (که الان دارن اینکارو میکنن!)
برای اینکه ارتباط ما با DNS سرور امن و غیرقابل خوندن و دستکاری بشه ما میایم درخواست ها رو به کمک پروتکل HTTPS رمزنگاری میکنیم که به این حالته استفاده از DNS میگن DNS over HTTPS یا DOH !
حالا آیا فقط رمزنگاری با HTTPS امکان پذیره؟ نه! از روشهای رمزنگاری دیگه مثه TLS هم میشه استفاده کرد که بهش میگن DNS over TLS یا DOT !
خوب بسه بریم سراغ آموزش :))
هدف ما از این آموزش اینه که به کمک ادگاردی که روی سرورمون ران میکنیم درخواست های DNS رو به صورت رمزنگاری شده برسونیم به سرور خودمون و از اونجا از DOH های معتبر مثه گوگل کلاودفلر ادگارد نکست دیاناس استفاده کنیم.بدون اختلال امن و کلی قابلیت دیگه مثه بلاک کردن تبلیغات انتخاب اتوماتیک سریعترین DNS برای جواب دادن و ...
چیزایی که نیاز داریم :
1.یه سرور با حداقل یه هسته CPU و 2گیگ RAM (آیپی سرور باید تمیز باشه)
2.یه دامنهی تمیز
خوب اول از همه نیازه که یه سابدامین ایجاد کنیم و به آیپی سرورمون متصل کنیم (پروکسی خاموش)
برای آیپی ورژن4 و ورژن6 اگه سرورتون داره
![](/file/c541995845942866402c9.png)
خوب مرحلهی بعدی گرفته سرتیفیکیت برای سابدامینتونه.
راههای زیادی هست برای گرفتنه سرتیفیکیت ولی من از همون کلاودفلر میگیرم خیلی راحت.
وارد اکانت کلاودفلرتون که شدین و دامینتون رو انتخاب کردین به بخش SSL/TLS برین و
بر روی Origin server و create certificate کلیک کنید
![](/file/b571e91dc1f45fa497ea6.png)
خوب به هیچکدون از گزینه دست نزنید فقط قسمت host name با اسم سابدامینی که ساختید پر کنید و create رو بزنید
![](/file/51698037a1a52f94662be.png)
خوب حالا بهتون certificate و key رو میده.اینارو کپی کنید جایی نگه دارید بعدا نیاز داریم بهشون!
![](/file/bf47e121bc69e8fc79d73.png)
خوب کارمون با کلاودفلر تمومه بریم سراغ سرور!
بعد از لاگین سرور رو آپدیت و آپگرید کنید
sudo apt update
sudo apt upgrade -y
بعد مطمين بشین که داکر روی سرورتون نصبه
sudo apt install docker.io
خوب حالا بریم سراغ نصب ادگارد (ما فقط میخوایم از DOH استفاده کنیم تو این آموزش)
این دستورات رو کامل کپی کنید داخل سرورتون بزنید (باید پورتهای 80 443 3000 باز و خالی باشه رو سرورتون)
docker run --name adguardhome\
--restart unless-stopped\
-v /root/adguard/workdir:/opt/adguardhome/work\
-v /root/adguard/confdir:/opt/adguardhome/conf\
-p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp\
-d adguard/adguardhome
خوب ادگارد نصب شد
کارمون با سرور تمومه!
حلا با این آدرس میتونین به پنل ادگاردتون دسترسی داشته باشین :
server-ip:3000
بعد از بالا اومدن پنل باید یه اکانت بسازین برای خودتون و بقیه رو نکست بزنین.
از قسمت settingsوارد قسمت encryption settings بشین و تنظیمات رو اینجوری انجام بدین و نام سابدامینتون رو اینجا وارد کنید :
![](/file/dacfb85c7420d431a5ed6.png)
اسکرول کنید بیاین پایینتر و اون certificate و key که از کلاودفلر گرفته بودین رو اینجا وارد کنید و سیو رو بزنید :
![](/file/c5ce79064c1b9540a2998.png)
خوب حالا میتونین از طریق آدرس سابدامینتون وارد پنل بشید :
https://your-subdomain:3000
حالا اگه وارد قسمت setup giude بشید میتونین آدرس DOH شخصی خودتون رو ببینید :
![](/file/2c209cef6069b54771b2a.png)
حالا از این آدرس میتونین داخل مرورگرتون یا کانفیگ یا کلاینتهای vpn مثه نکوری نکوباکس ویتوری هیدیفای نکست و ... در قسمت remote-dns استفاده کنین.
حالا بریم واسه تنظیمات DOH خودمون.
از قسمت settings وارد DNS settings بشید...اینجا میتونین هر سروری که دلتون میخواد اضافه کنید.
اگر روی list of knowns DNS providers کلیک کنید یه لیست کامل از DNS سرورهای معروف رو میتونین ببینید و سرور DOH اون هارو به لیستتون اضافه کنید.با قابلیت load-balancing ادگارد خودش این لیست رو چک میکنه و هرکدوم که سریعتر بود درخواست ها رو سمت اون میفرسته...تنظیماته من اینجوریه :
![](/file/abd421f1a52d633e50fd4.png)
خوب قابلیت بعدی اضافه کردنه بلاک لیسته برای بلاک کردنه تبلیغات محتوای پورن محتوای فیشینگ و ...
از قسمت filters وارد DNS blocklists بشید...اینجا میتونین از لیستهای آماده استفاده کنید یا خودتون یه لیست بسازید...این تنظیماته منه :
![](/file/85cdb538fefb81ed7e983.png)
در هایت بعد این تنظیمات صفحهی اصلی پنلتون یه چیزی شبیه این میشه :
![](/file/643ceca2c4d0231780e99.png)
![](/file/428e4162875ecb7c53315.png)
تمام!
امیدوارم بدردتون خورده باشه و بتونین باهاش اختلالاته شدید DNS رو دور بزنین :v