
Iptables는 문자열로 패킷을 일치시킬 수 있습니다.
DNS의 예:
iptables -A INPUT -i eth0 -p udp --dport 53 -m string --hex-string "|09|proxypipe|03|net" --algo bm -j DROP
nftables에서 이러한 매칭을 수행하는 방법은 무엇입니까?
답변1
nftables를 사용하면 원시 페이로드 표현식 구문(문서화됨)을 사용할 수 있습니다.여기) 비트 청크의 내용을 기반으로 패킷을 일치시킵니다.
따라서 쿼리를 차단하는 규칙은 proxypipe.net
다음과 같습니다.
meta l4proto udp udp dport 53 @th,160,120 0x0970726f787970697065036e657400 counter drop comment "block queries for proxypipe.net"
위의 내용은 전송 헤더( @th
)의 비트 160에서 시작하여 120비트 상당의 데이터를 가져와 이를 다음과 같은 16진수와 비교합니다.|09|proxypipe|03|net
iptables 버전과 달리 위의 내용은 proxypipe.net
패킷의 고정 위치에서만 일치합니다. 이는 foobar.proxypipe.net
해당 도메인이나 다른 하위 도메인이 차단되지 않음을 의미합니다 .