macOS에서 DNS over HTTPS 구성하기
이 가이드는 macOS 시스템에서 DNS over HTTPS (DoH)를 설정하고 구성하는 방법을 기본 설정부터 고급 구성까지 완전한 지침을 제공합니다.
필수 조건
- macOS 10.15 (Catalina) 이상
- 관리자 권한
- 안정적인 네트워크 연결
- 기본 명령줄 지식
시스템 수준 구성
1단계: 시스템 설정 사용
- Apple 메뉴 클릭
- “시스템 설정” (또는 “시스템 환경설정”) 선택
- “네트워크” 클릭
- 현재 네트워크 연결 선택
- “세부 정보…” 클릭
- “DNS” 탭 선택
2단계: DNS 서버 구성
- ”+” 버튼을 클릭하여 DNS 서버 추가
- 다음 서버 주소 입력:
1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001
3단계: 터미널 구성
터미널을 열고 다음 명령을 실행합니다:
# 현재 DNS 설정 보기
scutil --dns
# DNS 서버 구성
networksetup -setdnsservers Wi-Fi 1.1.1.1 1.0.0.1
# 설정 확인
networksetup -getdnsservers Wi-Fi
타사 클라이언트 사용
DNSCrypt-Proxy
- 설치
# Homebrew를 사용하여 설치
brew install dnscrypt-proxy
# 또는 수동 설치
curl -L https://github.com/DNSCrypt/dnscrypt-proxy/releases/latest/download/dnscrypt-proxy-macos-amd64.tar.gz | tar xz
- 구성
dnscrypt-proxy.toml
파일을 편집합니다:
listen_addresses = ['127.0.0.1:53']
server_names = ['cloudflare', 'google']
doh_servers = true
require_dnssec = true
require_nolog = true
require_nofilter = true
force_tcp = false
timeout = 2500
keepalive = 30
- 서비스 시작
# 서비스 설치
sudo brew services start dnscrypt-proxy
# 또는 수동 시작
sudo dnscrypt-proxy -service install
sudo dnscrypt-proxy -service start
암호화된 DNS 프로필
- 구성 프로필 생성
.mobileconfig
파일을 생성합니다:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>DNSSettings</key>
<dict>
<key>DNSProtocol</key>
<string>HTTPS</string>
<key>ServerURL</key>
<string>https://cloudflare-dns.com/dns-query</string>
</dict>
<key>PayloadDescription</key>
<string>Configure DNS over HTTPS</string>
<key>PayloadDisplayName</key>
<string>DNS Settings</string>
<key>PayloadIdentifier</key>
<string>com.example.dns</string>
<key>PayloadType</key>
<string>com.apple.dnsSettings.managed</string>
<key>PayloadUUID</key>
<string>A1B2C3D4-E5F6-G7H8-I9J0-K1L2M3N4O5P6</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</array>
<key>PayloadDescription</key>
<string>DNS over HTTPS Configuration</string>
<key>PayloadDisplayName</key>
<string>DoH Configuration</string>
<key>PayloadIdentifier</key>
<string>com.example.doh</string>
<key>PayloadRemovalDisallowed</key>
<false/>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>Q1R2S3T4-U5V6-W7X8-Y9Z0-A1B2C3D4E5F6</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>
- 프로필 설치
- 구성 파일을 더블클릭
- 시스템 프롬프트에 따라 설치
- 시스템 설정에서 확인
구성 확인
방법 1: 터미널 사용
# DNS 확인 테스트
dig example.com @127.0.0.1
# DNSSEC 확인
dig example.com @127.0.0.1 +dnssec
# DoH 서버 확인
dig whoami.cloudflare CH TXT @127.0.0.1
방법 2: 시스템 도구 사용
- “네트워크 유틸리티” 열기
- “조회” 선택
- 테스트할 도메인 이름 입력
- 확인 결과 확인
방법 3: 온라인 테스트
- DNS 유출 테스트 웹사이트 방문
- 표준 테스트 실행
- DNS 요청 라우팅 확인
문제 해결
일반적인 문제
-
DNS 확인 실패
- 네트워크 연결 확인
- DNS 설정 확인
- 네트워크 서비스 재시작
- DNS 캐시 지우기
-
성능 문제
- 가장 가까운 서버 선택
- 캐시 설정 최적화
- 응답 시간 모니터링
- 시스템 리소스 확인
-
구성 프로필 문제
- 파일 형식 확인
- 권한 설정 확인
- 구성 재설치
- 시스템 버전 업데이트
시스템 진단
- 네트워크 진단
# 네트워크 연결 테스트
ping 1.1.1.1
# 라우팅 확인
traceroute 1.1.1.1
# 네트워크 상태 보기
networksetup -listallnetworkservices
- DNS 진단
# DNS 캐시 지우기
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
# DNS 구성 보기
scutil --dns
# DNS 확인 테스트
dig +trace example.com
모범 사례
-
제공업체 선택
- 개인정보 보호 정책 평가
- 서비스 가용성 확인
- 지리적 위치 고려
- 연결 속도 테스트
-
보안 권장사항
- DNSSEC 활성화
- 신뢰할 수 있는 제공업체 사용
- 정기적인 시스템 업데이트
- 네트워크 활동 모니터링
-
성능 최적화
- 가장 가까운 서버 선택
- 캐시 설정 최적화
- 성능 메트릭 모니터링
- 정기적인 유지보수
기업 배포
MDM 구성
-
구성 파일 생성
- DNS 매개변수 설정
- 보안 옵션 구성
- 배포 범위 정의
- 서명 인증서 준비
-
배포 전략
- 구성 프로필 푸시
- 배포 상태 모니터링
- 오류 보고 처리
- 구성 업데이트
자동화된 구성
- 스크립트 사용
#!/bin/bash
# DoH 구성
configure_doh() {
# 필요한 도구 설치
brew install dnscrypt-proxy
# 구성 백업
cp /usr/local/etc/dnscrypt-proxy.toml /usr/local/etc/dnscrypt-proxy.toml.bak
# 서비스 시작
brew services start dnscrypt-proxy
}
- 구성 관리 도구 사용
# Ansible 예시
- name: Configure DNS over HTTPS
hosts: macos_clients
tasks:
- name: Install dnscrypt-proxy
homebrew:
name: dnscrypt-proxy
state: present
- name: Configure dnscrypt-proxy
template:
src: dnscrypt-proxy.toml.j2
dest: /usr/local/etc/dnscrypt-proxy.toml
추가 리소스
중요 참고사항
-
시스템 호환성
- 시스템 버전 확인
- 하드웨어 요구사항 확인
- 소프트웨어 호환성 테스트
- 성능 영향 평가
-
네트워크 영향
- 네트워크 지연 시간 모니터링
- 대역폭 사용량 평가
- 장애 조치 옵션 고려
- 라우팅 설정 최적화
-
보안 고려사항
- 구성 파일 보호
- 접근 권한 제한
- 시스템 로그 모니터링
- 정기적인 보안 감사
-
유지보수 권장사항
- 정기적인 소프트웨어 업데이트
- 구성 백업
- 시스템 상태 모니터링
- 비상 계획 개발