URL筛选:如何在pfSense中配置SquidGuard
山姆是一家算法交易公司的网络分析师。他获得了UMKC的信息技术学士学位。
URL过滤是一种基于网站地址阻止用户访问某些网站的方法。有几种用于URL或内容过滤的商业产品,但实际上您可以使用SquidGuard和pfSense自行建立一个非常健壮的系统。SquidGuard是一个非常有用的插件,适用于流行的Squid代理服务器,可以用来阻止或重定向你网络上的web请求。
SquidGuard有一长串的功能,可以根据您的需要进行定制。它也非常快,不会减慢用户的互联网访问速度。如果您需要阻止访问一系列不受欢迎的网站,或者只允许访问某些网站,SquidGuard可以为您提供帮助。
SquidGuard非常灵活,易于适应不同的应用。无论您需要在家庭网络上进行基本的URL过滤,还是需要为大型公共网络创建复杂的规则,SquidGuard都可以完成这项工作。
在安装SquidGuard之前,需要一个功能正常的pfSense代理服务器。如果你是pfSense的新手,我建议你通读一下pfSense简介导游优先。
安装防护罩
SquidGuard可以使用pfSense软件包管理器安装。要访问软件包管理器,请单击系统菜单中的软件包。选择available packages(可用软件包)选项卡并向下滚动,直到找到SquidGuard,然后单击说明旁边的加号开始安装。
安装完成后,您将在“服务”下有一个名为“代理筛选器”的新菜单项。
启用黑名单
要配置黑名单功能,请打开常规设置页面(服务\代理过滤器)。单击复选框以启用黑名单功能。
您可以使用您自己的黑名单或web上的公开列表。您可以在以下位置找到多个黑名单:http://www.squidguard.org/blacklists.html. 确定要使用的黑名单后,在黑名单URL框中输入黑名单的URL。
单击保存,然后单击黑名单选项卡并单击下载。下载和处理列表可能需要几分钟的时间。完成后,将在下面的状态框中显示“黑名单更新完成”。
访问控制列表
上传黑名单后,您需要配置哪些类别应被允许、阻止或列入白名单。最简单的配置方法是使用common ACL选项卡。公用访问列表设置将应用于代理的所有用户。
如果要将不同的规则应用于其他源网络,则应使用“组ACL”选项卡。例如,如果要在授予对另一网络中的计算机的无限制访问权限的同时对实验室中的一组计算机应用重筛选,则可以使用组配置。
在每个目标规则旁边的下拉框中,可以选择以下操作之一。
- 允许-除非被其他规则或异常阻止,否则授予对目标类别的访问权限
- 否认-阻止对目标类别中站点的所有访问
- 白名单-始终允许访问目标类别。
我建议启用该设置以阻止URL中的IP地址。这将防止用户通过简单地使用网站的IP而不是URL绕过过滤器。
默认情况下,当用户尝试访问被阻止的页面时,他们将看到一个内部错误页面,指示该页面被阻止,以及该页面属于哪个目标类别。您可以将重定向页面更改为空白页面或任何其他内部或外部URL。例如,如果你愿意,你可以将用户重定向到谷歌。
当你修改一个目标规则时,你需要点击“常规设置”选项卡上的“应用”,以使更改生效。
从黑名单中排除URL
您可能需要允许用户访问某些站点。为了防止这些站点被阻止,您可以创建一个新的目标类别,并添加一个不应被阻止的域或URL列表。
为此,单击目标类别选项卡,然后单击加号以添加新类别。您必须为新类别分配一个唯一的名称;您选择的名称不能包含空格。
目标类别可以按域名、URL或表达式进行筛选。按域列出站点将授予对主站点及其所有子页面的访问权限。输入URL将只允许访问确切的网页。表达式允许您基于某些关键字授予访问权限。
完成后,单击save,然后返回到common或group ACL选项卡(创建规则的位置),并为新类别选择和操作白名单。
您还可以使用相同的方法将其他站点添加到黑名单中。
按表达式过滤
除了域和URL过滤之外,SquidGuard还可以使用正则表达式创建过滤器。当您想要在URL中搜索某些文本字符串以做出过滤决定时,这些类型的过滤器非常有用。如果您不熟悉正则表达式,一开始它们可能会有些混乱,但是有很多关于这个主题的在线资源,所以我在本文中不会详细介绍它们。
要创建使用表达式的筛选器,请单击目标类别选项卡并创建新类别或编辑现有类别。在表达式框中输入要筛选的表达式,然后单击保存。然后返回common或group ACL选项卡,并为目标类别选择操作(deny、allow等)。
下面是一些过滤表达式的例子。这些可以根据你想要过滤掉的内容进行编辑。有关正则表达式过滤的更多有用信息,请访问http://www.squidguard.org/Doc/Examples。
基于文件扩展名的块下载
(.*\/.\.(zip | rar | exe | msi | mpeg | avi))
阻止某些顶级域
(.gov.xxx.mil.net)
阻止在谷歌和雅虎上搜索“代理绕过”
(.*(谷歌|雅虎)。*(搜索|关键词|搜索|查询| q | p)=.*(\+\%20)*(代理|旁路)。*(\-\+\\+\%20)。*(代理|旁路)。*)
基于时间的规则
SquidGuard还允许您根据计划应用URL过滤。时间表对于在一天中的不同时间或仅在一周中的某些天应用规则非常有用。
例如,您可以在工作时间应用严格的URL筛选规则,并在下午5点后自动禁用这些规则。如果你正在过滤你的家庭网络,你可能不希望孩子们在学校的一周内访问某些网站,这是另一个你会使用基于时间的规则的例子。
要创建基于时间的规则,请单击“时间”选项卡,然后单击加号以创建新计划。您可以根据需要创建任意多个不同的明细表。
可以使用“组ACL”选项卡应用计划。创建新的组ACL或编辑现有的组ACL,然后在“时间”下拉框中选择您创建的计划。
不要忘记单击“常规”选项卡上的“应用”,设置才会生效。
商业web过滤设备可能非常昂贵,并且难以管理。SquidGuard和pfSense完全免费,功能强大。SquidGuard还提供了许多本文未介绍的其他功能。有关更深入的信息,请访问SquidGuard.org并查看文档部分。另外,请务必查看我的其他文章,了解在您的网络上使用pfSense的更多方法。
评论
乔希2020年2月22日:
嗨,山姆,我用的是pfsense2.4.4。我一直在尝试“基于文件扩展名的块下载”,但在运行时遇到了问题。我正在使用pfSesne,我已经安装了snort、squid和squidguard。尝试了各种步骤并提出了如何使其工作的建议。我可以使用任何建议或指向正确的方向。谢谢
乔希2020年1月7日:
你好,Sam,我一直在尝试“基于文件扩展名的块下载”,但很难让它正常工作。我正在使用pfSesne,我已经安装了snort、squid和squidguard。尝试了各种步骤并提出了如何使其工作的建议。我可以使用任何建议或指向正确的方向。谢谢
切科斯塔2019年1月15日:
如果我们更改firefox浏览器上的选项,my pfsense将无法阻止被禁网站。在我的情况下,如果我们手动选择代理,被禁网站将无法访问,但如果我们选择自动检测代理并使用系统代理,我们可以自由访问被禁网站,谢谢!!
基思2018年2月13日:
山姆,
示例Regex文件扩展名下载阻止规则对https和http网站都有效吗?似乎有一个问题,阻止下载从https网站,虽然tules与http网站工作…
TL842017年5月25日:
嗨,山姆,
使用组acl时,它似乎仅在“客户端(源)”字段中输入IP地址时才起作用。我是否有办法在此字段中使用pfsense别名或pc主机名,并且proxyfilter进行DNS解析?因为目前我必须为某些ACL需要使用的客户端PC创建DHCP保留。
谢谢
快乐的2017年1月2日:
我经常使用allavsoft下载其他YouTube视频或从Facebook、SBS、Blip TV等网站下载视频。
克里斯2016年10月4日:
你好我已经成功地使用了squid,但通过启用黑名单,它似乎可以优先使用它。我的意思是这个。我启用了一个黑名单,一切都很完美。我否认了Common ACL下名为[blk_BL_adv]的广告黑名单,但我想允许一个名为mailchimp.com的特定广告网站通过。然后我转到目标类别,并用该域创建一个允许的站点列表。我回到了Common ACL,但将其放在列表的顶部,这样我是否允许/白名单就不重要了。如何将目标类别置于底部?
为教程干杯
路易斯2016年8月17日:
你好
我如何配置pfsense以查看所有url而不是仅被阻止?
默罕默德·卡迪尔2016年5月09日:
安装和配置squid和squid后,internet正常,但internet突然断开。当卸载squid和squidgaurd时,互联网又回来了。请帮帮我,我该怎么办?
瑞康2015年12月19日:
我知道你不能用鱿鱼屏蔽facebook,因为他们使用https://facebook.com
我怎样才能阻止它?
使用OpenDNS有什么建议吗
谢谢,
奥马尔
里卡多·梅贾斯2015年3月11日:
嗨,Sam,我们如何在squidguard中使用泰晤士报,以便我们可以在特定的时间限制访问…!
TTG视图2015年1月26日:
将此设置与您也写过的捕获门户结合起来有多容易?
世界杯2014年11月28日:
你好,你能帮我吗。请帮助我阻止youtube.com(https)或阻止流媒体网站。非常感谢你,上帝保佑你
卢卡2014年11月7日:
你好,skear,谢谢你的精彩教程,我的squid guard代理过滤器有一个问题:我创建了一个ACL,当我在我的局域网中设置一个普通用户的di IP地址时,它会被过滤,效果很好,当我设置一个用户名(用户管理器中创建的用户的用户名)时,它不会过滤。。。用户登录到captive portal,我将名称设置为:'name',但结果是一样的。。。。我必须为此用户添加一些权限吗?谢谢:)
约翰·卡普来自澳大利亚悉尼——我来自澳大利亚的一个国家。2014年10月8日:
你好
感谢您的文档,帮助我设置系统。
我使用正则表达式和基于时间的规则配置了一个目标类别,以阻止孩子们在学校晚上访问youtube。当他们试图通过http访问youtube时,这是一种享受,但是如果他们键入httpS://youtube.com,则过滤器不起作用。
我明白它为什么不起作用。它被设置为使用http,即端口80,安全连接httpS使用端口443,因此它绕过了上述系统。
我尝试过使用端口443让它运行,我能得到的最接近的结果是当它们到达httpS://youtube.com时出现代理超时错误消息。我显然在设置中错过了一些东西,不能弄清楚,任何帮助我指向正确的方向的帮助都非常感谢。
约翰
Sekrit Skworl2014年5月21日:
我正在一步一步地跟随你的指导。但是,由于我对“消费者级MS”之外的很多东西都不熟悉,所以我感到不知所措。
我在运行我的PFSENSE盒子,每次更换都像个混蛋一样节省(不像上次尝试)。
这是我关注的问题:
我到了安装“乌贼守卫”的部分。然而,PFSENSE只显示了1.4.x和1.4版本的beta。日志显示1.4是稳定的,但增量版本是beta版。
所以,我的问题是:最新的稳定Pfsense软件包在哪里?
我感谢你的指导。
山姆·基尔(作者)2013年4月14日从堪萨斯城发来:
@道格冯特
为了使块同时工作,Squid和SquidGuard服务必须运行。您可以在“状态\服务”菜单中检查两个服务的状态。
如果您还没有安装Squid,可以使用下面的指南进行安装。
https://爱游戏客服中心www.lordneo.com/internet/How-to-setup-a-tr...
如果无法运行这两个服务,请尝试重新安装包。SquidGuard的最新版本有一个bug,安装后有时会破坏Squid包。
如果两个服务都在运行,请确保在SquidGuard的“黑名单”选项卡中成功加载黑名单。
狗·冯·T2013年4月14日:
希望这里还有人。
我安装了SquidGuard之类的软件,但当我设定了所有规则后,它就不会屏蔽那些“被拒绝”的网站。是的,我保存了它。
我怎样才能解决这个问题?
-谢谢!
费萨尔2011年12月21日:
我的办公室也用了乌贼守卫。。。它的力量
蝴蝶网2011年10月18日:
你好
使用pfSense 2.0,我可以安装带有squidGuard 1.1的平台吗。。。
我已经安装了squid和Lightsquid,效果非常好!
在之前的安装过程中,squidGuard 1.1没有出现在菜单中(但我是一只鱿鱼
山姆·基尔(作者)2011年10月14日来自堪萨斯市:
@josh4trunks
确保Squid日志记录已打开。然后通过单击“立即刷新”和“完全刷新”手动尝试更新lightsquid。
如果您有很多Squid日志,第一次生成报告可能需要一些时间。
如果所有这些都失败了,请重新安装Squid和Lightsquid。
乔什·伦克斯2011年10月14日,加利福尼亚州圣路易斯奥比斯波:
在LightSquid报告下得到这个,不确定我做错了什么。。。
报表文件夹“/var/lightsquid/report”不包含任何有效数据!请运行lightparser.pl(并检查“报告”文件夹内容)
山姆·基尔(作者)2011年10月6日来自堪萨斯市:
@拉玛
不幸的是,Squidgaurd不能对页面中的内容进行任何过滤,它只查看URL。
您可能想看看DansGuardian,它是一个真正的开源内容过滤器。
拉玛2011年10月6日:
嗨,斯凯尔,
很高兴认识你。
关于squidguard,squidguard可以做一个内容过滤,而不仅仅是url吗?
谢谢,
拉玛
山姆·基尔(作者)2011年9月29日来自堪萨斯市:
@艾哈迈德尔
默认情况下,Squid将只使用WAN接口。尽管可以将Squid配置为利用双wan连接。
基本上,您需要设置一个浮动规则来负载平衡来自pfSense系统本身的流量,而不仅仅是LAN客户端。
我已经链接到下面的一个论坛帖子,它更详细地描述了这个过程。
http://forum.pfsense.org/index.php?topic=41252.0 m…
艾哈迈德尔2011年9月29日:
你好
我正在使用pfsense 2。我有2个ISP连接。我已经创建了2个别名,并为这些别名创建了2个LAN规则,以使用不同的ISP。
第一组和第二组。
组1正在使用WAN1
组2正在使用WAN 2
在透明模式下安装squid后,我遇到以下问题。
组1流量正在通过WAN1
组2的流量也通过WAN1
是否可以设置squid为LAN_subnet同时使用不同的网关或别名?我想要的
组1通过WAN1的流量
Group2流量通过WAN2
用鱿鱼?
谢谢。谢谢你在这方面的帮助。
艾哈迈德