您好,登錄后才能下訂單哦!
現在有一需求,需要禁止主機對某一個域名的DNS查詢,想到用iptables的string模塊,使用下面的命令:
iptables -D OUTPUT -m string --string "www.baidu.com" --algo bm -j
DROP
但使用上面的命令并不能過濾對www.baidu.com 的查詢。根據參考鏈接中的文檔,www.baidu.com 在DNS查詢時會被編碼如下:
03www05baidu03com
編碼時域名以點被分為各子字符串(www,baidu和com)“.”不會被編碼,每個子字符串前面是這個字符串的長度。下面是對DNS查詢的抓包:
字符串 www.baidu.com 被編碼十六進制為:
03 77 77 77 05 62 61 69 64 75 03 63 6f 6d
77的是w的ascii碼,其余字符也可以對照ascii進行查詢。77 77 77 前面的03正是www這三個字符串的長度。
根據參考鏈接,可以使用iptables的string模塊的十六進字符串進行過濾
iptables -A OUTPUT -p udp --dport 53 -m string --hex-string "|03|www|05|baidu|03|com|" --algo bm -j DROP
iptables 自動將
|03|www|05|baidu|03|com|
轉換成十六進制。
參考鏈接:
https://linuxsecurity101.com/2018/11/18/tips-and-tricks-blocking-dns-requests-via-iptables/
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。