๐ง Linux DNS Cache Server ๆถ่จญ(Unbound / dnsmasq)
้้ DNS ๅฟซๅไผบๆๅจ(Cache Server)ๅฏๆๆๆธๅฐๆฅ่ฉขๅปถ้ฒ、้ไฝๅค้จๆต้่ฒ ๆ,ๅธธ่ฆๆนๆกๅ ๅซ Unbound ่ dnsmasq。ๆฌๆๅฐ้ๆญฅ่ชชๆๅจ Linux ็ฐๅขไธญ้จ็ฝฒ、่จญๅฎ่้ฉ่ญ็ๆนๆณ。
๐งฑ ไธ、ไป้บผๆฏ DNS Cache Server?
DNS Cache Server(ๅๅๅฟซๅไผบๆๅจ)่ฒ ่ฒฌๅจไฝฟ็จ่ ๆฅ่ฉข็ถฒๅๅ็จฑๆ,ๆซๅญ่งฃๆ็ตๆ,ไปฅไพฟ็ธๅ่ซๆฑๅฏ็ดๆฅๅพๅฟซๅๅๆ。ๆญค่ไธๅ ่ฝ็ฏ็ๅค้จ DNS ๆฅ่ฉขๆ้,ไน่ฝ้ไฝ็ถฒ่ทฏๅปถ้ฒ่้ ปๅฏฌๆถ่。
- Unbound:้ซๅฎๅ จๆง、ๆฏๆด DNSSEC ้ฉ่ญ。
- dnsmasq:่ผ้็ด,้ฉๅๅ ง็ถฒ่ๅฐๅ็ณป็ตฑ。
⚙️ ไบ、ๅฎ่ฃ Unbound / dnsmasq
ไปฅๅธธ่ฆ็ผ่ก็็บไพ:
# Rocky / CentOS / RHEL
sudo dnf install unbound -y
sudo systemctl enable --now unbound
# Ubuntu / Debian
sudo apt install unbound -y
sudo systemctl enable --now unbound
# ๆๅฎ่ฃ dnsmasq
sudo apt install dnsmasq -y
sudo systemctl enable --now dnsmasq
๐ ไธ、Unbound ๅบๆฌ่จญๅฎ
Unbound ็ไธป่จญๅฎๆชไฝๆผ /etc/unbound/unbound.conf,ๅฏๆ นๆ้ๆฑไฟฎๆนๅฆไธ:
server:
interface: 0.0.0.0
access-control: 192.168.0.0/16 allow
verbosity: 1
cache-min-ttl: 3600
cache-max-ttl: 86400
prefetch: yes
num-threads: 2
forward-zone:
name: "."
forward-addr: 8.8.8.8
forward-addr: 1.1.1.1
ๅฎๆๅพ้ๆฐๅๅๆๅ:
sudo systemctl restart unbound
sudo systemctl status unbound
๐งฉ ๅ、dnsmasq ๅฟซๅ่จญๅฎ็ฏไพ
dnsmasq ่จญๅฎๆชไฝๆผ /etc/dnsmasq.conf,็ฏไพๅฆไธ:
no-resolv
server=8.8.8.8
server=1.1.1.1
cache-size=1000
log-queries
log-facility=/var/log/dnsmasq.log
ๅฒๅญๅพ้ๆฐๅๅๆๅ:
sudo systemctl restart dnsmasq
๐ ไบ、ๆธฌ่ฉฆ DNS ๅฟซๅๆฏๅฆ็ๆ
ๅฏไฝฟ็จ dig ๆ drill ๆธฌ่ฉฆๅฟซๅๅๆๆ้:
dig @127.0.0.1 google.com
dig @127.0.0.1 google.com # ็ฌฌไบๆฌกๆ้กฏ่ๅ ๅฟซ
่ฅๅ็จ log,ๅฏ่งๅฏ /var/log/messages ๆ /var/log/dnsmasq.log ๅ
งๆฏๅฆๆๅฝไธญ(cache hit)็ด้。
๐ก ๅ ญ、ๅฎๅ จๅผทๅ่ๅฐ้ๆกๆๅๅ
- ๅจ Unbound ไธญๅ็จ
auto-trust-anchor-fileไปฅๆฏๆด DNSSEC。 - ๆญ้
้ปๅๅฎ(ไพๅฆ
/etc/unbound/adblock.conf)ๅฏ้ๆฟพๅปฃๅ่ๆกๆ็ซๅฐ。 - dnsmasq ๅฏ็ตๅ
address=/example.com/0.0.0.0้ปๆๆๅฎๅๅ。
๐ ็ต่ช
็ก่ซๆฏไผๆฅญ็ถฒ่ทฏๆๅฎถๅบญไผบๆๅจ,้จ็ฝฒ DNS ๅฟซๅๆๅ้ฝ่ฝ้กฏ่ๆๅ็ถฒ้ ่งฃๆ้ๅบฆ่ๅฎๅ จๆง。Unbound ้ฉๅ้่ฆ DNSSEC ้ฉ่ญ็็ฐๅข;dnsmasq ๅไปฅ่ผ้่ๅฝๆง่ฆ้ท。ๆ นๆ็ถฒ่ทฏ่ฆๆจก่็ถญ่ญท้ๆฑ้ธๆๅ้ฉๆนๆก,ๅณๅฏๅจๅ ง็ถฒไธญๅปบ็ซ้ซๆ、ๅฎๅ จ็ DNS ๅบ็คๆถๆง。
๐ ๅปถไผธ้ฑ่ฎ
- ๐งฑ Linux Proxy Server ๅปบ็ฝฎๆๅญธ(Squid ๅฎ่ฃ่่จญๅฎๆๅ)
- ๐งฉ Linux systemd ๆทฑๅ ฅ่งฃๆ่ๅๅๆต็จ็ฎก็
- ๐งฑ Linux Firewall + Fail2Ban ๅฎๅ จๅผทๅ่่ชๅๅฐ้่จญๅฎ
— WWFandy・็ณป็ตฑ่็ถฒ่ทฏ็ญ่จ
ๆฒๆ็่จ:
ๅผต่ฒผ็่จ