OS:Ubuntu 12.04 64位

၀၊ မိတ်ဆက်

DNS ပျက်စီးခြင်း(DNS pollution):

ဒိုမိန်းနာမည် ဆာဗာ၏ cache ပျက်စီးခြင်း (DNS cache pollution) ကို DNS cache poisoning ဟုလည်း ခေါ်ကြသည်။ ဆိုလိုသည်မှာ DNS packet များကို တမင်တကာ ဖန်တီးသည်ဖြစ်စေ မတော်တဆ ဖြစ်ပေါ်သည်ဖြစ်စေ တချို့က ကြိုးစားပြီး၊ ဒိုမိန်းကို မမှန်သော IP လိပ်စာသို့ ညွှန်ပြပေးစေသည့် အခြေအနေကို ဆိုလိုသည်။ ပုံမှန်အားဖြင့် အင်တာနက်ပေါ်တွင် ယုံကြည်ရသော DNS ဆာဗာများရှိပြီးသားဖြစ်သည်။ သို့သော် ကွန်ရက်အတွင်း traffic ဖိအားကို လျှော့ချရန်အတွက် DNS ဆာဗာအများစုက အပေါ်ပိုင်း (upstream) DNS ဆာဗာများထံမှ ရရှိလာသော resolution records များကို ယာယီသိမ်းဆည်းထားတတ်ကြသည်။ နောက်တစ်ကြိမ်တွင် အခြားကွန်ပျူတာတစ်လုံးက ဒိုမိန်းကို resolution လုပ်လိုက်လျှင် ချက်ချင်း ပြန်တင်ပေးနိုင်ရန်ဖြစ်သည်။

ဒိုမိန်းနှင့်ပတ်သက်သည့် local DNS ဆာဗာ၏ cache ကို ပျက်စီးစေ/ညစ်ပတ်စေခဲ့မိလျှင် ဒိုမိန်းအတွင်းရှိ ကွန်ပျူတာများကို မမှန်သည့် ဆာဗာ သို့မဟုတ် မမှန်သည့် website/URL သို့ လမ်းညွှန်ပေးသွားနိုင်သည်။ 1

OpenDNS:

OpenDNS သည် လူတစ်ဦးချင်းနှင့် လုပ်ငန်းအတွက် DNS solution မျိုးစုံ ပေးသည်။ အသုံးပြုသူသည် OpenDNS ၏ service ကိုသုံးမည်လား၊ သို့မဟုတ် ISP (local internet service provider) မှပေးသည့် DNS ကိုသုံးမည်လားကို ကိုယ်တိုင်ရွေးချယ်နိုင်သည်။ ဆာဗာအုပ်စုများကို strategic အရ အရေးပါသောနေရာများတွင် ထားပြီး ဒိုမိန်း cache များများအသုံးပြုခြင်းက DNS query ကို ပိုမိုမြန်မြန်ပြီးစီးစေသည်။ ထို့ကြောင့် page search/တင်ပြမှု အမြန်နှုန်းလည်း တိုးတက်လာသည်။

DNS query ၏ရလဒ်များကို local OS သို့မဟုတ် application များက cache လုပ်ထားနိုင်သောကြောင့် အချို့ query တွင် အမြန်နှုန်းတိုးလာမှုကို မမြင်သာနိုင်ပေ။ သို့သော် local cache ထဲတွင် မရှိသော result များအတွက် query အမြန်နှုန်းတိုးလာမှုကို မျက်စိဖြင့် သေချာမြင်ရမည်ဖြစ်သည်။ အခြား feature များတွင် anti-phishing filter နှင့် input correction (type correction) တို့ ပါဝင်သည်။ ဥပမာအနေဖြင့် သင် wikipedia.og ဟု ရိုက်ထည့်လျှင် wikipedia.org သို့ အလိုအလျောက် ပြောင်းလဲပေးမည်ဖြစ်သည်။

အန္တရာယ်ရှိ website များ၏ list ကို စုဆောင်းထားပြီး ထို website များကို ၎င်းတို့၏ service မှတဆင့် ဝင်ကြည့်သောအခါ OpenDNS က အန္တရာယ်ရှိ website များကို ပိတ်ဆို့တားဆီးသည်။ OpenDNS သည် မကြာသေးမီက phishing တိုက်ဖျက်ရေးဝန်ဆောင်မှု (PhishTank) ကို စတင်လုပ်ဆောင်ခဲ့ပြီး ကမ္ဘာတဝှမ်းရှိ user များက မယုံကြည်ရသော phishing website များကို report ပြုလုပ်ခြင်းနှင့် ကြည့်ရှုခြင်းတို့ ပြုလုပ်နိုင်သည်။

OpenDNS သည် နာမည်အတိုင်း open-source software မဟုတ်ပါ—ဆိုလိုသည်မှာ OpenDNS ဆိုသည်အတိုင်း အရာက လွတ်လပ်ပွင့်လင်း source တစ်ခုမဟုတ်ပါ။ 2

DNSCrypt က DNS pollution ကို ဘာကြောင့် ကာကွယ်နိုင်သလဲ

နားလည်ရလွယ်အောင် ပြောမယ်ဆိုရင်

ပုံမှန် DNS က plaintext ဖြစ်သည်။ ဆိုတော့ “postcard” လိုပဲ စဉ်းစားပါ။ postcard ပေါ်မှာ သင်ဘယ်သူလဲ၊ ဘယ်သူ့ဆီပို့မလဲ၊ ဘာအချက်အလက် မေးချင်လဲ ဆိုတဲ့နေရာတွေအလိုက် သင်ရေးထားသည်။ ဒီလိုဆိုရင် postcard ကို လက်ဆင့်ကမ်းပို့ဆောင်သူက သင်ရေးထားတာကို မြင်နိုင်သည်။ မကျေနပ်ရင် အဲဒီ postcard ကို ယူပြီး contents ကို ပြောင်းပြီး လှည့်စားဖို့ အတုလုပ်ပြီး ပြန်ပို့နိုင်သည် (သို့မဟုတ် မပို့ပဲ တားဆီးထားလည်း ရသည်—သူ ဘယ်လိုလုပ်ချင်သလဲ အပေါ် မူတည်သည်)။

တစ်ဖက်မှာလည်း DNS ဆာဗာက သင့်ကို ပြန်ပို့ပေးတဲ့ အဖြေ (answer) က အလားတူပဲ ဖြစ်သည်။

DNSCrypt ကတော့ DNS အချက်အလက်တွေကို encryption လုပ်ထားသည်။ postcard ပေါ်မှာ ရေးထားတာက သင်နှင့် DNS ဆာဗာက ဖတ်နိုင်တဲ့ ဘာသာစကားတစ်မျိုးဖြစ်သော်လည်း စာပို့သမားနဲ့ အခြားသူတွေတော့ မဖတ်နိုင်တဲ့ ဘာသာစကား ဖြစ်သည်။ သူက “ဒီဟာက ပုံမှန်စာပဲ” လို့ ယူဆပြီး စာကို အပေါ်ယံ မပြောင်းမလဲ မူလအတိုင်းပဲ ပို့ပေးမည် ဖြစ်သည်။

သေချာတာကတော့ တစ်နေ့မှာ စာပို့သမားတွေက “ဒီ DNS ဆာဗာက ထုတ်ပေးတဲ့အရာက တစ်ခုခု မကျန်းမမာပဲနော်” လို့ တွေးပြီးတော့ target ဖြစ်တဲ့ ဆာဗာတစ်ခုရဲ့ စာအပေါင်းကို အကုန်လုံးကို လွဲမှားအောင် ပြောင်းပစ်တာ သို့မဟုတ် ပျက်စီးအောင် ပစ်ချတာလည်း လုပ်နိုင်ပါသေးသည်။ ဒါပေမယ့် လက်ရှိအချိန်ထိတော့ မလုပ်သေးဘူး…

အပေါ်မှာ TCP အသုံးပြုဖို့ဆိုတာ ပြောထားတဲ့သူတွေရှိပါတယ်။ ဒါက root issue မဟုတ်ပါ။ DNSCrypt က UDP ကို အသုံးပြုနိုင်သေးသည်။ TCP option ကတော့ အပိုဆောင်း function တစ်ခုမျှသာ ဖြစ်ပြီး packet loss များတဲ့ network ပတ်ဝန်းကျင်မှာ UDP သုံးရတာ နည်းနည်း ခက်ခဲနိုင်လို့ ဖြစ်သည်။ 3

Dnsmasq

Dnsmasq သည် C language နဲ့ရေးထားတဲ့ အိုးပန်ဆိုတာ့ lightweight DNS forwarding နှင့် DHCP/TFTP server ဖြစ်သည်။ Dnsmasq ကို အိမ်သုံး LAN လို မျိုးကွန်ရက်ငယ်တွေ အတွက် ရည်ရွယ်ပြီး resource အသုံးပြုမှုနည်းကာ ပြင်ဆင်ရလွယ်သည်။ ထောက်ပံ့သည့် platform များတွင် Debian, Fedora, Smoothwall, IP-Cop, floppyfw, Firebox, LEAF, Freesco, fli4l, CoyoteLinux နှင့် Android တို့ ပါဝင်သည်။ ထို့အပြင် dd-wrt, OpenWrt router operating systems တွေမှာလည်း အသုံးပြုနေကြသည်။ 4

Ubuntu

Ubuntu (အင်္ဂလိပ် အသံထွက် အပြည်ပြည်ဆိုင်ရာ အသံသတ်မှတ်ချက်: /ʊˈbʊntuː/၊ uu-buun-too) ဆိုသည်မှာ desktop application ကို အဓိကထားသည့် GNU/Linux operating system တစ်ခုဖြစ်ပြီး နာမည်မှာ အာဖရိက တောင်ပိုင်းရှိ ဇူလူး သို့မဟုတ် ကော့ဆာဘာသာစကား “ubuntu” ဟုခေါ်သည့် စကားလုံးမှ ဆင်းသက်ထားသည် (ဆိုလိုသည်မှာ “ubantu”)။ အဓိပ္ပာယ်မှာ “လူသားဆန်မှု” နှင့် “ကျွန်တော်/ကျွန်မသည် လူတိုင်းရှိနေခြင်းကြောင့်ပဲ ရှိနေသည်” ဟူသောအဓိပ္ပာယ်ဖြင့် အာဖရိကရိုးရာ တန်ဖိုးတစ်ရပ်ကို ထင်ဟပ်စေသည်။

Ubuntu ကို Mark Shuttleworth က စတင်တည်ထောင်ခဲ့သည်။ ပထမဆုံး version—4.10 ကို ၂၀၀၄ ခုနှစ် အောက်တိုဘာလ ၂၀ ရက်နေ့တွင် ဖြန့်ချိခဲ့ပြီး ၎င်းသည် Debian ကို အခြေခံ၍ တီထွင်ခဲ့သည်။ Debian ရဲ့ upgrade မူဝါဒက တည်ငြိမ်မှုကို အလေးပေးသော်လည်း Ubuntu ကတော့ ခြောက်လတစ်ကြိမ် version အသစ်ထုတ်ပေးသည်။ မျှော်မှန်းချက်မှာ လူများက software အသစ်တွေကို အချိန်မီ ရရှိပြီး အသုံးပြုနိုင်ရန်ဖြစ်သည်။

Ubuntu ကို တီထွင်ရသည့် ရည်ရွယ်ချက်မှာ ကိုယ်ပိုင် PC များကို လွယ်ကူစွာ အသုံးပြုနိုင်စေရန်ဖြစ်ပြီး အဖွဲ့အစည်း/လုပ်ငန်းအသုံးချမှုအတွက် server version များကိုလည်း ထောက်ပံ့ပေးရန်ဖြစ်သည်။ Ubuntu ၏ version အသစ်တိုင်းတွင် ထိုအချိန်က GNOME desktop environment အသစ်ဆုံး ပါဝင်လေ့ရှိပြီး ပုံမှန်အားဖြင့် GNOME ထုတ်ပြီးနောက် တစ်လအတွင်း ထုတ်လွှင့်သည်။ Debian ကို အခြေခံသည့် အခြား Linux release များဖြစ်သည့် MEPIS, Xandros, Linspire, Progeny, Libranet စသည်တို့နှင့် နှိုင်းယှဉ်ပါက Ubuntu သည် Debian ၏ development idea ကို ပိုမိုနီးကပ်စွာ လိုက်နာပြီး လွတ်လပ်ပြီး open-source software ကို အဓိကအသုံးပြုသည်။ အခြား release များမှာ များသောအားဖြင့် closed-source software အများအပြား ပါလာတတ်သည်။

Ubuntu သည် Debian ၏ unstable branch ပေါ်တွင် တည်ဆောက်ထားသည်—software format (deb) မည်မျှဖြစ်စေ၊ software management/install system (Debian Apt) မည်မျှဖြစ်စေ။ Ubuntu developer များသည် software ပြင်ဆင်ချက်များကို version အသစ်ထုတ်ပေးသည့်အချိန်တွင်သာ မကြေညာဘဲ Debian community ဆီကို လက်ရှိအချိန်တစ်ပြိုင်နက် feedback ပေးကြသည်။ အမှန်မှာ Ubuntu developer များအများအပြားသည် Debian ရှိ အဓိက software များကိုလည်း တာဝန်ယူထိန်းသိမ်းသူများ ဖြစ်ကြသည်။ သို့သော် Debian နှင့် Ubuntu ရဲ့ package များသည် အမြဲတမ်းလုံးဝ အပြန်အလှန် အသုံးချနိုင်မည်မဟုတ်—Debian package ကို Ubuntu ပေါ်တွင် တပ်ဆင်လျှင် သဟဇာတပြဿနာ ဖြစ်နိုင်သလို၊ ပြောင်းပြန်လည်း အလားတူဖြစ်နိုင်သည်။

Ubuntu ၏ လည်ပတ်မှုတွင် Canonical ကုမ္ပဏီ၏ ထောက်ပံ့မှုကို အဓိက အားကိုးပြီး Linux community အတွင်းမှ စိတ်ပါဝင်စားသူများကလည်း ကူညီပံ့ပိုးကြသည်။ Ubuntu developer များက Mark Shuttleworth ကို SABDFL ဟု များစွာ ခေါ်ကြသည် (self-appointed benevolent dictator for life ၏ အတိုကောက်—မိမိကိုယ်တိုင်ခန့်အပ်ထားသည့် ဘဝတလျှောက် “open-source အကြီးအကဲ/ဒိုင်ကတား” လိုမျိုး)။ ၂၀၀၅ ခုနှစ် ဇူလိုင်လ ၈ ရက်နေ့တွင် Mark Shuttleworth နှင့် Canonical တို့က Ubuntu Foundation ကို စတင်တည်ထောင်ကြောင်း ကြေညာခဲ့ပြီး စတင်လည်ပတ်ရန် အမေရိကန်ဒေါ်လာ ၁၀ သန်း ပေးအပ်ခဲ့သည်။ ဖောင်ဒေးရှင်း တည်ထောင်ရသည့် ရည်ရွယ်ချက်မှာ အနာဂတ်တွင် Ubuntu ဆက်လက် ဖွံ့ဖြိုးတိုးတက်ပြီး ထောက်ပံ့မှု ရရှိနိုင်ရန် ဖြစ်သော်လည်း ၂၀၀၆ ခုနှစ်အထိ ဖောင်ဒေးရှင်းသည် အလုပ်လည်ပတ်ခြင်း မစတင်သေးချေ။ Mark Shuttleworth က ဒီဖောင်ဒေးရှင်းကို Canonical ကုမ္ပဏီသည် ဘဏ္ဍာရေး အကျပ်အတည်း ဖြစ်ပေါ်ချိန်ကာလအတွက် အရေးပေါ် လည်ပတ်ရန် လိုအပ်သည့် ရန်ပုံငွေ ဟုဖော်ပြခဲ့သည်။

အရင်ဗားရှင်းများတွင် အသုံးပြုသူများသည် shipit ဝန်ဆောင်မှုဖြင့် အခမဲ့ တပ်ဆင်ဒစ်ပြား (installation discs) များကို ရယူနိုင်သည်။ Ubuntu 6.06 မှာတော့ အခမဲ့ shipit ဝန်ဆောင်မှု ပေးထားသော်လည်း နောက်ထပ် Ubuntu 6.10 မှာတော့ အခမဲ့ shipit အပြန်အလှန်ပို့ပေးတဲ့ disc ဝန်ဆောင်မှု မရှိတော့ပါ။ အသုံးပြုသူများသည် website မှနေ disk image ကို ဒေါင်းလုဒ်လုပ်ပြီး CD/DVD ကို ရေးထိုးပြီး တပ်ဆင်ရမည်ဖြစ်သည်။ Ubuntu 6.06 ထုတ်ပြီးခန့်မှာတော့ နောက်ပိုင်းတွင် LTS မဟုတ်သည့် version များအတွက် shipit ဝန်ဆောင်မှုတော့ မပေးတော့ဟု သတင်းပျံ့နှံ့ခဲ့သည်။ သို့သော် Ubuntu 7.04 ထုတ်တဲ့အချိန်မှာတော့ shipit ဝန်ဆောင်မှု ပြန်စတင်ခဲ့ပြီး၊ သို့သော် ဒီ version သည် LTS မဟုတ်ပါ။ Ubuntu 11.04 ထုတ်မယ့်အချိန်နီးကပ်ခါလည်း shipit ကို ရပ်ဆိုင်းခဲ့သည်။

လက်ရှိတွင် Ubuntu တွင် Long Term Support (LTS) ၅ ခုသာ ရှိသည်—Ubuntu 6.06၊ 8.04၊ 10.04၊ 12.04 နှင့် 14.04။ Ubuntu 12.04 နှင့် 14.04 မှာ desktop နှင့် server နှစ်မျိုးလုံး ၅ နှစ် ပံ့ပိုးပေးသည်။ ယခင် LTS များသည် desktop အတွက် ၃ နှစ်၊ server အတွက် ၅ နှစ် ပံ့ပိုးခဲ့သည်။ 5

Ubuntu ဖြန့်ချိမည့် စာရင်း: 6

Ubuntu ဖြန့်ချိမည့် စာရင်း

ဗားရှင်းနံပါတ် ကုဒ်အမည် မြန်မာအဓိပ္ပာယ်
Ubuntu 4.10 Warty Warthog အဖုအထစ်များရှိသော ဝက်ကြီး
Ubuntu 5.04 Hoary Hedgehog အဖြူရောင်ဆံပင်နှင့် ခလုတ်တုတ် မျောက်ဝံ (hedgehog)
Ubuntu 5.10 Breezy Badger လေတိုက်ရုံလေးနဲ့ တောင်တက်နေတဲ့ badger
Ubuntu 6.06 LTS Dapper Drake သပ်သပ်ရပ်ရပ်ရှိတဲ့ အထီးဘဲ
Ubuntu 6.10 Edgy Eft အစပ်အခတ် တောက်ပနေတဲ့ အခွံလေးမျိုး (eft)
Ubuntu 7.04 Feisty Fawn မာန်ကန်သလိုရှိတဲ့ ခြင်္သေ့သေး (fawn)
Ubuntu 7.10 Gutsy Gibbon သတ္တိရှိတဲ့ လက်တံရှည် မျောက်
Ubuntu 8.04 LTS Hardy Heron ခိုင်ခံ့တဲ့ ငှက်လင်းတ (heron)
Ubuntu 8.10 Intrepid Ibex မကြောက်မရွံ့တဲ့ သားတောင်ဆိတ်
Ubuntu 9.04 Jaunty Jackalope စိတ်ဓာတ်မြင့်ပြီး တောက်ပြောင်တဲ့ jackalope
Ubuntu 9.10 Karmic Koala ကံကောင်းတဲ့ koala
Ubuntu 10.04 LTS Lucid Lynx ကြည်လင်တဲ့ lynx
Ubuntu 10.10 Maverick Meerkat မူလမတူတဲ့ meerkat
Ubuntu 11.04 Natty Narwhal လျင်မြန်ပြီး သပ်သပ်ရပ်ရပ်ရှိတဲ့ နာဝဲလ် (narwhal)
Ubuntu 11.10 Oneiric Ocelot အိပ်မက်ထဲက ocelot
Ubuntu 12.04 LTS Precise Pangolin တိကျတဲ့ pangolin
Ubuntu 12.10 Quantal Quetzal ကွမ်တမ် quetzal
Ubuntu 13.04 Raring Ringtail အားပြည့်ပြီး ringtail cat မျိုး
Ubuntu 13.10 Saucy Salamander ဟာသဆန်ဆန်ရှိတဲ့ salamander
Ubuntu 14.04 LTS Trusty Tahr ယုံကြည်ရတဲ့ tahr
Ubuntu 14.10 Utopic Unicorn အနာဂတ်နဲ့ဆိုင်တဲ့ unicorn

တစ်、PPA ကို စီစဉ်ခြင်း

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:shnatsel/dnscrypt

နှစ်、DNSCrypt Proxy ကို တပ်ဆင်ခြင်း

တပ်ဆင်ခြင်း:

sudo apt-get update
sudo apt-get install dnscrypt-proxy

စီစဉ်ခြင်း:

DNSCrypt ၏ မူလ (default) ပို့တ်မှာ 53 ဖြစ်သောကြောင့် DNSMasq နှင့် ပို့တ်အတူတူ ဖြစ်သွားမည်။ ထို့ကြောင့် ပို့တ်ကို 40 ကဲ့သို့ အခြားပို့တ်သို့ ပြောင်းရမည်

/etc/default/dnscrypt-proxy 7 ကို ပြင်ပါ၊ ထိုလိုင်းကို ရှာပြီး ပို့တ်ကို 40 သို့ ပြောင်းပါ။ သင်အခြားပို့တ်သို့ ပြောင်းနိုင်သော်လည်း စနစ်ရှိ အခြားပို့တ်များနှင့် မတိုက်ဆိုင်စေရပါ:

# What local IP the daemon will listen to, with an optional port. The default port is 53.
local
-address=127.0.0.2:40

စမ်းသပ်ခြင်း:

$ sudo service dnscrypt-proxy restart
dnscrypt-proxy stop/waiting
dnscrypt-proxy start/running, process 1561

$ dig g.cn @127.0
.0.2 -p 40
; > DiG 9.8
.1-P1 <<>> g.cn @127.0.0.2 -p 40;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30656
;; flags: qr rd ra; QUERY: 1
, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0
, flags:; udp: 4096;; QUESTION SECTION:
;g.cn.				IN	A

;; ANSWER SECTION:
g.cn.			227
	IN	A	203.208.48.148g.cn.			227
	IN	A	203.208.48.144g.cn.			227
	IN	A	203.208.48.145g.cn.			227
	IN	A	203.208.48.146g.cn.			227
	IN	A	203.208.48.147
;; Query time: 113
 msec;; SERVER: 127.0
.0.2#40(127.0.0.2);; WHEN: Sun Aug 23
 22:28:37 2015;; MSG SIZE  rcvd: 113

ရှင်းလင်းချက်:

DNSCrypt တွင် လည်ပတ်မှု (run) မုဒ် ၃ မျိုးရှိသည်—

Command line mode: command line ပေါ်မှာ parameters တွေနဲ့ start command ကို တိုက်ရိုက်သတ်မှတ်ခြင်း 8

ပံ့ပိုးထားတဲ့ command များမှာ—

$ dnscrypt-proxy --help
dnscrypt-proxy 1.4
.0
Options:

  -a
	--local-address=...			# 监听的地址,例如: 127.0.0.1:53  -d
	--Daemonize模式				# 守护进程模式  -e
	--edns-payload-size=...		# 后面略,详情见官方文档[^2]  -h	--help
  -L	--resolvers-list=...
  -R	--resolver-name=...
  -l
	--logfile=...  -m	--loglevel=...
  -n	--max-active-requests=...
  -p	--pidfile=...
  -X	--plugin=...
  -N	--provider-name=...
  -k	--provider-key=...
  -r	--resolver-address=...
  -u	--user=...
  -t	--test=...
  -T	--tcp-only
  -V	--version

Please consult the dnscrypt-proxy(8
) man page for details.

Daemonize mode: နောက်ခံ process အဖြစ်လည်ပတ်ခြင်း

sudo dnscrypt-proxy -d ကို အသုံးပြုပဲ စတင်နိုင်သည်။ command line parameters များကို မလိုအပ်ပါ။ parameter များအားလုံးကို /etc/default/dnscrypt-proxy configuration file မှ တင်ဖတ်သည်

System service mode:မူလ default မုဒ်

တပ်ဆင်ပြီးသည်နှင့် သို့မဟုတ် စနစ်စတင်ချိန်တွင် အလိုအလျောက် စတင်သည်။ Daemonize mode လိုပဲ start parameters များကို /etc/default/dnscrypt-proxy configuration file မှဖတ်သည်

  • ရပ်တန့်ရန်:sudo service dnscrypt stop
  • စတင်ရန်:sudo service dnscrypt start
  • ပြန်စတင်ရန်:sudo service dnscrypt restart

နှစ်、DNSMasq ကို တပ်ဆင်ခြင်း

တပ်ဆင်ခြင်း:

sudo apt-get update
sudo apt-get -y install dnsmasq

စီစဉ်ခြင်း:

/etc/dnsmasq.conf configuration file ကို ပြင်ပါ။ လိုအပ်သလို file content ကို မိမိအလိုက်ညှိနိုင်သည်။ ဒီနေရာမှာ option တစ်ခုချင်းစီရဲ့ အလုပ်လုပ်ပုံနှင့် သတိပြုရမည့်အချက်တွေကို အထူးမရှင်းတော့ပါ။ အသေးစိတ်ကို google 9 တွင်ကြည့်နိုင်ပါတယ်။ ယခုတော့ DNSMasq ရဲ့ upstream server ကို 방刚刚 설정ခဲ့သည့် DNSCrypt-Proxy ကိုသာထားရန် လိုသည်။

ရှာပြီး အောက်ပါအတိုင်း ပြောင်းပါ:

# You can control how dnsmasq talks to a server: this forces
# queries to 10.1.2.3 to be routed via eth1
# server=10.1.2.3@eth1
server=127.0
.0.2#40

စမ်းသပ်ခြင်း

ဒီနေရာမှာ သုံးမယ့် port က -p 53 ဖြစ်ပြီး၊ အရင်ရှင်းခဲ့တဲ့ dnscrpyt-proxy (DNSCrypt-Proxy) ရဲ့ -p 40 နဲ့ မတူပါ

$ sudo service dnsmasq restart
Stopped Name Service Cache Daemon: nscd.
 * Starting Name Service Cache Daemon nscd                               [ OK ]
 * Restarting DNS forwarder and DHCP server dnsmasq                      [ OK ]
Stopped Name Service Cache Daemon: nscd.
 * Starting Name Service Cache Daemon nscd                               [ OK ]

$ dig g.cn @127.0
.0.1 -p 53
; > DiG 9.8
.1-P1 <<>> g.cn @127.0.0.1 -p 53;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52188
;; flags: qr rd ra; QUERY: 1
, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0
, flags:; udp: 4096;; QUESTION SECTION:
;g.cn.				IN	A

;; ANSWER SECTION:
g.cn.			295
	IN	A	203.208.48.144g.cn.			295
	IN	A	203.208.48.146g.cn.			295
	IN	A	203.208.48.148g.cn.			295
	IN	A	203.208.48.145g.cn.			295
	IN	A	203.208.48.147
;; Query time: 113
 msec;; SERVER: 127.0
.0.1#53(127.0.0.1);; WHEN: Sun Aug 23
 22:41:00 2015;; MSG SIZE  rcvd: 113

ရှင်းလင်းချက်:

dnsmasq က အခြား upstream server တွေကိုလည်း သုံးနိုင်သည်။ ဥပမာ 8.8.8.8 နှင့် 114.114.114.114 တို့ ဖြစ်သည်။ dnsmasq မူလက ပြင်ပ port ကို နားထောင် (listen) လုပ်ထားသောကြောင့် အထူးသဖြင့် “နားထောင်မည့် IP” ကို configure လုပ်ရန် မလိုအပ်ပါ။ ပြင်ပ IP ကို တိုက်ရိုက်ဝင်ကြည့်ပြီး စမ်းသပ်နိုင်ပြီး ဥပမာအားဖြင့်—

nslookup g.cn 192.168
.31.139

သုံး、OpenDNS အလုပ်လုပ်မှု စမ်းသပ်ခြင်း

OpenDNS的测试页面 ကို ဝင်ကြည့်ပါ။ အမှန်ခြစ် (tick) ပေါ်လာပါက သတ်မှတ်ချက်အောင်မြင်ပြီးဖြစ်ကြောင်း ဆိုလိုသည်။ အဆင်မပြေပါက မှတ်ချက်ချန်ထားပါ :)


1.

DNS cache poisoning၊ ဝီကီပီးဒီးယား:https://zh.wikipedia.org/wiki/域名服务器缓存污染↩ 2.

OpenDNS၊ ဝီကီပီးဒီးယား:https://zh.wikipedia.org/wiki/OpenDNS↩ 3.

DNSCrypt အလုပ်လုပ်ပုံက ဘာလဲ? DNS pollution ကို ဘာကြောင့်ကာကွယ်နိုင်တာလဲ?၊ 知乎:http://www.zhihu.com/question/24253866/answer/29272628↩ 4.

Dnsmasq၊ ဝီကီပီးဒီးယား:https://zh.wikipedia.org/wiki/Dnsmasq↩ 5.

Ubuntu၊ ဝီကီပီးဒီးယား:https://zh.wikipedia.org/wiki/Ubuntu↩ 6.

Ubuntu ထုတ်ဝေမှုစာရင်း၊ ဝီကီပီးဒီးယား:https://zh.wikipedia.org/wiki/Ubuntu发行版列表↩ 7.

ဒီဖိုင်က DNSCrypt ကို တပ်ဆင်တဲ့အချိန်မှာ အလိုအလျောက်ထုတ်လုပ်ပေးထားတာပါ ↩ 8.

ဒါက စာရွက်စာတမ်းထဲက စံ start method ဖြစ်ပြီး official document ကိုကြည့်ပါ:https://github.com/jedisct1/dnscrypt-proxy#usage↩ 9.

DNSMasq configuration:https://www.google.com/search?q=dnsmasq.conf%20%E7%9A%84#newwindow=1&safe=active&q=dnsmasq.conf+%E9%85%8D%E7%BD%AE↩