Squid是另一个应用程序级别的过滤器 可以补充iptables。 Squid是一个缓存的Web代理服务器,它非常流行且免费,并且是跨平台的。 尽管可以将其用于改善Internet连接的性能,但也可以将其用于安全目的。 自从90年代该项目开始以来,Squid一直非常先进,现在我们向您展示它,以便您知道如何使用它。
为您的安装,您可以访问 项目官方网站 并选择适用于您的操作系统或发行版的二进制软件包。 如果要通过编译从源代码包中安装它,也请 你有那个选择。 可用的tarball是tar.gz,tar.bz2和tar.xz。 如果您不知道如何安装,则可以转到我们在此博客中编辑的有关以下内容的文章: 如何从Linux安装任何软件包。 眼睛! 如果您有Debian或衍生产品,并且看到它已与sudo“ apt-get install squid”一起安装,则可能会出现错误,因为必须将“ squid”替换为“ squid3”才能生效...
现在我们直接进行动作说明 一些使用鱿鱼的例子 保护我们的设备。 在我想解释一下Squid基于ACL的基础上,即基于访问控制列表或访问控制列表的列表,即详细列出了在这种情况下控制网络流的权限并实现类似于iptables的过滤器的列表,但是在应用程序级别。
通常,安装后,会包含一个配置文件,该文件位于 /etc/squid3/squid.conf 就是这个,我们必须使用诸如nano或gedit之类的编辑器进行编辑。 在其中我们可以生成我们的过滤规则,尽管有选项cache_dir,cache_mem和http_port,但我们会将后者用于我们的安全规则。 另一个细节是,该文件指定了Squid服务使用的默认端口,默认端口是3128(请参见行或指令“ http_port 3128”并删除#来激活它)。 如果需要,可以将其更改为另一个端口,例如8080...。还有另一件事是配置主机名,查找注释“ TAG:Visible_hostname”,您将看到一行“ visible_hostname”,必须在其中放置主机名。
要知道您的主机名,您可以在终端中输入:
hostname
出现的名称会将其添加到不应以#开头的行中,这样它就不会被忽略为注释。 也就是说,它看起来像这样:
visible_hostname主机名_have_you_出现
如果您看到配置文件,将会看到它的注释, 如果要覆盖已创建的规则,则可以以#开头 然后将其转换为注释,Squid将其忽略,然后将其重新投入使用,请删除#,仅此而已。 实际上,通过删除#可以使用许多创建和注释的规则。 因此,您不必删除和重写规则。 好吧,要添加特定的规则或过滤器,它必须具有ACL和指示操作的指令。
顺便说一句,当您删除#以激活规则时, 确保您在行首不要留空格。 例如:
错误的方法:
http_端口 3128
正确方法:
http_端口 3128
你没听到什么吗好吧,别担心 一个例子 您会看到更好的一切。 想象一下:
ACL阻止url_regex作为Facebook
http_access拒绝阻止
这条规则是什么意思 是名称为“ blocking”的acl将禁止访问包含“ facebook”的URL(因此,如果我们尝试输入Facebook,它将跳过浏览器中的错误)。 如果您使用“允许”而不是“拒绝”,那么您将允许访问而不是禁止它。 您也可以使用! 例如,要排除在外,假设您要允许访问list1而不是list2:
http_access allow lista1 !lista2
另一个示例可能是创建允许的文件/ etc / squid3 / ips 并在其中保存我们要允许访问的IP列表。 例如,假设允许的ips的内容为:
192.168.30.1
190.169.3.250
192.168.1.26
然后我们创建ACL 允许访问这些IP:
acl nuevaregla src "/etc/squid3/ipspermitidas"
一个非常实际的例子想象一下,您的计算机供18岁以下的儿童使用,并且您想限制对某些成人内容网站的访问。 第一件事是创建一个名为/ etc / squid3 / list的文件,其内容为:
成年人
色情
性别
波林加
现在在 squid.conf文件 我们遵循以下规则:
acl denegados url_regex "/etc/squid3/lista" http_access allow !denegados
正如你看到的 我们已经使用允许 原则上是允许的,但是如果您看,我们已经添加了! 因此,否认将等同于:
acl denegados url_regex "/etc/squid3/lista" http_access deny denegados
您还可以创建列表,不仅可以完成域名或IP的列表, 你也可以把域名 并例如限制对.xxx,.gov等域的访问。 让我们来看一个基于先前规则的示例。 我们创建一个文件/ etc / squid3 / domains,该文件具有:
埃杜。
。是
。ORG
现在我们的规则,以拒绝访问我们创建的禁止站点列表,但允许访问具有这些域的URL:
acl denegados url_regex "/etc/squid3/lista" acl permitidos dstdomain "/etc/squid3/dominios" http_access allow !denegados dominios
扩大:
抱歉,当我看到这些评论时,我意识到 我缺少主要的东西。 我仅举一些例子来说明如何使用它,而我忘了说要启动Squid服务器:
sudo service squid3 start
在“ /etc/init.d/squid start”启动之前,但是现在您必须使用我为您准备的另一行。 就像配置文件不再位于/etc/squid/squid.conf中,而是位于/etc/squid3/squid.conf中一样。 好的,一旦创建了过滤策略并启动它,我们还必须配置浏览器,例如,如果您使用Mozilla Firefox或衍生版本,则可以转到配置菜单(您知道三个栏),然后转到“首选项”,“高级”,然后在“网络”选项卡中,单击“连接”部分中的“配置”。 在那里,我们选择“手动代理配置”,然后放置我们的IP和Squid正在使用的端口(在本例中为3128)。还要选择“对所有内容使用同一代理”,然后退出并保存更改。
请 不要忘了发表您的评论,疑惑或任何想要的东西。尽管它是Squid之上的教程,但我希望它能对您有所帮助。
17条评论,留下您的评论
谢谢!,乐于助人。
同样,对于有些复杂的主题,我非常精简,我一直说“用户级别:中级”,您应该了解有关“网络”的一些概念。
我虚心地认为应该添加将浏览器配置为使用“代理”的选项,但是由于该条目是“ Squid的简介”,我们将非常了解下一个吗? 交付(最后,冒着使我烦恼的危险,请记住不要“代理”您在家庭或公司中使用的银行网页和/或金融机构)。
嗨,谢谢你的评论。 是的,IPTABLES和Squid太厚了,无法撰写一篇深入解释它们的文章,因此您必须限制自己编写日常示例...
但是您是完全正确的,我现在添加了它以配置代理,我已经计划好了并且忘记了。 我的错。
问候和谢谢!
乌夫夫(Uffff)“树干”很抱歉,没有意识到主要问题:
开始服务:-(没有那个“没有你的姨妈”-原谅我的口头讲话-非常成功的扩展!8-)
{通过修改“ / sbin / init”使其在每次启动时都固定:
http:// www。 ubuntu-es.org/node/ 13012#.Vsr_SUJVIWw}
{另一种更简单的方法是使用“ update-rc.d”:
https:// parbaedlo。 wordpress.com/201 3/03/07 /设置服务的开始和停止服务-linux-update-rc-d /}
我在链接中添加了空格,将其删除,然后您将导航;-)
MUCHAS GRACIAS POR SUATENCIÓN。
LINUX新闻:对Linux Mint的攻击:感染安装程序并破坏用户凭据
http://www.muylinux.com/2016/02/21/ataque-a-linux-mint
我已经张贴了它,但是请不要在这里向其他页面发送垃圾邮件
ANDROID NEWS:GM Bot,派生Mazar的Android木马
http://www.redeszone.net/2016/02/21/gm-bot-el-troyano-para-android-del-que-deriva-mazar/
吉米,您好,您如何做才能使鱿鱼不会为您搜索这些页面? 如果您对透明选项进行评论,那将是很好的选择,这避免了为每台计算机配置代理的乏味
好问题,我已经在客户网页上的免费软件中安装了验证码:
(http:// // www.ks7000.net.ve/2015/04/03/un-captcha-easy-and-simple-to-implement/
-谦虚,它不是“垃圾邮件”或自我宣传,的确如此-)
而且我想当使用Squid时,不会重新加载这些图像,因为我在它们上加上了相同的名称-ea,我也可以生成随机名称,直到现在我还没有想到这一点-通过使用相同的名称,Squid返回了什么它在“缓存”中。
显然,“代理”的主要功能是使用图像节省带宽-Web页面中最重的页面-[i]假设这些图像是静态的,它们不会随时间变化,这在99%的情况下是正确的[/ 一世]。
但是在验证码中,由于“没有运行”,我们必须消除其先前的存储,并始终返回新的映像。
至于银行,我知道西班牙最大的银行是“ Caixa”,因为我们将创建一个Example规则:
acl caixa 目标域.lacaixa.es
其中:
acl->用于创建规则的命令(请阅读艾萨克先生的文章,以上段落)。
caixa->规则名称。
dtsdomain->“ type”选项表示我们所引用的域,重要的是开头的点( http://ww w.visolve。 com / squid / squid24s1 / access_controls.php)
域->我想我们可以添加所需的域,并用空格分隔; 说到空间,我已将其插入指示的Web链接中,将其删除,您将进行导航(英文页面)
我希望这里介绍的知识对您有所帮助,这要归功于LinuxAdictos!
好吧,为了回答Squid AGAIN中的透明度问题,我坚持认为您必须具有中级知识,并且出于教学上的原因,我将尽可能总结以下我认为对这一主题很好的文章(英文):
http:// ww w.deckle.co。 英国/ squid-users-guide /transparent-caching-proxy.html
注释:
-我在链接中添加了空格,以避免我自己“回缩”(我与Addicts Linux团队完全无关,因此无权执行此操作)。
-关于透明度,我不知道! (我说,他们没有教我)。
-帮助你们,我也帮助自己,这很酷! ?
好了,这么说吧,让我们开始做生意:
我只是建议艾萨克先生扩大配置装有代理的浏览器的工作,他很客气(哇,这个人在哪里找到时间做很多事情?)。
在此方案下,Squid的使用是可选的:我们局域网的每个用户都将负责他们的工作,但是您可以打赌,“坚决反对纸比塞塔”是可以安装一些“ bash脚本”的。通过SSH连接到运行GNU / Linux的各种计算机。
先决条件:我们的Squid服务器正在按照Isaac先生在本文中的指导工作,如果我们已经对其进行了测试并对其进行了“工作量”并且其性能良好,那么我们可以继续进行下去。
根据透明方案:
首先-我们的Squid必须是我们的“ eth0”或“ wlan0”中的默认路由“网关”-您还记得中级知识吗?配置此类服务的服务器:
http:// zh.wikipe dia.org/wiki/ Dynamic_Host_Configuration_Protocol)。
如果发生故障,我们必须计划配置将所有流量直接重定向到调制解调器,如果Squid(运行该计算机的计算机)的工作负载超载了,并使用调制解调器键入“ bridge”,以便他们走到外面,这是通过制作一个在上述事件中触发并配置我们的DHCP服务器的“脚本”来实现的,该DHCP服务器应安装在与Squid不同的计算机上。
注意:我们的配备Squid的计算机将始终依赖于来自DHCP BUT的IP地址,与此同时,它会对上述DHCP服务器进行“控制”。 如果您想使用电源的固定IP地址,则可以,但是当您添加更多计算机或更换某些计算机时,您将不得不重新配置,这不是个主意(请愉快地阅读:
ht tps:// pheno巴比妥。 wordpress.com/2012/07/23/the-12-reasons-by-谁是系统管理员的懒惰是一个好的管理员/)
另一个注意事项(请参阅第二点):我们的调制解调器和/或路由器设备必须停用DHCP功能,并且它们由我们的DCHP服务器控制(-我向您保证,其中还会出现另一个条目,向我们展示如何安装)说服务-)
第二-我们必须过滤流向Squid服务器的流量,如果我们有几个分散的路由器覆盖无线网络区域“ wifi”,则它仍然是局域网,但规模中等。 从本质上讲,如果我们有不同的设备或什至子网,则它与第一个要点相同,我们也必须配置它们,因此请注意在大公司工作的那些人。
第三-在托管Squid的GNU / Linux中,我们必须重定向端口并配置“防火墙”(请阅读上一篇IPTables
http://www.linuxadictos.com/introduccion-a-iptables-configura-un-firewall-en-linux.html )
iptables -t nat -A PREROUTING -p TCP –dport 80 -j REDIRECT –to-port 3128
并发送给IPFW:
/ sbin / ipfw将3 fwd 127.0.0.1,3128 tcp从任意添加到任意80
不用说,我们不能在该端口80上运行Apache或Ngix服务器-网页的默认端口-常见的含义是不使用Squid依赖于«cache»-的磁盘空间在计算机上增加更多负载。
第四。-我们必须配置我们的Squid服务器,并通过使用您最喜欢的nano或编辑器修改“ /etc/squid/squid.conf”来告诉它以这种模式工作:
http_port 3128透明
我们还必须在“ /etc/sysctl.conf”中启用数据包转发:
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
如果我们有IPv6,则这最后一行是很好的,以后再配置一次。
最后,按照上述Isaac先生的建议重新启动Squid服务,然后重新启动网络服务:
/etc/init.d/procps.sh重新启动
以同样的方式对勘误的信仰(或我的一些废话)以同样的方式让我知道,欢迎您提出批评和意见;
先生。 ISAAC是主持人,他将在这场“战斗”中拥有最后的发言权。
在这段简短的视频中,我们可以看到如何配置Mozilla以使用代理服务器,除了它使用带有ReactOS的虚拟机外,但是它很短,我认为它会ILLUSTRAtes您要在此处配置的内容(使用空格禁用链接,删除它们并浏览):
ht tps:// www。 YouTube。 com / watch?v = st47K5t7s-Q
我刚刚开始关注您的广播电台,我已经两天了..而且内容非常好..
来自墨西哥的问候..(我是一名老师,我的一粒沙要使用开放源代码)
我希望您能为我提供帮助,我想授予用户查看Facebook的特权,其他用户已经配置了限制,以及如何在特定时间启用互联网用户,我想向我提供建议,谢谢
阿里,他们向我解释的是,您想要的机器没有限制,它必须被排除在外,但是在此之前,我对这个问题还没有经验。
晚安,对不起,也许我的问题有点基本,但是,嘿,我已经安装了乌贼并在centos 5.4上进行了配置,安装了wine和ultrasurf,我打算做的是与乌贼共享来自ultrasurf的互联网,我也这样做在具有FreeProxy和ultrasurf的Windows计算机XP上,我可以毫无问题地共享它,但是我不知道如何在Linux中进行操作
我咨询了您,我有一个像您一样的配置,在这种情况下,我将端口80重定向到运行鱿鱼的端口8080。 问题是某些用户将配置保留在他们的计算机上,他们取消并通过端口80进行访问,尽管不是所有服务。 这与iptables。 您是否知道问题出在哪里?
非常有用,而且解释清楚。 谢谢!
我有一个问题,当我想创建一个ACL时,该在哪里做,即在配置文件的哪一行? 如您在帖子中所显示的,我是否应该立即在http_access命令下面放置两行? 还是在哪里?
再次感谢!! 问候!