这个问题在几天前就出现了,它是:如何在不使用路由器或配置浏览器的情况下阻止、拒绝或重定向IP地址或域名到另一个IP或web域。基本上,只使用Ubuntu来完成这个任务。
例如,用户使用计算机,他/她无法访问facebook或twitter (可能永远被拒绝访问,或者只是在下午2点到8点之间)。如果用户试图进入facebook或twitter,它将被重定向到另一个地方,或者被取消。
这个程序在GUI中会更好,但是如果没有终端就行了。
例如,我检查了ufw和gufw,但是它只适用于程序和端口。关于域名的情况并不存在。这将使选择或取消选择域变得更容易。
发布于 2011-12-14 01:19:11
如果仅仅是几个ip /域名,iptables是有帮助的。
使用iptables,您可以根据用户、组和/或时间来限制,尽管要这样做,您需要使用输出表。因此,若要允许根和组"web",请使用
# this allows root for things such as apt-get
sudo iptables -A OUTPUT -m owner --uid-owner root -j ACCEPT
# this allows users of the group web
# create a group, web, and add users to it to allow access
sudo iptables -A OUTPUT -m owner --gid-owner web -j ACCEPT
# These two rules allow access to port 80 and 443 over the lunch hour
sudo iptables -A OUTPUT -o eth0 -p tcp -m multiport --dports 80,443 -m time --timestart 12:00 --timestop 13:00 -j ACCEPT
sudo iptables -A OUTPUT -o eth0 -p tcp -m multiport --dports 80,443 -j DROP但是,随着您的需求变得越来越复杂,使用代理是很有帮助的。例如,您可以将privoxy (以及其他)用于adblock。Squid添加了过滤和更复杂的规则(acl或访问控制列表),但是对于家庭用户来说,这很可能会超出杀伤力。
然后,使用iptables使代理透明。
# This allows root
sudo iptables -A OUTPUT -m owner --uid-owner root -j ACCEPT
# This allows privoxy, which serves as adblock
sudo iptables -A OUTPUT -p tcp --dport 80 -m owner --uid-owner privoxy -j ACCEPT
# this blocks direct access to ports 80 to all other users
sudo iptables -A OUTPUT -p tcp --dport 80 -j DROP
# This allows squid to access privoxy (I think squid runs as "proxy")
#sudo iptables -A OUTPUT -o lo -p tcp --dport 8118 -m owner --uid-owner proxy -j ACCEPT
# this rule blocks other users from direct access to privoxy
sudo iptables -A OUTPUT -o lo -p tcp --dport 8118 -j DROP
# Redirect all outgoing traffic on port 80 to squid listening on port 3128
sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner privoxy -j REDIRECT --to-port 3128现在安装并配置privoxy和squid
这种方法的问题是,您需要安装squidguard,配置squid等,这将是一个很长的帖子,更适合一个更大的局域网。
发布于 2011-12-14 03:33:31
我为您找到了一个更好的解决方案,moblock,它附带了一个每天更新的黑名单和一个图形化配置工具。
要安装它,请运行
sudo add-apt-repository ppa:jre-phoenix/ppa
sudo apt-get update
sudo apt-get install moblock blockcontrol mobloquer然后运行Mobloquer
有关更多信息,请参见Moblock主页(sourceforge)


发布于 2011-12-14 00:35:07
你可以用IPTABLES阻止IP和域名
即将离任的例子:
iptables -A OUTPUT -p tcp -m string --string "xxx.com" --algo kmp -j DROP然后,通过cron作业,您可以在您想要的特定时间阻止所有域,并在稍后解除它们的阻塞。
https://askubuntu.com/questions/87568
复制相似问题