iptables -A INPUT -i p4p1 -p udp --dport 53 -m string --hex-string "baidu|03|com" --algo bm -j DROP
p4p1是网关机器内网的接口 接收到请求baidu DNS的包 丢弃
iptables -t nat -A PREROUTING -s 192.168.11.0/24 -i p4p1 -p udp -m udp --dport 53 -j DNAT --to-destination 192.168.11.2
强制转发dns到192.168.11.2
处理网关类型的DNS
————————————————————————————————————————————————————————————————————————
处理本机的dns 允许或者丢弃。
iptables -A OUTPUT -p udp --dport 53 -m string --hex-string "baidu|03|com" --algo bm -j DROP
iptables -A OUTPUT -d 114.114.114.114 -p udp --dport 53 -m string --hex-string "baidu|03|com" --algo bm -j DROP
丢弃让114解析baidu的包
--algo bm
设置字符匹配的查询算法,一般默认使用bm算法效果就可以了,另外还可以设置kmp算法,那是一种更复杂的算法,详细内容可自行参见高等数学里的资料。(bm = Boyer-Moore, kmp = Knuth-Pratt-Morris)
iptables设置多端口
iptables -A INPUT -m multiport -s 192.168.1.25 -p tcp --dport 111,49401,…… -j ACCEPT
iptables -A INPUT -m multiport -s 192.168.1.25 -p udp --dport 111,49401,…… -j ACCEPT
强制用户admin的网络通过端口880的代理出去(全局)
iptables -t nat -A OUTPUT -m owner --uid-owner admin -p tcp -j REDIRECT --to-ports 880
如果需要分流配置在自定义链里国外的通过代理,国内走本地
iptables -t nat -A ss -m set --match-set cnip dst -j RETURN
iptables -t nat -A ss -p tcp -m owner --uid-owner admin -j REDIRECT --to-ports 880
转发本机DNS请求到本机53端口
iptables -t nat -A OUTPUT -p udp -m udp --dport 53 -j DNAT --to-destination 127.0.0.1