특정 쿼리가 포함된 DNS 요청을 방화벽으로 차단합니다.

특정 쿼리가 포함된 DNS 요청을 방화벽으로 차단합니다.

내가 iptables나 nftables를 사용하고 있다고 가정해 보겠습니다.

다음과 같은 특정 트래픽을 허용하고 싶습니다.

iptables -A OUTPUT -d 192.168.1.1 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -s 192.168.1.1 -p udp --sport 53 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

DNS 쿼리가 포함된 패킷 검사를 포함하고 *가 포함된 패킷만 허용하는 첫 번째 규칙을 확장할 수 있습니다..wetransfer.com요청한 쿼리대로 그렇지 않으면 삭제됩니까?

나는 이것이 소위 말하는 것에 속해야한다고 생각합니다.심층 패킷 검사, 하지만 iptables/nftables 측면에서 어떻게 수행할 수 있습니까?

답변1

iptables는 기본적으로 DNS를 이해하지 못하지만 match를 사용하면 가능합니다 string.

-p udp --dport 53 -m string --algo kmp --hex-string "|0A|wetransfer|03|com|00|" --icase

회선의 DNS 이름은 점을 사용하지 않으며 길이가 접두사로 붙은 일련의 구성 요소로 전송됩니다. 예를 들어 ".com"은 0x03 c o m.

--icase클라이언트가 쿼리를 대소문자를 혼합하여(때때로 의도적으로) 보낼 수 있으므로 대소문자를 구분하지 않는 일치( )를 사용해야 합니다 .

관련 정보