데드우드 - 클라우드의 온라인

이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 deadwood 명령입니다.

프로그램:

이름


deadwood - 완전 재귀 캐싱 DNS 확인자

기술


Deadwood는 완전히 재귀적인 DNS 캐시입니다. 이는 다음과 같은 기능을 갖춘 DNS 서버입니다.

* DNS 재귀 및 DNS 전달 캐싱을 모두 완벽하게 지원

* 임베디드 시스템에 적합한 작은 크기와 메모리 공간

* 간단하고 깔끔한 코드베이스

* 안전한 디자인

* 스푸핑 방지: 쿼리 ID 및 소스 포트를 결정하는 데 사용되는 강력한 암호화

* 캐시를 파일에 읽고 쓰는 기능

* 최근에 사용되지 않은 항목을 삭제하는 동적 캐시

* 업스트림 연결이 불가능할 때 캐시의 만료된 항목을 사용하는 기능
DNS 서버.

* 원하는 경우 IPv6 지원을 컴파일할 수 있습니다.

* DNS-over-UDP와 DNS-over-TCP는 모두 동일한 데몬에 의해 처리됩니다.

* 내장 DNSwall 기능

COMMAND LINE 인수


Deadwood에는 단일 선택적 명령줄 인수가 있습니다. 구성 위치
Deadwood가 사용하는 파일이며 "-f" 플래그로 지정됩니다. 이것이 정의되어 있지 않으면 Deadwood
"/etc/maradns/deadwood/dwood3rc" 파일을 구성 파일로 사용합니다.

즉, Deadwood를 다음과 같이 호출합니다. 역재 Deadwood가 사용하게 될 것입니다.
/etc/maradns/deadwood/dwood3rc를 구성 파일로 사용합니다. Deadwood를 다음과 같이 호출합니다. 역재 -f
foobar 그러면 Deadwood가 현재 작업 디렉터리에 있는 "foobar" 파일을 사용하게 됩니다(
디렉터리 XNUMX은 Deadwood를 시작할 때 있는 위치)를 구성 파일로 사용합니다.

구성 FILE FORMAT


Deadwood 구성 파일은 Python 2의 구문을 모델로 합니다. 유효한 데드우드
구성 파일은 Python 2.4.3과 Python 2.6.6 모두에서 올바르게 구문 분석되어야 합니다. 만약에
모든 구성 파일은 Deadwood에서 올바르게 구문 분석되지만 다음에서 구문 오류가 발생합니다.
Python, 이것은 수정되어야 할 버그입니다.

이를 염두에 두고 공백은 중요합니다. Deadwood 매개변수는 가장 왼쪽에 있어야 합니다.
앞에 공백이 없는 열입니다. 이것은 유효한 줄입니다(공백이 없는 한).
왼쪽):

recursive_acl = "127.0.0.1/16"

그러나 다음 줄은 구문 분석 오류를 발생시킵니다.

recursive_acl = "127.0.0.1/16"

형식이 잘못 지정된 "recusive_acl" 문자열 왼쪽의 공백을 확인하세요.
줄입니다.

매개 변수 타입


Deadwood에는 세 가지 매개변수 유형이 있습니다.

* 숫자 매개변수. 숫자 매개변수는 다음과 같이 따옴표로 묶어서는 안 됩니다.
예:

filter_rfc1918 = 0

숫자 매개변수가 따옴표로 묶인 경우 "알 수 없는 dwood3rc"라는 오류 메시지가 나타납니다.
문자열 매개변수"가 나타납니다.

* 문자열 매개변수. 문자열 매개변수는 다음과 같이 따옴표로 묶어야 합니다.
예:

바인딩_주소 = "127.0.0.1"

* 사전 매개변수. 모든 사전 매개변수는 사용하기 전에 초기화되어야 하며,
사전 매개변수에는 사전 색인과 해당 색인에 대한 값이 모두 있어야 합니다.
다음 예와 같이 따옴표로 묶습니다.

업스트림_서버 = {}
upstream_servers["."]="8.8.8.8, 8.8.4.4"

모든 dwood3rc 매개변수 다음은 숫자 매개변수입니다.

* 바인딩_주소(문자열)

* 캐시_파일(문자열)

* chroot_dir (문자열)

* ip_블랙리스트(문자열)

* ipv4_bind_addresses (문자열)

* random_seed_file (문자열)

* recursive_acl(문자열)

* root_servers(사전)

* upstream_servers(사전)

지원 매개 변수


Deadwood 구성 파일은 다음 매개변수를 지원합니다.

바인딩_주소

이는 우리가 바인딩하는 IP(또는 IPv6) 주소입니다.

캐시_파일

캐시를 디스크에 읽고 쓰는 데 사용되는 파일의 파일 이름입니다. 이것
문자열에는 소문자, '-' 기호, '_' 기호 및 '/' 기호(예:
캐시를 하위 디렉터리에 넣습니다). 다른 모든 기호는 '_' 기호가 됩니다.

이 파일은 Deadwood가 실행되는 사용자로 읽고 쓰여집니다.

chroot_dir

이는 프로그램이 실행될 디렉터리입니다.

배달_모두

이는 Deadwood 2.3의 동작에 영향을 주지만 Deadwood 3에는 영향을 주지 않습니다. 이 변수는
여기에서만 Deadwood 2 rc 파일을 Deadwood 3에서 실행할 수 있습니다.

dns_port

이것은 Deadwood가 바인딩하고 들어오는 연결을 수신하는 포트입니다. 기본값
이에 대한 값은 표준 DNS 포트인 포트 53입니다.

filter_rfc1918

이 값이 1이면 여러 다른 IP 범위가 DNS A에 있을 수 없습니다.
답장 :

* 192.168.xx

* 172.[16-31].xx

* 10.xxx

* 127.xxx

* 169.254.xx

* 224.xxx

* 0.0.xx

DNS 응답에서 위 IP 중 하나가 감지되고 filter_rfc1918의 값이 1인 경우,
Deadwood는 "이 호스트는 응답하지 않습니다"라는 합성 응답(SOA 레코드)을 반환합니다.
NS 섹션)을 A 레코드 대신 사용하세요.

그 이유는 어떤 종류의 공격으로부터 사용자를 보호하는 "dnswall"을 제공하기 위해서입니다.
에 설명된 대로 공격 http://crypto.stanford.edu/dns/

Deadwood는 IPv4 "dnswall" 기능만 제공하며 도움이 되지 않습니다.
IPv6 응답으로부터 보호합니다. 특정 IPv6 AAAA 레코드에 대한 보호가 필요한 경우
Reject_aaaa 값을 1로 설정하여 모든 AAAA 응답을 비활성화하거나
원하지 않는 IPv4 응답을 필터링하는 외부 프로그램(예: dnswall 프로그램)

기본값은 1입니다.

handle_norply

이 값이 0으로 설정되면 Deadwood는 클라이언트에 응답을 다시 보내지 않습니다(클라이언트가
TCP 클라이언트, Deadwood는 UDP 쿼리가 업스트림으로 전송되면 TCP 연결을 닫고
업스트림 DNS는 응답을 보내지 않습니다.

이 값을 1로 설정하면 UDP 쿼리가 실행될 때 Deadwood가 클라이언트에 SERVER FAIL을 다시 보냅니다.
업스트림으로 전송되고 업스트림 DNS는 응답을 보내지 않습니다.

기본값은 1입니다.

핸들_과부하

이 값이 0이면 Deadwood는 UDP 쿼리가 전송될 때 응답을 보내지 않으며
서버가 과부하되었습니다(대기 중인 연결이 너무 많습니다). 값이 1일 때,
Deadwood는 UDP 쿼리 발신자에게 SERVER FAIL 패킷을 다시 보냅니다. 기본값
왜냐하면 이것은 1이기 때문입니다.

해시_매직_번호

이는 해시 생성기를 유지하기 위해 Deadwood의 내부 해시 생성기에 사용되었습니다.
다소 무작위적이고 특정 유형의 공격에 면역입니다. Deadwood 3.0에서는 엔트로피가
해시 함수는 /dev/urandom(Windows의 경우 secret.txt)의 내용을 확인하여 생성됩니다.
머신) 및 현재 타임스탬프입니다. 이 매개변수는 여기에만 있으므로 이전 구성
Deadwood 3.0에서는 파일이 깨지지 않습니다.

ip_블랙리스트

이것은 DNS 요청에 대한 응답이 허용되지 않는 IP 목록입니다. 그만큼
그 이유는 일부 ISP가 "이 사이트"를 변환하는 관행에 대응하기 위한 것입니다.
존재하지 않습니다." DNS는 ISP가 제어하는 ​​페이지에 응답합니다. 이로 인해
보안 문제들.

이 매개변수는 개별 IP만 허용하며 넷마스크를 사용하지 않습니다.

maradns_uid

사용자 ID Deadwood는 다음으로 실행됩니다. 10에서 65535 사이의 숫자일 수 있습니다. 기본값
값은 99입니다(RedHat 파생 Linux 배포판에는 아무도 없음). 이 값은 다음에서 사용되지 않습니다.
윈도우 시스템.

maradns_gid

그룹 ID Deadwood는 다음과 같이 실행됩니다. 10에서 65535 사이의 숫자일 수 있습니다. 기본값
값은 99입니다. 이 값은 Windows 시스템에서는 사용되지 않습니다.

max_ar_chain

리소스 레코드 순환이 활성화되어 있는지 여부입니다. 값이 1이면 리소스 레코드입니다.
회전이 활성화되고, 그렇지 않으면 리소스 레코드 회전이 비활성화됩니다.

리소스 레코드 순환은 DNS가 원유처럼 작동할 수 있도록 허용하므로 일반적으로 바람직합니다.
로드 밸런서. 그러나 로드가 많은 시스템에서는 비활성화하는 것이 바람직할 수 있습니다.
CPU 사용량을 줄입니다.

이 변수에 특이한 이름을 붙인 이유는 MaraDNS와의 호환성을 유지하기 위해서입니다.
mararc 파일.

기본값은 1: 리소스 레코드 회전이 활성화됩니다.

max_inflights

동일한 쿼리에 대해 동시에 처리하는 최대 동시 클라이언트 수입니다.

예를 들어 "example.com."에 대한 쿼리를 처리하는 동안 다른 DNS 클라이언트가
Deadwood에서는 처리할 새 쿼리를 만드는 대신 example.com에 대한 또 다른 쿼리를 생성합니다.
example.com에서 Deadwood는 이미 "in"에 있는 동일한 쿼리에 새 클라이언트를 연결합니다.
flight"를 선택하고 example.com에 대한 답변이 있으면 두 클라이언트 모두에게 답장을 보냅니다.

이는 특정 쿼리가 가질 수 있는 동시 클라이언트 수입니다. 이 한도라면
초과하면 동일한 쿼리를 사용하는 후속 클라이언트는 답변을 찾을 때까지 거부됩니다. 만약에
이 값은 1입니다. 동일한 쿼리에 대한 여러 요청을 병합하지 않고 각 요청을 제공합니다.
자체 연결을 요청합니다.

기본값은 8입니다.

max_ttl

캐시에 항목을 유지하는 최대 시간(초)입니다.
'최대 TTL').

이는 항목을 캐시된 상태로 유지하는 가장 긴 시간입니다. 이 매개변수의 기본값은 다음과 같습니다.
86400(300일); 최소값은 5(XNUMX분)이고 최대값은 XNUMX입니다.
7776000(90일)입니다.

이 매개변수가 여기에 있는 이유는 악용하는 공격으로부터 Deadwood를 보호하기 위한 것입니다.
"유령 도메인 이름" 공격과 같은 캐시에 오래된 데이터가 있습니다.

maximum_cache_elements

캐시에 허용되는 최대 요소 수입니다. 32 사이의 숫자입니다.
및 16,777,216; 기본값은 1024입니다. 캐시를 다음에 쓰는 경우
디스크를 읽거나 디스크에서 캐시를 읽는 경우 이 값이 높을수록 캐시 속도가 느려집니다.
읽기 쓰기.

각 캐시 항목이 사용하는 메모리 양은 운영 체제에 따라 다릅니다.
사용된 메모리 할당 페이지의 크기. 예를 들어 Windows XP에서는 각
항목은 약 XNUMXKB의 메모리를 사용하며 Deadwood의 오버헤드는
약 512킬로바이트. 따라서 512개의 캐시 요소가 있는 경우 Deadwood는 다음을 사용합니다.
약 2.5MB의 메모리이며 1024개의 캐시 요소가 있는 경우 Deadwood는
약 4.5MB의 메모리. 다시 말하지만, 이 숫자는 Windows XP 및 기타 제품에 대한 것입니다.
운영 체제에는 서로 다른 메모리 할당 번호가 있습니다.

각 root_servers 및 upstream_servers 항목은 Deadwood의 공간을 차지합니다.
캐시와 많은 수의 캐시를 저장하려면 maximum_cache_elements를 늘려야 합니다.
이 항목.

최대 프로세스

이것은 Deadwood가 보유할 수 있는 보류 중인 원격 UDP 연결의 최대 수입니다. 그만큼
기본값은 1024입니다.

max_tcp_procs

허용된 개방형 TCP 연결 수입니다. 기본값: 8

num_retries

포기하기 전에 쿼리 업스트림을 보내려고 재시도하는 횟수입니다. 이것이 0이라면 우리는
한 번만 시도해 보세요. 이것이 1이면 두 번 시도하고, 최대 32번까지 재시도합니다. 각
다시 시도하려면 timeout_seconds초가 걸립니다. 기본값: 5

ns_glueless_type

글루리스 레코드를 해결하기 위해 보내는 RR 유형입니다. 주로 사용하는 경우에는 1(A)로 하여야 합니다.
레코드를 확인하기 위한 IPv4. 글루리스 NS 레코드에 AAAA가 있지만 A 레코드가 없고 IPv6가
활성화된 경우 이 값을 255(ANY)로 지정하는 것이 합리적일 수 있습니다. IPv4가 더 이상 작동하지 않는 경우
대규모로 사용되면 결국 이 값을 28로 만드는 것이 가능할 수도 있습니다.
(AAAA).

기본값은 1: A(IPv4 IP) 레코드입니다. 이 매개변수는 지원 테스트를 거쳤습니다. 에서 사용
너 자신의 위험.

무작위_시드_파일

이것은 난수를 포함하는 파일이며,
암호학적으로 강력한 난수 생성기. Deadwood는 256바이트를 읽으려고 시도합니다.
이 파일에서 (RNG Deadwood 사용은 임의 길이의 스트림을 허용할 수 있습니다).

해시 압축 함수는 구문 분석 전에 엔트로피의 일부를 얻습니다.
mararc 파일이며 /dev/urandom(Windows의 경우 secret.txt)에서 엔트로피를 가져오도록 하드 코딩되어 있습니다.
시스템). Deadwood가 사용하는 대부분의 다른 엔트로피는 다음이 가리키는 파일에서 나옵니다.
무작위_시드_파일.

recurse_min_bind_port

Deadwood가 바인딩할 수 있는 가장 낮은 번호의 포트입니다. 이것은 사용되는 임의의 포트 번호입니다.
나가는 쿼리의 소스 포트는 53이 아닙니다(위의 dns_port 참조). 이것은
1025~32767 사이의 숫자이며 기본값은 15000입니다. 이는 DNS를 만드는 데 사용됩니다.
스푸핑 공격이 더 어려워졌습니다.

재귀_번호_포트

나가는 연결을 위해 소스 포트에 대해 Deadwood가 바인딩하는 포트 수입니다. 이것
2과 256 사이의 32768의 거듭제곱입니다. 이는 DNS 스푸핑 공격을 더 많이 수행하는 데 사용됩니다.
어려운. 기본값은 4096입니다.

recursive_acl

이것은 "ip/mask"에서 Deadwood를 사용하여 DNS 재귀를 수행할 수 있는 사람의 목록입니다.
체재. 마스크는 0에서 32 사이의 숫자여야 합니다(IPv6의 경우 0에서 128 사이). 예를 들어,
"127.0.0.1/8"은 로컬 연결을 허용합니다.

거절_aaaa

값이 1이면 AAAA 쿼리가 올 때마다 가짜 SOA "없음" 응답이 전송됩니다.
데드우드로 보냈습니다. 즉, 프로그램이 Deadwood에게 IPv6 IP를 요청할 때마다
주소, 요청 처리를 시도하는 대신 1로 설정하면 Deadwood
문제의 호스트 이름에 IPv6 주소가 없는 것처럼 가장합니다.

이는 IPv6를 사용하지 않지만 애플리케이션(보통 *NIX 명령)을 사용하는 사람들에게 유용합니다.
IPv6 주소를 찾는 속도가 느려지는 "telnet"과 같은 응용 프로그램과 같습니다.

기본값은 0입니다. 즉, AAAA 쿼리는 다음을 제외하고는 정상적으로 처리됩니다.
이것이 설정되었습니다.

거부_mx

기본값이 1이면 MX 쿼리는 해당 IP와 함께 자동으로 삭제됩니다.
기록되었습니다. MX 쿼리는 머신이 자체 쿼리를 원하는 경우에만 수행되는 쿼리입니다.
인터넷상의 기계로 메일을 보내는 메일 서버. 이것은 일반 데스크톱에 대한 쿼리입니다.
컴퓨터(Outlook이나 다른 메일 사용자 에이전트를 사용하여 읽고 보내는 컴퓨터 포함)
이메일)은 절대 만들지 않습니다.

기계가 MX 쿼리를 시도하는 경우 기계는 다음에 의해 제어될 가능성이 높습니다.
원치 않는 "스팸" 이메일을 보내는 원격 소스. 이를 염두에 두고 Deadwood는 허용하지 않습니다.
Reject_mx가 명시적으로 0 값으로 설정되지 않은 경우 MX 쿼리가 수행됩니다.

이 기능을 비활성화하기 전에 Deadwood는 웹용으로 최적화되어 있다는 점을 명심하세요.
메일 허브의 DNS 서버가 아닌 서핑. 특히 MX 레코드의 IP는 다음과 같습니다.
Deadwood의 응답에서 제거되었으며 Deadwood는 추가 DNS 쿼리를 수행해야 합니다.
MX 레코드에 해당하는 IP를 얻으며 Deadwood의 테스트는 웹에 더 적합합니다.
서핑(거의 100% A 레코드 조회) 및 메일 전달용 아님(광범위한 MX 레코드)
조회).

거부_ptr

값이 1이면 PTR 쿼리가 발생할 때마다 가짜 SOA "없음" 응답이 전송됩니다.
데드우드로 보냈습니다. 즉, 프로그램이 Deadwood에게 "역방향 DNS"를 요청할 때마다
조회" - 주어진 IP 주소에 대한 호스트 이름 - 처리를 시도하는 대신
요청을 1로 설정하면 Deadwood는 문제의 IP 주소가 없는 것처럼 가장합니다.
호스트 이름.

이는 DNS 작업을 수행하려고 할 때 DNS 시간 초과가 느려지는 사람들에게 유용합니다.
IP에 대한 역방향 DNS 조회.

기본값은 0입니다. 즉, PTR 쿼리는 다음을 제외하면 정상적으로 처리됩니다.
이것이 설정되었습니다.

부활

이 값이 1로 설정되면 Deadwood는 만료된 레코드를 사용자에게 보내기 전에 사용자에게 보내려고 시도합니다.
위로. 0이면 그렇지 않습니다. 기본값: 1

루트_서버

이것은 루트 서버 목록입니다. 해당 구문은 upstream_servers와 동일합니다(아래 참조).
예를 들어 이는 ICANN이 실행하는 DNS 서비스 유형입니다. 다음을 수행하는 데 사용되는 서버입니다.
DNS 질문에 대한 완전한 답변을 제공하지 않고 단지 어떤 DNS 서버를
우리가 원하는 답변에 더 가까운 답변을 얻으려면 에 연결하세요.

각 root_servers 항목은 Deadwood의 캐시 공간을 차지하며
이러한 항목을 많이 저장하려면 maximum_cache_elements를 늘려야 합니다.

tcp_listen

DNS-over-TCP를 활성화하려면 이 변수를 설정해야 하며 값은 1이어야 합니다. 기본값
값: 0

timeout_seconds

이것은 보류 중인 UDP DNS를 포기하고 폐기하기 전에 Deadwood가 기다리는 시간입니다.
회신하다. Deadwood가 다음과 같이 컴파일되지 않는 한 기본값은 1입니다(예: 1초).
FALLBACK_TIME이 활성화되었습니다.

timeout_seconds_tcp

유휴 TCP 연결을 삭제하기 전에 대기하는 시간입니다. 이에 대한 기본값
4초와 마찬가지로 4입니다.

ttl_age

TTL 에이징 활성화 여부 캐시 항목의 TTL이 다음으로 설정되어 있는지 여부
항목이 캐시에 남아 있는 시간입니다.

값이 1이면 TTL 항목이 오래된 것입니다. 그렇지 않으면 그렇지 않습니다. 기본값
이에 대한 값은 1입니다.

upstream_port

이는 Deadwood가 업스트림 서버에 패킷을 연결하거나 전송하는 데 사용하는 포트입니다. 그만큼
기본값은 53입니다. 표준 DNS 포트.

업스트림_서버

이는 로드 밸런서가 연결을 시도할 DNS 서버 목록입니다. 이것은
사전 변수 (숫자 대신 문자열로 인덱스된 배열)
변하기 쉬운. upstream_servers는 사전 변수이므로 초기화해야 합니다.
사용되기 전에.

Deadwood는 업스트림 서버를 찾으려는 호스트의 이름을 확인합니다.
for 및 찾을 수 있는 가장 긴 접미사와 일치합니다.

예를 들어, 누군가가 Deadwood에 "www.foo.example.com"에 대한 쿼리를 보내면 Deadwood는
먼저 "www.foo.example.com."에 대한 upstream_servers 변수가 있는지 확인한 다음 살펴보세요.
"foo.example.com."의 경우 "example.com.", "com.", 마지막으로 "."를 찾습니다.

다음은 upstream_servers의 예입니다.

upstream_servers = {} # 사전 변수 초기화
upstream_servers["foo.example.com."] = "192.168.42.1"
upstream_servers["example.com."] = "192.168.99.254"
upstream_servers["."] = "10.1.2.3, 10.1.2.4"

이 예에서 "foo.example.com"으로 끝나는 모든 항목은 DNS 서버에 의해 확인됩니다.
192.168.42.1; "example.com"으로 끝나는 모든 항목은 192.168.99.254로 해결됩니다. 그리고
"example.com"으로 끝나지 않는 모든 항목은 10.1.2.3 또는 10.1.2.4로 해결됩니다.

중요 사항: upstream_servers가 가리키는 도메인 이름은 "."으로 끝나야 합니다. 성격. 이것은
OK :

upstream_servers["example.com."] = "192.168.42.1"

그러나 이것은 지원 OK :

upstream_servers["example.com"] = "192.168.42.1"

그 이유는 호스트 이름이 변경될 때 BIND가 예기치 않은 동작을 수행하기 때문입니다.
점으로 끝나지 않으며 호스트 이름 끝에 점을 강제로 사용함으로써 Deadwood는
사용자가 BIND의 동작을 원하는지 아니면 "정상적인" 동작을 원하는지 추측합니다.

root_servers와 upstream_servers가 모두 설정되지 않은 경우 Deadwood는 root_servers를 사용하도록 설정합니다.
기본 ICANN 루트 서버는 다음과 같습니다.

198.41.0.4 a.root-servers.net (VeriSign)
192.228.79.201 b.root-servers.net (ISI)
192.33.4.12 c.root-servers.net (코젠트)
199.7.91.13 d.root-servers.net(UMaryland)
192.203.230.10 e.root-servers.net (NASA Ames)
192.5.5.241 f.root-servers.net (ISC)
192.112.36.4 g.root-servers.net(국방부 NIC)
128.63.2.53 h.root-servers.net (ArmyRU)
192.36.148.17 i.root-servers.net (NORDUnet)
192.58.128.30 j.root-servers.net (VeriSign)
193.0.14.129 k.root-servers.net (Reseaux)
199.7.83.42 l.root-servers.net (IANA)
202.12.27.33 m.root-servers.net (와이드)

이 목록은 9년 2015월 3일 기준이며 2013년 XNUMX월 XNUMX일에 마지막으로 변경되었습니다.

각 upstream_servers 항목은 Deadwood의 캐시 공간을 차지하며
이러한 항목을 많이 저장하려면 maximum_cache_elements를 늘려야 합니다.

verbose_level

이는 표준 출력에 기록되는 메시지 수를 결정합니다. 값이 클수록 더 많이 기록됩니다.
메시지. 기본값은 3입니다.

IP/마스크 체재 of IP


Deadwood는 표준 IP/넷마스크 형식을 사용하여 IP를 지정합니다. IP는 점으로 구분된 십진수입니다.
형식(예: "10.1.2.3")(또는 IPv6 지원이 컴파일된 경우 IPv6 형식).

넷마스크는 IP 범위를 지정하는 데 사용됩니다. 넷마스크는 1 사이의 단일 숫자입니다.
및 32(IPv128 지원이 컴파일된 경우 6)는 선행 "1"의 수를 나타냅니다.
넷마스크의 비트.

10.1.1.1/24 10.1.1.0에서 10.1.1.255까지의 모든 IP가 일치함을 나타냅니다.

10.2.3.4/16 10.2.0.0에서 10.2.255.255까지의 모든 IP가 일치함을 나타냅니다.

127.0.0.0/8 첫 번째 옥텟(숫자)이 "127"인 모든 IP가 일치함을 나타냅니다.

넷마스크는 선택 사항이며, 존재하지 않는 경우 단일 IP만 일치함을 나타냅니다.

DNS 위에 TCP


DNS-over-TCP는 tcp_listen을 1로 설정하여 명시적으로 활성화해야 합니다.

Deadwood는 거의 잘린 것으로 표시된 UDP DNS 패킷에서 유용한 정보를 추출합니다.
항상 DNS-over-TCP가 필요하지 않습니다. 그러나 Deadwood는 DNS 패킷을 캐시하지 않습니다.
TCP를 사용하여 전송해야 하는 크기가 512바이트보다 큽니다. 또한 DNS-over-TCP
"불완전한" DNS 응답인 패킷(스텁 확인자가 사용할 수 없는 응답,
NS 추천이거나 불완전한 CNAME 응답일 수 있음)가 올바르게 처리되지 않습니다.
데드우드로.

Deadwood는 DNS-over-UDP와 DNS-over-TCP를 모두 지원합니다. 동일한 데몬이 수신합니다.
UDP 및 TCP DNS 포트.

UDP DNS 쿼리만 캐시됩니다. Deadwood는 TCP를 통한 캐싱을 지원하지 않습니다. 그것은 처리한다
유용한 정보 없이 드물게 잘린 응답을 해결하거나 작업하기 위한 TCP
매우 드물게 RFC를 준수하지 않는 TCP 전용 DNS 확인자입니다. 현실 세계에서는 DNS-over-TCP가
거의 사용되지 않았습니다.

파싱 other 파일


dwood3rc 파일을 구문 분석하는 동안 Deadwood를 사용하여 다른 파일을 읽고
마치 dwood3rc 파일인 것처럼 구문 분석합니다.

이는 다음을 사용하여 수행됩니다. 실행 파일. execfile을 사용하려면 dwood3rc에 다음과 같은 줄을 넣으세요.
파일 :

execfile("경로/대상/파일명")

여기서 path/to/filename은 dwood3rc 파일처럼 구문 분석할 파일의 경로입니다.

모든 파일은 /etc/maradns/deadwood/execfile 디렉토리 또는 그 아래에 있어야 합니다. 파일 이름은 다음과 같습니다.
소문자와 밑줄 문자("_")만 사용할 수 있습니다. 절대 경로는 그렇지 않습니다.
execfile에 대한 인수로 허용됩니다. 파일 이름은 슬래시("/")로 시작할 수 없습니다.
문자.

execfile이 가리키는 파일에 구문 분석 오류가 있는 경우 Deadwood는 다음을 보고합니다.
기본 dwood3rc 파일의 execfile 명령이 있는 줄에 있다는 오류가 발생했습니다. 찾다
하위 파일에 구문 분석 오류가 있는 경우 "Deadwood -f
/etc/maradns/deadwood/execfile/filename"을 사용하여 문제가 있는 파일에서 구문 분석 오류를 찾으세요.
여기서 "filename"은 execfile을 통해 구문 분석할 파일입니다.

IPV6 SUPPORT


이 서버는 선택적으로 IPv6 지원을 위해 컴파일될 수도 있습니다. IPv6를 활성화하려면
지원하려면 컴파일 타임 플래그에 '-DIPV6'을 추가하세요. 예를 들어, 이것을 컴파일하여
작은 바이너리를 사용하고 IPv6를 지원하려면 다음을 수행하세요.

FLAGS='-Os -DIPV6' 내보내기
확인

보안


Deadwood는 보안을 염두에 두고 작성된 프로그램입니다.

버퍼 오버플로 방지 문자열 라이브러리와 코딩 스타일 및 SQA를 사용하는 것 외에도
버퍼 오버플로 및 메모리 누수를 확인하는 프로세스에서 Deadwood는 강력한
의사 난수 생성기(RadioGatun의 32비트 버전)
쿼리 ID 및 소스 포트. 난수 생성기를 안전하게 보호하려면 Deadwood에 다음이 필요합니다.
엔트로피의 좋은 원천; 기본적으로 Deadwood는 이 엔트로피를 얻기 위해 /dev/urandom을 사용합니다. 만약에
/dev/urandom 지원이 없는 시스템을 사용하고 있다면 다음 사항을 확인하는 것이 중요합니다.
데드우드는 엔트로피 소스가 좋아서 쿼리 ID와 소스 포트를 알아내기 어렵습니다.
추측합니다(그렇지 않으면 DNS 패킷을 위조할 수 있습니다).

Deadwood의 Windows 포트에는 "mkSecretTxt.exe"라는 프로그램이 포함되어 있습니다.
Deadwood에서 사용할 수 있는 "secret.txt"라는 64바이트(512비트) 임의 파일입니다.
"random_seed_file" 매개변수); Deadwood는 또한 Deadwood가 다음과 같은 경우 타임스탬프에서 엔트로피를 얻습니다.
시작되고 Deadwood의 프로세스 ID 번호이므로 동일한 정적을 사용하는 것은 동일합니다.
Deadwood의 다중 호출을 위한 random_seed_file인 secret.txt 파일입니다.

Deadwood는 동일한 네트워크에 있는 누군가가 보낸 패킷을 보는 것으로부터 보호되지 않습니다.
Deadwood에 의해 위조된 패킷을 응답으로 보냅니다.

가능한 특정 서비스 거부 공격으로부터 Deadwood를 보호하려면 다음과 같은 것이 가장 좋습니다.
캐시의 요소를 해싱하는 데 사용되는 Deadwood의 소수는 임의의 31비트 소수입니다.
숫자. RandomPrime.c 프로그램은 파일에 배치되는 무작위 소수를 생성합니다.
프로그램이 컴파일되거나 작업이 완료될 때마다 다시 생성되는 DwRandPrime.h
make clean으로 정리했습니다. 이 프로그램은 엔트로피를 위해 /dev/urandom을 사용합니다. 파일
DwRandPrime.h는 /dev/urandom이 없는 시스템에서는 재생성되지 않습니다.

/dev/urandom을 직접 지원하지 않는 시스템에서는 다음이 있는지 확인하는 것이 좋습니다.
시스템에 작동하는 /dev/urandom을 제공하는 가능한 방법입니다. 이렇게 하면 Deadwood가
컴파일되면 해시 매직 넘버는 적절하게 무작위가 됩니다.

사전 컴파일된 Deadwood 바이너리를 사용하는 경우 시스템에 /dev/urandom이 있는지 확인하세요.
지원(Windows 시스템에서는 secret.txt라는 이름의 파일이
포함된 mkSecretTxt.exe 프로그램에 의해 생성됨) Deadwood는 런타임에 다음을 사용합니다.
/dev/urandom(Windows의 경우 secret.txt)을 엔트로피를 얻기 위한 하드코딩된 경로로 사용합니다(
타임스탬프) 해시 알고리즘용입니다.

악마화


Deadwood에는 내장된 악마화 기능이 없습니다. 이것은 다음에 의해 처리됩니다.
외부 프로그램 Duende 또는 기타 데몬나이저.

구성 파일


다음은 dwood3rc 구성 파일의 예입니다:

# 이것은 데드우드 rc 파일의 예입니다.
# 주석은 해시 기호로 시작된다는 점에 유의하세요.

bind_address="127.0.0.1" # 우리가 바인딩하는 IP

# 다음 줄은 주석 처리되어 비활성화됩니다.
#bind_address="::1" # IPv6 지원 옵션이 있습니다.

# 프로그램을 실행하는 디렉토리(Win32에서는 사용되지 않음)
chroot_dir = "/etc/maradns/deadwood"

# 다음 업스트림 DNS 서버는 Google의 것입니다.
# (2009년 XNUMX월 기준) 공용 DNS 서버. 을 위한
# 자세한 내용은 다음 페이지를 참조하세요.
# http://code.google.com/speed/public-dns/
#
# root_servers와 upstream_servers가 모두 설정되지 않은 경우
# Deadwood는 기본 ICANN 루트 서버를 사용합니다.
#upstream_servers = {}
#upstream_servers["."]="8.8.8.8, 8.8.4.4"

# 캐시 사용이 허용된 사람. 이 줄
# 처음 두 개가 "127.0"인 사람은 누구나 허용
Deadwood를 사용하기 위한 IP의 #자리
recursive_acl = "127.0.0.1/16"

# 보류 중인 요청의 최대 수
최대 프로세스 = 2048

# 과부하되면 SERVER FAIL을 보냅니다.
handler_overload = 1

maradns_uid = 99 # UID Deadwood는 다음과 같이 실행됩니다.
maradns_gid = 99 # GID Deadwood는 다음과 같이 실행됩니다.

maximum_cache_elements = 60000

# 디스크에서 캐시를 읽고 쓰고 싶다면,
# 위의 chroot_dir을 읽고 쓸 수 있는지 확인하세요.
# 위의 maradns_uid/gid를 사용하여 주석을 제거합니다.
# 다음 줄.
#cache_file = "dw_cache"

# 업스트림 DNS 서버가 "없음" DNS 응답을 변환하는 경우
# IP에 이 매개변수를 사용하면 Deadwood가 모든 응답을 변환할 수 있습니다.
# 주어진 IP를 "거기 없는" IP로 다시 연결합니다. IP 중 하나라도 있는 경우
# 아래 나열된 것은 DNS 답변에 있으며 Deadwood는 답변을 변환합니다.
# "거기 없음"으로 전환
#ip_blacklist = "10.222.33.44, 10.222.3.55"

# 기본적으로 보안상의 이유로 Deadwood에서는 IP를 허용하지 않습니다.
# 192.168.xx, 172.[16-31].xx, 10.xxx, 127.xxx,
# 169.254.xx, 224.xxx 또는 0.0.xx 범위. 데드우드를 사용하는 경우
# 내부 네트워크의 이름을 확인하려면 주석을 해제하세요.
# 다음 줄:
#filter_rfc1918 = 0

onworks.net 서비스를 사용하여 온라인으로 데드우드를 사용하세요



최신 Linux 및 Windows 온라인 프로그램