如题,最近有这样一个需求,写一个客户端程序,这个程序的功能是限制本客户端访问任何外网的网站,但是会给一些特别的允许访问的网站,比如www.baidu.com.
我用iptables来做,我先到的是默认拒绝允许访问特别的策略:
我是这样写的:
1.首先将iptables中所有的规则清空:
iptables -F
iptables -X
2.INPUT和FORWARD保持ubuntu11.04的默认规则ACCEPT,将OUTPUT设置为DROP
iptables -P OUTPUT DROP
这个时候的确不能访问任何网站了。
3.我允许访问www.baidu.com。问题就来了,还不止不一个。我是这么写的:
iptables -A OUTPUT -d www.baidu.com -j ACCEPT
第一个问题:直接命令行直接报错,
iptables v1.4.10: host/network `www.baidu.com' not found
Try `iptables -h' or 'iptables --help' for more information.
不是应该支持域名的吗?
后来我直接改用ip地址,220.181.111.147
iptables -A OUTPUT -d 220.181.111.147 -j ACCEPT
第二个问题:命令行不包错了,可是
我用火狐访问www.baidu.com依然打不开;
然后我直接访问220.181.111.147 能打开百度首页!
iptables默认拒绝允许访问特别的网站该怎么写
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
- Andy_baby
- 帖子: 9
- 注册时间: 2012-03-06 9:51
- lilydjwg
- 论坛版主
- 帖子: 4249
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: iptables默认拒绝允许访问特别的网站该怎么写
你得放行 DNS 服务器,不然系统不知道 www.baidu.com 的 IP 地址是什么。
最后提示一下,凡「网页打不开」的情况,请给出火狐所给的错误消息,或者 Chrome 的错误代码(需要点击 + 号)。
最后提示一下,凡「网页打不开」的情况,请给出火狐所给的错误消息,或者 Chrome 的错误代码(需要点击 + 号)。
- Andy_baby
- 帖子: 9
- 注册时间: 2012-03-06 9:51
- lilydjwg
- 论坛版主
- 帖子: 4249
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: iptables默认拒绝允许访问特别的网站该怎么写
你得放行 DNS 服务器Andy_baby 写了:谢谢!我用火狐访问www.baidu.com依然打不开的错误页面我贴上来:
- maivel
- 帖子: 293
- 注册时间: 2009-05-01 7:35
Re: iptables默认拒绝允许访问特别的网站该怎么写
你现在无法解析域名了
iptables -I OUTPUT -p udp --dport 53 -j ACCEPT
然后再
iptables -A OUTPUT -d www.baidu.com -j ACCEPT
iptables -I OUTPUT -p udp --dport 53 -j ACCEPT
然后再
iptables -A OUTPUT -d www.baidu.com -j ACCEPT
我这个人天生愚笨,体内装进一点点东西就会往外面冒,满地都是,一不小心就成了才华横溢。
- lilydjwg
- 论坛版主
- 帖子: 4249
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: iptables默认拒绝允许访问特别的网站该怎么写
这样就可以用 DNS tunnel 代理了maivel 写了:你现在无法解析域名了
iptables -I OUTPUT -p udp --dport 53 -j ACCEPT
然后再
iptables -A OUTPUT -d http://www.baidu.com -j ACCEPT