<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>Gustavo Picoloto &#187; squid</title> <atom:link href="http://www.picoloto.com.br/tag/squid/feed" rel="self" type="application/rss+xml" /><link>http://www.picoloto.com.br</link> <description>Dicas e "notícias" sobre Linux, Segurança e etc ...</description> <lastBuildDate>Wed, 14 Dec 2011 17:48:40 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3</generator> <item><title>Configurando um squid como proxy transparente</title><link>http://www.picoloto.com.br/linux/squid.php</link> <comments>http://www.picoloto.com.br/linux/squid.php#comments</comments> <pubDate>Sat, 19 Jan 2008 19:43:25 +0000</pubDate> <dc:creator>Gustavo</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[proxy]]></category> <category><![CDATA[squid]]></category><guid
isPermaLink="false">http://cenoura.homelinux.com/linux/squid.php</guid> <description><![CDATA[Configurando um squid como proxy transparente Este artigo foi originalmente publicado no site do Fundão. Atualizações, se existirem, serão colocadas nesta página. Este tutorial não pretende ser um guia completo para uma configuração avançada de Squid, ele apenas vai mostrar como fazer algumas configurações simples mas que permitirão que se tenha um servidor atuando como [...]]]></description> <content:encoded><![CDATA[<p>Configurando um squid como proxy transparente Este artigo foi <a
href="http://www.fundao.pro.br/articles.asp?cod=199" target="_blank">originalmente</a> publicado no site do <a
href="http://www.fundao.pro.br/" target="_blank">Fundão</a>. Atualizações, se existirem, serão colocadas nesta página.</p><p>Este tutorial não pretende ser um guia completo para uma configuração avançada<br
/> de Squid, ele apenas vai mostrar como fazer algumas configurações simples mas<br
/> que permitirão que se tenha um servidor atuando como gateway de uma rede<br
/> fazendo cache de http.</p><p><span
id="more-29"></span> Algumas convenções usadas neste tutorial:</p><p>Sempre que uma linha começar com um &#8220;#&#8221;, significa que ela contém um (ou<br
/> mais)<br
/> comando(s) e que ela deverá ser executada como usuário root.</p><p>Sempre que uma linha começar com um &#8220;$&#8221;, significa que ela contém um (ou<br
/> mais)<br
/> comando(s) e que ela deverá ser executada como qualquer usuário, comum ou<br
/> root.</p><p>O que é um servidor proxy ?</p><p>Podemos resumir o significado de servidor proxy como uma espécie de &#8220;cache<br
/> comunitário&#8221;, onde toda página que um usuário visualizar ficará armazenada e<br
/> quando outro (ou o mesmo) usuário requisitar a mesma página, ela não será<br
/> trazida da Internet novamente, simplesmente será lida do disco e entregue,<br
/> economizando tráfego de rede (isso se a página não tiver sido modificada na<br
/> origem, caso isto tenha acontecido, ela será trazida da Internet novamente).<br
/> Um proxy pode, além disso, fazer o controle de conteúdo, barrando o acesso a<br
/> certos sites, por exemplo.</p><p>O que é o Squid ?</p><p>Squid nada mais é que um software para servidor proxy que vem na maioria das<br
/> distribuições Linux.</p><p>Como sei se o Squid está instalado na minha máquina ?</p><p>Se seu Linux for RedHat ou equivalente (Fedora, Conectiva, etc), digite num<br
/> terminal:</p><p>$rpm -q squid</p><p>Se a resposta for algo do tipo: squid-2.4.STABLE7-4 significa que você tem o<br
/> Squid instalado na sua máquina.</p><p>Se a resposta for algo do tipo: package squid is not installed significa que<br
/> você não tem o Squid instalado na sua máquina e terá que instalá-lo.</p><p>Não tenho Squid instalado na máquina, como instalar ?</p><p>Para RedHat ou equivalente, o meio mais fácil é acessar http://rpmfind.net,<br
/> fazer uma busca por &#8220;squid&#8221;, encontrar a versão disponível para sua<br
/> distribuição, baixar e executar:<br
/> #rpm -ivh squid*</p><p>(para um RedHat 8.0, o download direto é<br
/> ftp://rpmfind.net/linux/redhat/8.0/en/os/i386/RedHat/RPMS/squid-2.4.STABLE7-4.i386.rpm)</p><p>Neste passo, pode acontecer do sistema reclamar da falta de algum pacote,<br
/> neste caso, copie o nome de cada arquivo que foi reclamado, volte ao<br
/> rpmfind.net e faça uma busca por este arquivo, baixe o pacote rpm que o<br
/> contém,<br
/> instale e refaça este passo até que não tenhamos mais pendências.</p><p>Para facilitar a vida, pode usar o apt (http://apt.freshrpms.net).<br
/> Com ele instalado, simplesmente execute:<br
/> #apt-get update<br
/> #apt-get install squid</p><p>Com isto, você terá a última versão do squid instalada no seu sistema e<br
/> todas<br
/> as dependências terão sido resolvidas &#8220;automagicamente&#8221; :)</p><p>Como configurar minha máquina para atuar como gateway da rede ?</p><p>A primeira coisa a fazer, é permitir que todos os pacotes possam ser<br
/> reencaminhados (forward de pacotes) pela máquina:</p><p>#echo 1 &gt; /proc/sys/net/ipv4/ip_forward Ou, numa maneira mais &#8220;elegante&#8221;:<br
/> #sysctl -w net.ipv4.ip_forward=1</p><p>Após um boot, esta configuração se perde, para torná-la permanente, coloque<br
/> este comando para ser executado após cada boot (pode colocar, por exemplo, no<br
/> final do /etc/rc.d/rc.local) ou, numa maneira mais &#8220;elegante&#8221;, edite<br
/> /etc/sysctl.conf e procure por &#8220;net.ipv4.ip_forward = 0&#8243;, substitua o &#8220;0&#8243; por<br
/> &#8220;1&#8243; e esta alteração já estará permanente. Após isto, configure o gateway das<br
/> estações para apontar para o IP desta máquina. Se as estações navegarem<br
/> normalmente, seu gateway está funcionando :)</p><p>Como configurar o Squid ?</p><p>A configuração do Squid, por padrão é toda feita dentro do arquivo<br
/> /etc/squid/squid.conf. Tudo o que for exemplificado nesta seção estará neste<br
/> arquivo.<br
/> As principais alterações a serem feitas para o Squid atuar como proxy<br
/> transparente, são:</p><p>Descomentar (eu digitar) as linhas (no arquivo original, do RedHat 8, estão<br
/> próximas a linha 1680 do squid.conf. Para se deslocar até esta linha, no<br
/> &#8220;vi&#8221;, digite &#8220;:1680&#8243; no modo de comandos.):<br
/> httpd_accel_port 80<br
/> httpd_accel_host virtual<br
/> httpd_accel_uses_host_header on<br
/> httpd_accel_with_proxy on</p><p>Além disso, é bom colocarmos alguma segurança no proxy, algo para evitar que<br
/> pessoas de outras redes acessem nosso servidor, consumindo nossa banda.<br
/> Próximo a linha 1460 estão definidas as &#8220;acls&#8221; (Access Control List). Nelas<br
/> definimos algumas regras que posteriormente serão usadas para liberar ou<br
/> bloquear acesso.<br
/> Ex:<br
/> acl minharede src 192.168.0.0/255.255.255.0<br
/> acl minhamaquina src 192.168.0.1/255.255.255.255<br
/> acl umsite dstdomain .sitequalquer.com.br</p><p>Aqui criamos três acls, uma para a rede, outra para uma máquina e por<br
/> último,<br
/> uma para um site qualquer.<br
/> Usamos o comando &#8220;http_access&#8221; para negar ou permitir o acesso a uma rede.<br
/> Por padrão, o Squid já vem com uma acl para todas as redes do mundo<br
/> (acl all src 0.0.0.0/0.0.0.0) e nega o acesso desta rede ao nosso proxy<br
/> (http_access deny all).<br
/> Vamos supor que na nossa rede (acl minharede), todo mundo pode navegar em<br
/> qualquer site, exceto em &#8220;sitequalquer.com.br&#8221;, mas uma máquina desta rede<br
/> (acl minhamaquina) poderá navegar em qualquer site, inclusive em<br
/> sitequalquer.com.br.<br
/> Teríamos que colocar as regras da seguinte maneira:<br
/> http_access allow minhamaquina<br
/> http_access deny umsite<br
/> http_access allow minharede<br
/> http_access deny all<br
/> Observe que &#8220;deny all&#8221; sempre terá que ser por último.<br
/> O Squid por padrão, vai seguindo as regras uma a uma, até encontrar uma<br
/> regra<br
/> que satisfaça sua condição, aí ele permite ou não o acesso, dependendo do<br
/> que<br
/> foi colocado em http_access.<br
/> Por exemplo, se eu estiver na máquina com IP 192.168.0.1 e quiser acessar<br
/> qualquer site, o Squid irá ler a primeira regra e verá que este IP pertence<br
/> a acl &#8220;minhamaquina&#8221; e existe uma regra &#8220;allow minhamaquina&#8221;, então ele<br
/> permitirá o acesso a qualquer site.<br
/> Se eu estivesse numa máquina com IP 192.168.0.2 e quisesse acessar um site<br
/> A,<br
/> o Squid irá ler a primeira regra e verá que esta máquina não pertence a<br
/> &#8220;minhamaquina&#8221;, lerá a segunda regra e verá que o site A não tem o domínio<br
/> de<br
/> destino (dstdomain) igual a &#8220;sitequalquer.com.br&#8221;, então por fim irá ler a<br
/> última regra e verá que este IP pertence a &#8220;minharede&#8221; e que ele está<br
/> autorizado (allow) a navegar.<br
/> Se esta mesma máquina tentasse acessar &#8220;sitequalquer.com.br&#8221;, o Squid iria<br
/> bloquear o acesso na segunda regra, pois existe um &#8220;deny umsite&#8221;.<br
/> Se qualquer máquina fora da rede 192.168.0.0/24 tentasse acessar este proxy,<br
/> o acesso seria negado devido a última regra ser &#8220;deny all&#8221;.</p><p>Como configurar o sistema para fazer Proxy transparente ?</p><p>Tendo configurados o Squid e o reencaminhamento de pacotes, precisamos apenas<br
/> fazer com que todos os pacotes que chegam ao gateway pela porta 80 sejam<br
/> redirecionados para a porta 3128 (a porta padrão do Squid). Para isto, vamos<br
/> usar uma regra de firewall extremamente simples:</p><p>#iptables -t nat -A PREROUTING -i eth0 -p tcp &#8211;dport 80 -j REDIRECT<br
/> &#8211;to-port 3128</p><p>Esta regra simplesmente faz com que todo o tráfego da porta 80 (http padrão) e<br
/> que vier pela interface eth0, seja redirecionado para o Squid (porta 3128).</p><p>Para deixar esta regra permanente, adicione no final de /etc/rc.d/rc.local (ou<br
/> crie um /etc/rc.d/rc.firewall, adicione todas as regras de firewall que tiver<br
/> nele e adicione apenas uma chamada a este arquivo em /etc/rc.d/rc.local, na<br
/> prática terá o mesmo efeito, mas ficará muito mais &#8220;legível&#8221; :)</p><p>Qualquer dúvida ou problema, entre em contato comigo.</p>]]></content:encoded> <wfw:commentRss>http://www.picoloto.com.br/linux/squid.php/feed</wfw:commentRss> <slash:comments>7</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/7 queries in 0.004 seconds using disk: basic
Object Caching 189/194 objects using disk: basic

Served from: www.picoloto.com.br @ 2012-02-06 16:20:38 -->
