透明DNS解译设定限制网络访问(Linux+iptables+bind)
实现目的
1.linux网关用iptables配置DNS拦截,记录全部机器的DNS请求(什么时候上了什么网站)
2.利用DNS欺骗禁止用户防问部分网站 将需禁止的网站域名指向一个错误的IP地址
方法
1.将所有进入网关的DNS请求,都转向本机的53端口,这样,既使内网PC使了其它的DNS服务器,最终也是由网关解析。
一条iptables的指令即可
iptables -t nat -A PREROUTING -p udp –dport 53 -j REDIRECT –to-port 53
2.DNS设置
bind的设置文件named.conf,设定将请示转发到ISP的DNS,比如说深圳电信的DNS服务器202.96.128.68; 202.96.134.133
设定要禁止用户防问网站test.com
设定查询记录记在/var/named/query.log,查看此记录可以看到用户上了那些网站
记得将目录/var/named的属主改成named chown -R named:named /var/named 否则无法生成/var/named/query.log
[root@gw ~]# cat /etc/named.conf
// Default named.conf generated by install of bind-9.2.4-30.el4
options {
directory “/var/named”;
dump-file “/var/named/data/cache_dump.db”;
statistics-file “/var/named/data/named_stats.txt”;
forwarders { 202.96.128.68; 202.96.134.133; };
};
zone “test.com” IN {
type master;
file “test.com.zone”;
};
logging{
channel query_log {
file “query.log” versions 3 size 20m;
severity info;
print-time yes;
print-category yes;
};
category queries {
query_log;
};
};
域指定文件将*.test.com指向127.0.0.1
cat /var/named/test.com.zone
$ttl 1D
@ IN SOA test.com. root.test.com. (
1053891162
3H
15M
1W
1D )
IN NS test.com.
IN MX 5 test.com.
www IN A 127.0.0.1
* IN A 127.0.0.1
启动bind
/etc/init.d/named start
执行IP转发
iptables -t nat -A PREROUTING -p udp –dport 53 -j REDIRECT –to-port 53
看看日志如下
[root@gw ~]# !ta
tail -f /var/named/query.log
Jun 08 16:46:18.930 queries: client 192.168.10.193#55856: query: updatem.360safe.com IN A
Jun 08 16:46:19.311 queries: client 192.168.10.182#61239: query: policy.store.qq.com IN A
Jun 08 16:46:20.329 queries: client 192.168.10.182#54165: query: route.store.qq.com IN A
Jun 08 16:46:20.784 queries: client 192.168.10.182#65321: query: xanewp.photo.qq.com IN A
Jun 08 16:46:20.790 queries: client 192.168.10.182#58162: query: app.photo.qq.com IN A
Jun 08 16:46:21.089 queries: client 192.168.10.177#65300: query: www.microsoft.com IN A
Jun 08 16:46:22.939 queries: client 192.168.10.182#64573: query: s21.photo.store.qq.com IN A
Jun 08 16:46:23.182 queries: client 192.168.10.182#52749: query: s17.photo.store.qq.com IN A
Jun 08 16:46:23.266 queries: client 192.168.10.204#51395: query: user.qzone.qq.com IN A
Jun 08 16:46:24.440 queries: client 192.168.10.204#56676: query: pingfore.qq.com IN A
Jun 08 16:46:24.770 queries: client 192.168.10.204#57851: query: users.qzone.qq.com IN A
Jun 08 16:46:24.839 queries: client 192.168.10.204#50360: query: base.qzone.qq.com IN A
Jun 08 16:46:24.843 queries: client 192.168.10.204#61001: query: taotao.qq.com IN A
Jun 08 16:46:24.883 queries: client 192.168.10.204#53403: query: ic.qzone.qq.com IN A
Jun 08 16:46:25.176 queries: client 192.168.10.204#64821: query: qlogo4.store.qq.com IN A
Jun 08 16:46:25.426 queries: client 192.168.10.204#60886: query: g.qzone.qq.com IN A
Jun 08 16:46:26.435 queries: client 192.168.10.204#60875: query: vip.qzone.qq.com IN A
Jun 08 16:46:26.730 queries: client 192.168.10.204#53668: query: cityapi.qzone.qq.com IN A
Jun 08 16:46:27.227 queries: client 192.168.10.204#61486: query: daren4.store.qq.com IN A
Jun 08 16:46:27.235 queries: client 192.168.10.197#55670: query: profile.qshop.qq.com IN A
Jun 08 16:46:27.335 queries: client 192.168.10.204#64822: query: broadcast.qq.com IN A
Jun 08 16:46:27.626 queries: client 192.168.10.202#56066: query: qzone-client.qq.com IN A
在客户端测试结果,我的NB的DNS是设为202.96.128.68
C:\Documents and Settings\li>nslookup www.test.com
*** Can’t find server name for address 202.96.128.68: Non-existent domain
*** Can’t find server name for address 202.96.134.133: Non-existent domain
*** Default servers are not available
Server: UnKnown
Address: 202.96.128.68
Name: www.test.net
Address: 127.0.0.1
C:\Documents and Settings\li>nslookup 12134.test.com
*** Can’t find server name for address 202.96.128.68: Non-existent domain
*** Can’t find server name for address 202.96.134.133: Non-existent domain
*** Default servers are not available
Server: UnKnown
Address: 202.96.128.68
Name: 12134.test.com
Address: 127.0.0.1
原文:http://www.opvps.com/?p=320