이거 때문에 왕삽질(꽃삽질 수준을 넘어선)을 하게되긴 했지만.. 그 덕에 또 지식이 늘었다고 위안 삼을 수 밖에. (openwrt 새 판을 설치했다가.. 이 문제를 알아채지 못하고 결국 초기화하는 무식한 짓까지 해버렸다..)
이 기능을 쓴다고 해서 현재 대한민국에서 접속이 막혀있는 사이트에 접근가능하게 되지는 않는다. 그건 또 다른 문제. 그를 위해선 Tor(느리다!)나 Green Tunnel 등을 사용해야한다.
DOT 는 그저, 내 자신이 털릴(?) 가능성을 줄여주는 용도라고 해야할까. Wikipedia 엔 이렇게 나와있다.
The goal of the method is to increase user privacy and security by preventing eavesdropping and manipulation of DNS data via man-in-the-middle attacks.
또한, 현재 DOT 를 Openwrt 에서 구현하는 방법은 두가지인데, Stubby 와 Unbound 중 하나를 선택할 수 있다. 이중 Stubby 를 선택했다. Stubby 는 현재 사용중인 Dnsmasq 와 공존하는 반면, Unbound 는 Dnsmasq 를 삭제해야만 하기에, 기존 설정을 다시 해야 하는 불편과 불안, 번거로움등이 있어 Stubby 를 택했다.
어떤게 더 좋은지는 당연히 모른다.
아무튼, 설정은 간단하다.
설치/설정
기기에 접속한 후, 먼저 Stubby 를 설치하고, 몇가지 설정을 추가한다.
uci 를 사용해서 뭔가 복잡한 작업을 하는 듯 한데, 그 결과는 단 세줄에 불과하다.
# 꾸러미 설치 opkg update opkg install stubby # DNS 암호화 설정 /etc/init.d/dnsmasq stop uci set dhcp.@dnsmasq[0].noresolv="1" uci -q delete dhcp.@dnsmasq[0].server uci get stubby.global.listen_address \ | sed -e "s/\s/\n/g;s/@/#/g" \ | while read -r STUBBY_SERV do uci add_list dhcp.@dnsmasq[0].server="${STUBBY_SERV}" done uci commit dhcp /etc/init.d/dnsmasq start
uci 작업으로 추가된 내용은 /etc/config/dhcp
에 있다.
config dnsmasq .... 앞부분 생략 option noresolv '1' list server '127.0.0.1#5453' list server '0::1#5453'
확인하는 방법도 여러가지라고 하는데, 결과값을 해석하는데 좀 어려움이 있으니(뭔 말인지 잘 모르겠다는!), 그냥 1.1.1.1/help 가 가장 무난한 듯.
Openwrt 판올림 후!
Stubby 를 설치한 상황이라면, Openwrt 를 판올림했을 때 살짝 문제가 있을 수 있다.
판올림한 뒤, 바로 Stubby 를 재설치/설정 해줘야 하는데, 그렇지 못했을 경우 공유기에 연결된 기기(Client)들에서 인터넷 연결이 되지 않는 현상이 나타난다. 엄밀하게 말해서 ‘인터넷’이 안되지는 않고, DNS 서비스가 불가능하다고 말해야 하지만.
다시 말해, IP 로 연결은 된다. 그러나 도메인 이름으로 연결은 불가능해진다.
아무튼, 판올림 후엔 곧바로 stubby 를 재설치 해줘야 원활한 인터넷 생활을 할 수 있다.
되돌리기(Uninstall)
되돌리려면, opkg 로 stubby 를 삭제하고, /etc/config/dhcp
에서 추가된 세 줄도 역시 삭제(또는 주석 처리)해준다.
마지막으로 /etc/config/stubby
와 /etc/stubby
(디렉토리) 도 지워주면 깔끔해진다.
opkg remove studdy --autoremove # /etc/config/dhcp 는 편집 rm /etc/config/stubby rm -rf /etc/stubby
Hostname 사용 불가?
연결된 클라이언트들에선 이상이 없지만, 정작 Openwrt 가 돌아가고 있는 기기에서는 호스트명으로 기기에 접근할 수가 없다.
예를 들어, nfsserver 라는 기기가 있고, 이 IP 가 192.168.0.5 라고 가정했을때, 클라이언트에서는 호스트명이나 IP 모두로 접근할 수 있지만, 공유기에서는 오로지 IP 로만 접근된다.
아마도 이유는 option noresolv '1'
때문인 듯 한데, 이걸 해결하는 방법은 못찾았다. 꼭 필요한 기능이 아니기도 하고..
임시방편으로, Openwrt 의 /etc/hosts
에 호스트명과 IP 를 넣어주면 해결되긴 하지만.. DNS 서버가 있는 상황에서 이런 방법을 택해야 한다니..? 뭔가 해법이 있을 듯도 한데..?
WAN port 53 막기?
Openwrt 설정에는, 53 포트를 막는게 좋다고 돼 있다.
어떻게 하는지 잘 몰라서 대충 이런 식으로 해보긴 했는데.. (/etc/config/firewall
)
config rule option name 'Block 53' option target 'REJECT' option src 'lan' option dest 'wan' option dest_port '53'
잘 되는 건진 모르겠다.