Create TOC

2018년 5월 10일

pi-hole + DNSCrypt

DNSCrypt 설치 및 설청

아래와 같이 DNSCrypt를 설치한다.

$ wget https://github.com/jedisct1/dnscrypt-proxy/releases/download/2.0.11/dnscrypt-proxy-linux_arm-2.0.11.tar.gz
$ tar xvfz dnscrypt-proxy-linux_arm-2.0.11.tar.gz
$ mv linux-arm dnscrypt-proxy
$ sudo mv dnscrypt-proxy /opt

아래와 같이 예제 설정 파일을 복사한다.

$ cd /opt/dnscrypt-proxy
$ sudo cp example-dnscrypt-proxy.toml dnscrypt-proxy.toml

/opt/dnscrypt-proxy/dnscrypt-proxy.toml에서 원하는 설정을 변경하면 된다.

server_names = ['cloudflare', 'arvind-io', 'google']
listen_addresses = ['127.0.0.1:55', '[::1]:55']
require_dnssec = true

설정이 끝나면 아래 명령으로 서비스를 등록한다.

$ sudo /opt/dnscrypt-proxy/dnscrypt-proxy -service install

아래 명령으로 실행한다.

$ sudo systemctl start dnscrypt-proxy.service

pi-hole 설정

4.0 이상

4.0 부터는 DNS 서버를 dnsmasq를 사용하지 않기 때문에 pihole 설정을 직접 수정해야 한다. /etc/pihole/setupVars.conf파일에서 PIHOLE_DNS_1값을 수정한다.

PIHOLE_DNS_1=127.0.0.1#55

DNS 서버를 다시 시작한다.

$ sudo pihole restartdns

4.0 이전

/etc/dnsmasq.d/01-pihole.conf 파일에서 server=로 시작하는 줄을 아래와 같이 #을 붙여서 주석 처리 한다.

#server=1.1.1.1
#server=1.0.0.1

아래와 같은 내용으로 /etc/dnsmasq.d/02-dnscrypt.conf 파일을 만든다.

server=127.0.0.1#55

/etc/pihole/setupVars.conf 파일에서 PIHOLE_DNS로 시작하는 줄을 모두 주석 처리 한다.

그 후 dnsmasq를 재시작한다.

$ sudo systemctl restart dnsmasq.service

테스트

설정이 완료되면 DNSSEC Resolver Test 사이트에 접속해서 확인해본다.

2018년 5월 8일

pi-hole + DNS over HTTPS

Cloudflared 설치 및 설청

아래와 같이 CloudFlared를 설치한다.

$ wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-arm.tgz
$ tar xvfz cloudflared-stable-linux-arm.tgz
$ rm cloudflared-stable-linux-arm.tgz
$ sudo mv cloudflared /usr/local/bin

아래 명령을 실행해서 실행되는지 확인한다.

$ sudo cloudfalred proxy-dns --port 54 --upstream https://1.1.1.1/.well-known/dns-query --upstream https://1.0.0.1/.well-
known/dns-query

실행되는 것을 확인했으면 Ctrl-C로 중지 시키고 아래와 같은 내용으로 /usr/local/etc/cloudflared/config.yaml 파일을 만든다.

proxy-dns: true
proxy-dns-port: 54
proxy-dns-upstream:
 - https://1.1.1.1/.well-known/dns-query
 - https://1.0.0.1/.well-known/dns-query

서비스 등록을 위해 아래와 같은 내용으로 /etc/systemd/system/dnsproxy.service 파일을 만든다.

[Unit]
Description=CloudFlare DNS over HTTPS Proxy
Wants=network-online.target
After=network.target network-online.target

[Service]
ExecStart=/usr/local/bin/cloudflared
Restart=on-abort

[Install]
WantedBy=multi-user.target

파일을 만든 후에는 아래 명령을 이용해 dnsproxy.service활성화시킨다.

$ sudo systemctl enable dnsproxy.service

아래 명령으로 실행한다.

$ sudo systemctl start dnsproxy.service

pi-hole 설정

4.0 이상

4.0 부터는 DNS 서버를 dnsmasq를 사용하지 않기 때문에 pihole 설정을 직접 수정해야 한다. /etc/pihole/setupVars.conf파일에서 PIHOLE_DNS_1값을 수정한다.

PIHOLE_DNS_1=127.0.0.1#54

DNS 서버를 다시 시작한다.

$ sudo pihole restartdns

4.0 이전

/etc/dnsmasq.d/01-pihole.conf 파일에서 server=로 시작하는 줄을 아래와 같이 #을 붙여서 주석 처리 한다.

#server=1.1.1.1
#server=1.0.0.1

아래와 같은 내용으로 /etc/dnsmasq.d/02-cloudflare.conf 파일을 만든다.

server=127.0.0.1#54

/etc/pihole/setupVars.conf 파일에서 PIHOLE_DNS로 시작하는 줄을 모두 주석 처리 한다.

그 후 dnsmasq를 재시작한다.

$ sudo systemctl restart dnsmasq.service

테스트

설정이 완료되면 DNSSEC Resolver Test 사이트에 접속해서 확인해본다.