매일 업데이트
2022-02-11 09:05 5 min

Linux에서 DNS 트래픽을 암호화하기 위해 DNSCrypt를 사용하는 방법

리눅스 환경에서 개인 정보 보호를 위한 빠르고 간단한 방법 중 하나는 DNS 조회 정보를 누가 볼 수 있는지 제어하는 것입니다. 이는 모든 IP 트래픽을 완전히 숨기지는 않지만, 위험한 DNS 스푸핑 공격을 효과적으로 차단하여 보안을 크게 강화합니다. 리눅스에서 DNS 트래픽을 암호화하는 가장 효율적인 방법 중 하나는 DNSCrypt를 활용하는 것입니다.

DNSCrypt는 리눅스 PC에 올바르게 설정되면 모든 DNS 트래픽을 암호화하여, 정보가 안전하게 목적지로 전달되도록 보장하는 로컬 프로그램입니다.

DNSCrypt 설치하기

대부분의 리눅스 배포판에서는 소프트웨어 저장소에 DNSCrypt가 포함되어 있어 쉽게 설치할 수 있습니다. 터미널을 열고 다음 명령을 입력하여 사용 중인 리눅스 배포판에 맞는 설치를 진행하십시오.

우분투

sudo apt install dnscrypt-proxy

데비안

sudo apt-get install dnscrypt-proxy

아치 리눅스

sudo pacman -S dnscrypt-proxy

페도라

sudo dnf install dnscrypt-proxy -y

오픈수세

sudo zypper install dnscrypt-proxy

기타 리눅스 배포판

만약 사용 중인 운영 체제에 맞는 DNSCrypt 버전을 찾을 수 없다면, 다음으로 좋은 방법은 GitHub에서 직접 프로그램을 다운로드하는 것입니다. 다행히 개발자들의 노력 덕분에 소스 코드에서 DNSCrypt를 직접 빌드할 필요 없이, 미리 빌드된 바이너리를 다운로드하여 사용할 수 있습니다. 이 바이너리는 대부분의 리눅스 배포판에서 호환됩니다.

바이너리를 다운로드하려면 터미널을 열고 wget 다운로더 도구를 사용하여 최신 버전을 가져오세요.

wget https://github.com/jedisct1/dnscrypt-proxy/releases/download/2.0.16/dnscrypt-proxy-linux_x86_64-2.0.16.tar.gz

32비트 버전이 필요한 경우에는 다음 명령을 사용하십시오.

wget https://github.com/jedisct1/dnscrypt-proxy/releases/download/2.0.16/dnscrypt-proxy-linux_i386-2.0.16.tar.gz

ARM 버전의 DNSCrypt도 제공된다는 사실을 알고 계셨나요? ARM 리눅스 운영 체제에서도 이 도구를 사용할 수 있습니다. 다운로드하려면 wget을 설치한 후 터미널에서 다음 명령을 실행하세요.

wget https://github.com/jedisct1/dnscrypt-proxy/releases/download/2.0.16/dnscrypt-proxy-linux_arm-2.0.16.tar.gz

리눅스 ARM64 버전:

wget https://github.com/jedisct1/dnscrypt-proxy/releases/download/2.0.16/dnscrypt-proxy-linux_arm64-2.0.16.tar.gz

다운로드한 바이너리 파일을 사용하여 소프트웨어를 설치해 보겠습니다! 먼저 tar 명령어를 사용하여 아카이브 파일의 압축을 해제합니다.

tar -xzvf dnscrypt-proxy-linux_*-2.0.16.tar.gz

압축 해제 후 DNSCrypt 바이너리 폴더는 /home 디렉토리 내 "linux" 폴더에 저장됩니다. 이 파일들은 wget 도구가 있는 /home/ 디렉토리에 안전하게 보관하는 것이 좋습니다. 실수로 폴더를 삭제하지 않도록 주의하십시오!

이제 도구를 실행하기 위해, 압축 해제된 폴더로 이동해야 합니다. cd 명령을 사용하여 이동합니다.

cd linux-*

다음 명령을 사용하여 DNSCrypt를 시작합니다.

./dnscrypt

DNSCrypt 설정

DNSCrypt 도구는 리눅스 PC에 설치되었으며 이제 사용할 준비가 되었습니다. 하지만 설치만으로는 작동하지 않으며, 설정을 변경해야 합니다. 첫 번째 단계는 사용할 공용 DNS를 선택하는 것입니다.

보안이 강화된 다양한 공용 DNS 옵션이 존재합니다. ISP에서 제공하는 DNS 대신 대체 DNS를 사용하는 것이 보안을 향상시키는 데 중요합니다. ISP에 숨기지 않는다면, 리눅스에서 암호화된 DNS를 설정하는 의미가 퇴색됩니다.

보안 퍼블릭 DNS 공급업체 중 하나로 클라우드플레어를 강력히 추천합니다. 클라우드플레어를 선택해야 하는 이유는 명확합니다. 클라우드플레어는 DNS 영역에서 사용자의 개인 정보 보호를 중시한다는 것을 여러 차례 입증해 보였으며, 또한 매우 빠른 속도를 제공합니다.

참고: 클라우드플레어 DNS를 사용하고 싶지 않다면, OpenDNS도 좋은 대안이 될 수 있습니다. 여기에서 자세한 내용을 확인하세요!

네트워크 아이콘을 클릭하여 현재 연결 설정을 수정합니다.

IPv4 옵션에서 "DNS 서버" 설정 항목을 찾아 다음 주소를 입력합니다.

127.0.0.2

DNSCrypt 소프트웨어를 설정한 후에는 네트워크 관리자를 재시작해야 합니다. 그렇지 않으면 도구가 제대로 작동하지 않을 수 있습니다.

sudo systemctl restart NetworkManager.service

DNS 설정 적용

이제 DNSCrypt 도구가 작동하도록 기본적인 설정이 완료되었습니다. 마지막 단계로 명령줄에서 DNS 설정을 적용해야 합니다.

sudo dnscrypt-proxy -R cloudflare -a 127.0.0.2:53 -u dnscrypt

DNSCrypt 비활성화

DNSCrypt는 사용자가 DNS 조회를 보호하고 보안을 강화하며, DNS 스푸핑 공격을 방지할 수 있는 훌륭한 도구입니다. 그러나 어떤 이유로든 사용을 원치 않는 경우 비활성화할 수도 있습니다.

리눅스의 systemd init 시스템 덕분에, DNSCrypt는 제거할 필요 없이 언제든지 시작 및 중지할 수 있습니다. 비활성화하려면 터미널을 열고 루트 쉘에 접근하십시오.

sudo -s

루트 쉘을 획득한 후에는 DNSCrypt 서비스 파일을 자유롭게 조작할 수 있습니다. 서비스를 중지하려면 다음 명령을 실행하십시오.

sudo systemctl stop dnscrypt-proxy.service

완전히 비활성화하고 시작 시 자동으로 실행되지 않도록 하려면 다음 명령을 사용하십시오.

sudo systemctl disable dnscrypt-proxy.service
저자
Korea

기술 트렌드와 실용적인 팁을 전하는 लेखक입니다.