首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何阻止、拒绝或重定向IP地址或网站域

如何阻止、拒绝或重定向IP地址或网站域
EN

Ask Ubuntu用户
提问于 2011-12-14 00:12:08
回答 5查看 8.3K关注 0票数 2

这个问题在几天前就出现了,它是:如何在不使用路由器或配置浏览器的情况下阻止、拒绝或重定向IP地址或域名到另一个IP或web域。基本上,只使用Ubuntu来完成这个任务。

例如,用户使用计算机,他/她无法访问facebook或twitter (可能永远被拒绝访问,或者只是在下午2点到8点之间)。如果用户试图进入facebook或twitter,它将被重定向到另一个地方,或者被取消。

这个程序在GUI中会更好,但是如果没有终端就行了。

例如,我检查了ufw和gufw,但是它只适用于程序和端口。关于域名的情况并不存在。这将使选择或取消选择域变得更容易。

EN

回答 5

Ask Ubuntu用户

回答已采纳

发布于 2011-12-14 01:19:11

如果仅仅是几个ip /域名,iptables是有帮助的。

使用iptables,您可以根据用户、组和/或时间来限制,尽管要这样做,您需要使用输出表。因此,若要允许根和组"web",请使用

代码语言:javascript
复制
# 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使代理透明。

代码语言:javascript
复制
# 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

Ubuntu服务器指南

Ubuntu wiki privoxy

这种方法的问题是,您需要安装squidguard,配置squid等,这将是一个很长的帖子,更适合一个更大的局域网。

票数 3
EN

Ask Ubuntu用户

发布于 2011-12-14 03:33:31

我为您找到了一个更好的解决方案,moblock,它附带了一个每天更新的黑名单和一个图形化配置工具。

要安装它,请运行

代码语言:javascript
复制
sudo add-apt-repository ppa:jre-phoenix/ppa
sudo apt-get update
sudo apt-get install moblock blockcontrol mobloquer

然后运行Mobloquer

有关更多信息,请参见Moblock主页(sourceforge)

票数 2
EN

Ask Ubuntu用户

发布于 2011-12-14 00:35:07

你可以用IPTABLES阻止IP和域名

即将离任的例子:

代码语言:javascript
复制
iptables -A OUTPUT -p tcp -m string --string "xxx.com" --algo kmp -j DROP

然后,通过cron作业,您可以在您想要的特定时间阻止所有域,并在稍后解除它们的阻塞。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/87568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档