꿈을꾸는 파랑새

오늘은 파이어폭스의 DNS-over-HTTPS를 통한 DNS 변경 (DNS 우회 방법)방법에 대해 알아보겠습니다. 일단 DNS라는 단어에 대해 알아보고 가야 하겠습니다. Domain Name System의 줄임말로 DNS라고 하며 IP 네트워크에서 사용하는 시스템에서 사용되며 한글주소, 영어 주소를 IP 네트워크에서 찾아갈 수 있게 도와주는 기능을 합니다. 이 말을 쉽게 이야기한다면 우리가 한동네의 있는 커피 카페가 있다고 가정했을 때 IP는 커피 카페 가게이고 DNS라는 것은 114에 전화해서 해당 커피 카페 가게에 연결을 요청한다고 생각을 하면 됩니다. 또 여기서 제목처럼 DNS-over-HTTPS이라는 것도 알아야 합니다.

HTTPS를 사용을 해서 사이트를 방문하고 있을 때도 DNS 요청은 암호화가 되지 않습니다.

쉽게 이야기하면 전송되는 패킷 자체는 암호화가 되는데 패킷의 목적지는 평문으로 노출되어 있기 때문에 개인정보 보호가 안 된다는 문제가 발생합니다. 여기서 DNS-over-HTTPS는 DNS 요청을 HTTPS를 통해서 HTP GET 또는 POST 명령과 JSON 문법을 사용하여 DNS 서버 정보에 접근합니다. 이를 통해서 DNS-over-HTTPS는 DNS 쿼리를 웹 쿼리로 위장하게 보이게 해서 보안성을 높여주는 것을 말하는 것입니다.

해당 DNS-over-HTTPS는 기본적으로 RFC 8484이라는 이름으로 IETF에 표준으로 제안되었고 Cloudflare의 서버는 JOSON뿐만 아니라 일반적인 DNS 요청에 사용되는 Wireformat를 HTTPS를 통해 주고받는 기능을 추가해서 진행하기도 했으면 현재 DNS-over-HTTPS(DOH)가 지원하는 DNS 서버는 구글과 클라 우드 플레어, IBM Quad 9가 있으며 현재 이를 지원하는 브라우저는 모질라에서 제공하는 브라우저인 파이어폭스(Firefox)에서도 제공을 하고 있습니다.

즉 해당 DNS-over-HTTPS(DOH)이라는 것을 사용하려면 브라우저와 DNS가 모두 지원을 해야 하여야 합니다. 여기서 나는 구글 크롬과 인터넷익스플러워(Internet Explorer)등과 같이 사용을 하시는 분들은 컴퓨터에 설치하는 DNS Switch, DNS Benchmark, DNS Jumper를 사용해서 수동으로 설정하는 방법 이것도 귀찮다고 하시는 분들은 dnscrypt 프로그램을 이용하는 방법

opendnscrypt 프로그램

그리고 또 다른 것을 사용하고 싶은 경우에는

DNS 변경 관련 사이트

에서 글을 읽어보면 DNS 우회를 할 수 있게 해주는 프로그램 및 어플을 소개해주고 있습니다. 그리고 여기서 중요한 용어도 설명도 하고 가야 할 것입니다.
DNSSEC:DNS 서버 내부적으로 사용하는 DNS 정보 유효성 검사 절차
DNS-over-HTTPS:DNS 서버와 HTTPS 방식으로 보안 통신해서 DNS 정보를 가져오는 방식으로 DNS over TLS: DNS 서버와 TLS 보안 통신을 하여 DNS 정보를 가져 오는 방식입니다.
자 그럼 파이어폭스에서 DNS-over-HTTPS를 사용을 하는 방법에 대해 알아보겠습니다. 아마도 DNS-over-HTTPS가 주목을 받은 이유가 아마도 최근에 정부에서 HTTPS를 사용을 하는 불법사이트 차단을 하려고 DNS 차단 방법을 사용하는 방법 때문에 많은 분이 신경을 쓰시고 있을 것입니다.

일단 파이어폭스에서는 파이어폭스 60 버전 이후 버전부터 제공하고 있으면 나이들리 버전에서는 SNI암호화 기능까지 제공하고 있습니다. 일단 DNS 서버를 개인용 또는 공용으로 변경하여 성능, 보안 또는 원치 않는 인터넷 검열을 필터링 할 수 있습니다.
일단 파이어폭스는 기본적으로 해당 DNS-over-HTTPS기능은 작동을 하고 있지 않습니다. 그렇다고 하면 활성화를 시켜주어야 할 것입니다.

먼저 파이어폭스 최신 버전을 설치합니다. 그리고 나서 about:config 주소창에 입력하고 엔터키를 눌러주면 경고창이 나오는데 이것을 무시하고 설정 화면에 들어옵니다. 그리고 나서 검색 부분에 trr를 입력을 하면 다음과 같은 화면이 나오는 것을 볼 수가 있습니다. 여기서 해당 부분을 몇 가지 수정을 해야 합니다.
수정해야 하는 항목은 다음과 같습니다.

preference network.trr.mode는 Firefox에서 TRR의 상태를 정의합니다.
값 0은 사용 불가능하고 사용되지 않음을 의미합니다.
파이어폭스가 어느 쪽이 더 빠른지에 따라 네이티브 DNS 또는 TRR 중 하나를 사용하는 값은 1입니다.
값 2는 기본적으로 TRR을 사용하지만 어떤 이유로 든 이름 확인이 실패 할 경우 네이티브 리졸버로 롤백합니다.
값 3은 TRR 전용 모드를 사용 가능하게 합니다. TRR 만 사용되며 폴백이 없습니다.
값 4는 섀도우 모드에서 실행됩니다. 즉, TRR이 데이터 수집을 위해 병렬로 실행되지만 원시 확인자가 사용됩니다.
여기서 preference network.trr.mode 값은 2로 수정을 합니다.
기본 설정 network.trr.uri는 HTTPS를 통한 DNS 서버의 주소로 설정되어야 합니다.
https://dns.cloudflare.com/.well-known/dns
https://dns.google.com/experimental
그리고 또 다른 서버를 원한다면 다음 사이트에서 찾을수가 있습니다.그리고 해당 사이트에서는 DNS-over-HTTPS 를 지원하는 브라우저도 함께 볼수가 있습니다.

DNS-over-HTTPS 서버 목록 및 지원 브라우저

DNS-over-HTTPS 에서 제공하는 서버를 사용하면 됩니다. 개인적으로 앞에 소개해 드린 서버를 사용하는 것이 좋을 것 같습니다.
기타 환경 설정
network.trr.credentials:HTTPS 끝점을 통한 DNS 요청에 사용되는 자격 증명입니다 (기본값 : 없음).
network.trr.wait-for-portal:전용 포털 탐지가 알맞은 경우에만 TRR을 사용하십시오. (기본 값 : true).
network.trr.allow-rfc1918: TRR 응답에서 RFC 1918 개인 주소를 허용합니다. (기본 값 : false).
network.trr.useGET:Post 대신 GET를 사용하려면 (기본 값 : false).
network.trr.confirmationNS:Firefox는 기본 도메인 이름을 확인하여 긍정적인 답변 (기본 값:example.com)을 수락하여 TRR이 작동하는지 확인합니다.
network.trr.bootstrapAddress:network.trr.uri 아래 URI의 IP로 설정하여 네이티브 시스템 분석기를 사용하여 이를 찾지 않고 우회할 수 있습니다. (기본 값 : none).
network.trr.blacklist-duration:항목이 블랙리스트에 보관되는 시간 (초) (기본값:259200)
network.trr.request-timeout:밀리 초 단위로 시간 초과를 요청합니다. (기본 값:1500)
network.trr.early-AAAA:Firefox는 A 및 AAAA 항목을 확인하고 기본 설정이 true로 설정된 경우에만 AAAA를 먼저 사용합니다. (기본 값 : false)
입니다. 여기서 변경을 해야 하는 항목은 다음과 같습니다.
network.trr.uri를 다음값중 한개를 선택을 합니다.
https://dns.cloudflare.com/.well-known/dns
https://dns.google.com/experimental
그리고 나서 다음 값들을 변경합니다.
network.trr.allow-rfc1918:true
network.trr.bootstrapAddress:1.1.1.1 또는 8.8.8.8 둘 중 하나 사용하면 됩니다.

중요: 안드로이드 에서 파이어폭스 브라우저를 사용을 하고 있으면 같은 방법으로 적용 해주면 됩니다.애플 쪽은 확인 못함

그러면 해당 값들을 수정하고 나면 다음과 같은 결과가 될 것입니다.
그리고 나서 브라우저를 닫고 나서 다음 사이트로 이동합니다. 해당 사이트는 해당 DNS-over-HTTPS를 테스트를 하면 다음과 같은 결과가 나올 것입니다.

DNS-over-HTTPS 테스트

그러면 SNI 암호화는 아직은 파이어폭스 나이틀리 버전에서만 지금 시범적으로 사용하고 있습니다. 일단 SNI 암호화가 나오기 전까지는 해당 설정으로 하면 되고 개인적인 생각으로는 대략 빠르면 이번 년도 12월 아니면 2019년 1월~2월 업데이트에서 추가가 될 것 같습니다.

그리고 안드로이드 사용자 분들은 Intra이라는 구글 플레이에서 검색을 하면 사용을 할 수가 있습니다. 해당 앱은 LTE에서도 같이 적용이 되니까 DNS 우회를 하고 싶은 분들은 해당 어플을 사용을 하면 되고 아이폰 같은 경우 앞서 다른 브라우저에서 DNS 우회를 할 수 있게 해주는 사이트인 DNS 변경 관련 사이트 에서 확인을 할 수가 있을 것입니다.그리고 일단 간단하게 DNS 우회하는 방법에 대해 알아보았습니다. 만약 와이파이에서도 사용하고 싶은 경우에는 https://1.1.1.1 에서 제공하는 방법대로 공유기에 설정을 해주면 됩니다.

<기타 관련 글>

[소프트웨어 팁/보안] - Punycode(퓨니코드)를 악용하는 피싱공격 발견

[소프트웨어 팁/보안] - 브라우저가 얼마나 개인정보를 수집하는지 보여 주는 사이트-What every Browser knows about you

[소프트웨어 팁/보안] - WebRTC 설정으로 인한 IP주소 노출 차단 방법

[소프트웨어 팁] - 파이어폭스 차단 리스트 기능 중지 방법

[소프트웨어 팁] - 파이어폭스 브라우저에서 이미지를 사용하지 않는 방법

[소프트웨어 팁] - 파이어폭스 TelemetryPing 중지 방법

[소프트웨어 팁/보안] - 파이어폭스에서 WebRTC 사용안함을 통한 개인정보 보호 방법

[소프트웨어 팁/보안] - 파이어폭스 개인 정보 보호를 위한 network.http.sendSecureXSiteReferrer 정지 방법

[소프트웨어 팁/보안] - 파이어폭스 보안 강화 설정 방법

[소프트웨어 팁] - 파이어폭스에서 about:config 설정을 재설정 하는 방법

[소프트웨어 팁] - 파이어폭스 Plugin-container 중지 시키기!

[소프트웨어 팁/보안] - 인터넷 DNS 트랙픽을 암호화하는 DNSCrypt

[소프트웨어 팁/보안] - 자신이 사용하는 인터넷 DNS 누수 확인 방법

[소프트웨어 팁/보안] - 공유기 DNS 변조를 악용하는 네이버 사칭 피싱 공격 큐싱 예방 방법

[소프트웨어 팁/보안] - DNS 변경에 의한 공유기 해킹 간단하게 확인하는 방법

[소프트웨어 팁] - 인터넷 속도를 빠르게 하기위한 DNS 변경 프로그램-ChrisPC DNS Switch

[소프트웨어 팁/보안] - 유블럭 오리진으로 강제 가상화폐채굴 차단 방법

[소프트웨어 팁] - 안드로이드 스마트폰 와이파이 DNS 변경 방법


그리드형

공유하기

facebook twitter kakaoTalk kakaostory naver band