Você está na página 1de 15

CONSTRUINDO UM FIREWALL COM IPTABLES, SQUID E

2
1. INTRODUÇÃO
SQUIDGUARD

Palloma Glaiene de Macedo Vale1 A Internet é praticamente o oxigênio da sociedade digital contemporânea. Todavia,
esse mesmo oxigênio que a ajuda a respirar, pode acabar engendrando o fogo que
irá consumi-la. A falta de segurança computacional existente na maioria dos

RESUMO: servidores acaba causando sérios prejuízos às empresas.

Este artigo aborda o firewall como temática principal. Este trabalho aborda a É como resposta a esta problemática que o firewall exerce um papel de suma

construção de um firewall, o qual irá controlar e monitorar o acesso dos importância. Firewall é o nome dado ao dispositivo de rede que, regulando o

funcionários da empresa Engineer LTDA à World Wide Web. Como restrições da tráfego entre redes distintas, busca impedir a transmissão de dados nocivos ou não

nova política de acesso à Internet, podem-se citar: a proibição de acesso a chats e autorizados de uma rede a outra.

redes sociais na hora do expediente, bloqueio de downloads, autenticação para


acesso e controle de banda. O Iptables, assim como o Squid e o SquidGuard, serão
utilizados para a construção do firewall. 2. METODOLOGIA

PALAVRAS-CHAVES: Firewall, Iptables, Squid, SquidGuard. A escolha desse tema se deu devido à grande importância que o quesito segurança
assumiu na sociedade digital contemporânea. Possuir um firewall bem configurado
é vital para aquele que deseja se proteger contra indivíduos mal intencionados que

ABSTRACT: acessem o sistema.

This article has firewall as main thematic. This work accosts a firewall building, São várias as ferramentas de filtro e firewall disponíveis. As utilizadas nesse artigo

which will control and monitory the access of Engineer’s employees to World são o Iptables, o Squid e o SquidGuard. Mas, como construir um firewall usando

Wide Web. As restrictions of new access politic are included: chats, social nets, tais programas, de modo a bloquear tráfegos nocivos, controlar o uso da banda e

downloads, bandwidth control and authentication. Iptables, as well as Squid and monitorar o acesso dos usuários? Este artigo enfoca os seguintes objetivos:

SquidGuard, will be used to build the firewall.


 Bloquear tráfegos nocivos com Iptables e Squid;

KEYWORDS: Firewall, Iptables, Squid, SquidGuard.  Controlar o uso da banda com o Squid por meio de delay pools;
 Fazer um filtro de conteúdo com o SquidGuard usando blacklists;
1
Graduando em Tecnologia de redes de computadores na FAJESU. Email: glaelav@gmail.com.  Usar a autenticação ncsa_auth do Squid;
Professor Orientador: Janilson Nascimento, Co-orientador: Marco Antonio Martins.
3 4
 Usar Iptables para limitar respostas a pings e bloquear source routing. se saber qual o melhor, pois cada um trabalha para um determinado fim, fazendo
com que a comparação não seja aplicável.
Para melhor elucidar o problema, será utilizado um estudo de caso, ilustrado por
meio de máquinas virtuais criadas pelo VirtualBox. O firewall que trabalha na filtragem de pacotes é muito utilizado em redes
pequenas ou de porte médio. Este tipo se restringe a trabalhar nas camadas TCP/IP,
tomando as decisões baseado no endereço IP, porta TCP usada, dentre outros
3. FIREWALL fatores. Quando devidamente configurado, esse tipo de firewall permite que
somente computadores conhecidos troquem determinadas informações entre si e
Um firewall é um filtro que controla todos os dados que passam de uma rede a tenham acesso a determinados recursos. Ele também é capaz de analisar
outra por meio de regras pré-estabelecidas. “O Firewall trabalha como um fiscal de informações sobre a conexão e perceber alterações suspeitas.
alfândega, que analisa todos os pacotes que chegam, decidindo o que deve passar
e o que deve ficar retido.” (MORIMOTO, 2008.p.185). A seguir, são citadas três Firewalls de controle de aplicação são instalados geralmente em computadores
razões para se usar um firewall: servidores e são conhecidos como proxy. Este tipo não permite a comunicação
direta entre a rede e a Internet, efetuando a comunicação entre os lados. Este tipo de
 O firewall pode ser usado para ajudar a impedir que a rede ou o computador firewall é mais complexo, porém mais seguro. O firewall de aplicação permite um
seja acessado sem autorização. Assim, é possível evitar que informações sejam acompanhamento mais preciso do tráfego entre a rede e a Internet (ou entre a rede e
capturadas ou que sistemas tenham seu funcionamento prejudicado pela ação de outra rede). É possível, inclusive, contar com recursos de log e ferramentas de
black hats; auditoria. Tais características deixam claro que este tipo de firewall é voltado a
redes de porte médio ou grande.
 O firewall é capaz de bloquear portas que eventualmente sejam usadas pelas
"pragas digitais" ou então bloquear acesso a programas não autorizados;
4. ESCOPO DO PROBLEMA
 Em redes corporativas, é possível evitar que os usuários acessem serviços ou
sistemas indevidos, além de ter o controle sobre as ações realizadas na rede, A empresa Engineer LTDA presta serviços de engenharia aos clientes, participando
sendo possível até mesmo descobrir quais usuários as efetuaram. também de licitações na modalidade Pregão Eletrônico. A empresa possui um link
de 3Mbps.
Existem dois tipos básicos de firewalls: o que é baseado em filtragem de pacotes e
o que é baseado em controle de aplicações. Ambos não devem ser comparados para O acesso à Internet na firma costumava ser totalmente liberado. Todavia, nos
últimos meses, percebeu-se que os funcionários estavam gastando muito tempo em
5 6
sites de relacionamento e bate-papo, relegando o trabalho a um segundo plano.
Comprovou-se também que os downloads de música e vídeos, bem como o acesso
a rádios e TVs online estavam sobrecarregando a rede.

Devido a tais acontecimentos, a Engineer LTDA resolveu adotar uma nova política
de acesso a Internet, a qual passará a ter um caráter mais restritivo. Decidiu-se por
bloquear o acesso a chats, jogos, rádios e TVs online, bem como à pornografia
durante o expediente. O Google Talk via Gmail será bloqueado.

Figura 1 – Estrutura da rede


Devido a algumas reclamações por parte dos funcionários no que tange ao alto grau
Fonte: Do autor
de restrição no uso da Internet, acordou-se que durante o horário de almoço, o
acesso a sites de relacionamentos, bate-papo e downloads será permitido, haja vista
Os servidores na DMZ serão virtualizados em um mesmo host, o qual possui o
que tal liberação, nesse horário, não irá prejudicar a empresa.
endereço IP 192.168.2.1. Os servidores serão mascarados na saída para a Internet.
Os servidores de arquivo e DHCP terão os seguintes endereços:
Para maior controle, o acesso a Internet só poderá ser feito por meio da
autenticação dos usuários, com exceção do presidente e vice-presidente da
 Servidor de arquivos: 192.168.1.1
empresa. Também deverá haver log dos acessos com o intuito de melhorias e
 Servidor DHCP: 192.168.1.2
auditorias no firewall. Em caso de queda de energia, o script de configuração, bem
como o firewall, deverá levantar automaticamente. Não será permitido tráfego de
Objetivando uma maior segurança no que tange aos arquivos internos da empresa,
pacotes mal formados.
o servidor de arquivos só estará disponível para a rede interna. No intuito de
automatizar a distribuição de endereços na rede interna, os IPs serão atribuídos às
De acordo com a nova política, a estrutura de rede da empresa será constituída por:
máquinas por meio de DHCP. O servidor DHCP também ficará na Intranet.

 Internet;
A Intranet só poderá acessar os servidores sob o protocolo responsável pelos
serviços que eles disponibilizam, objetivando diminuir o número de portas abertas
 Uma DMZ, a qual terá os servidores WEB, Email e DNS;
desnecessariamente no servidor. Os servidores podem acessar a Internet pela porta
80 para a atualização. Haverá três grupos pertencentes à Intranet, são eles:
 Intranet, que será composta pelas máquinas dos funcionários e pelos servidores
DHCP e de Arquivo.
 Presidência
7 8
 Funcionários da informática o Squid, sendo este último combinado com o SquidGuard, devido a uma maior
 Funcionários velocidade de processamento. O firewall intermediará o tráfego entre DMZ,
Intranet e Internet. O proxy ficará na máquina firewall.
As duas máquinas da presidência terão acesso ilimitado, possuindo os seguintes IPs
estáticos:
5.1 Iptables
 Presidência_1: 192.168.1.3
 Presidência_2: 192.168.1.4 O Iptables é um firewall em nível de pacote criado Rusty Russel e licenciado sob
os termos da GPL. Esta ferramenta está presente a partir da versão 2.4 do kernel do
As três máquinas da informática poderão realizar downloads devido ao fato de Linux e veio como substituto ao Ipchains. Suas principais características são:
terem que baixar programas e aplicativos para instalar nas máquinas. Os hosts que
pertencem à equipe de T.I terão os seguintes endereços IP estáticos:  Especificação de portas/endereços de origem/destino;
 Suporte aos protocolos TCP, UDP e ICMP e a interfaces;
 Máquina 01: 192.168.1.5  Possui mecanismos para rejeitar pacotes mal formados;
 Máquina 02: 192.168.1.6  Suporte a módulos externos para a expansão das funcionalidades do firewall;
 Máquina 03: 192.168.1.7  Suporte a priorização de serviços;
 Redirecionamento de portas e Masquerading;
Haverá controle de banda por usuário com o intuito de evitar que alguns usuários
sobrecarreguem a rede e garantir que cada funcionário tenha banda disponível O funcionamento do Iptables é dividido basicamente em tabelas, chains e regras.
quando necessário. Pode-se imaginar uma tabela como sendo um local para armazenar chains com
uma determinada característica em comum. O Iptables possui quatro tabelas. São
elas:
5. SOLUÇÃO ADOTADA
 Filter: Utilizada para a tomada de decisões quanto à passagem ou não de um
No intuito de melhor atender às exigências da nova política da empresa para acesso pacote através do filtro. Essa é a tabela padrão.
à Internet, será utilizada uma combinação entre os firewalls de pacote e de
aplicação. Decidiu-se pela adoção de soluções baseadas em software livre devido a  Mangle: Realiza alterações especiais, tais como TOS, de forma a auxiliar os
maior confiabilidade e liberdade de uso apresentadas por tal filosofia, bem como mecanismos de filtro de pacotes.
por causa das reduções no custo da solução. Sob esta luz, será utilizado o Iptables e
9 10
 Nat: É usada para compartilhar a conexão e/ou rotear os pacotes. As regras podem ser entendidas como comandos passados ao Iptables para que
ele realize uma determinada ação. As regras de filtragem, geralmente, são
 Raw: Utilizada principalmente para configurar exceções no mecanismo de compostas assim:
conection tracking do kernel (ativado através do módulo ip_contract).
iptables [-t tabela] [opção] [chain] [dados] –j [ação]
A ordem de avaliação das tabelas é a seguinte:
Para Urubatan Neto (2004), o Iptables é uma ferramenta que permite manipular as
Raw mangle nat filter tabelas do Netfilter, embora o mesmo seja constantemente confundido como um
firewall por si só. Na realidade, o Iptables é uma espécie de front-end para
As chains podem ser definidas como as subdivisões de uma tabela, nas quais as manipular as tabelas do Netfilter, o qual é um software acoplado ao sistema Linux
regras serão armazenadas. Existem dois tipos de chains: as embutidas e as criadas cuja função e controlar a entrada e a saída de pacotes, sendo ele o firewall
pelos usuários. Os nomes das chains embutidas devem ser escritos em maiúsculo, propriamente dito.
pois são case-sensitive. Existem cinco chains principais (embutidas). São elas:

 INPUT (mangle, filter): Verifica pacotes destinados à máquina filtro. 5.2 Squid e Squidguard

 OUTPUT (raw, mangle, nat e filter): Verifica pacotes originados na máquina O Squid é um firewall livre e de código aberto em nível de aplicação que atua como
filtro que são destinados a outra máquina. um intermediário entre os microcomputadores e a Internet. O proxy Squid analisa
todo o tráfego de dados, separando o que pode ou não passar e guardando
 FORWARD (mangle, filter): Utilizada para verificar os pacotes que informações para o uso posterior. Usar proxy tem várias vantagens, as principais
atravessam a máquina filtro, ou seja, pacotes gerados por uma máquina A são:
destinados a uma máquina B e que passam pelo filtro.
 Possibilidade de impor restrições de acesso com base no horário, login e
 PREROUTING (raw, mangle e nat): Utilizada para tomada de decisões de endereço IP, bem como bloquear páginas com conteúdo indesejado.
roteamento, tais como redirecionamento de pacotes. Usada antes do roteamento.
 O proxy funciona como cache de páginas e arquivos, armazenando informações
 POSTROUTING (mangle e nat): Usada quando um cliente da rede local tenta já acessadas. Isso economiza banda, tornando o acesso mais rápido.
acessar o conteúdo da Internet através da máquina filtro de pacotes (gateway).
 Log dos acessos realizados através dele.
11 12
O Squid trabalha com dois tipos de cache: cache rápido, feito usando parte da Presidência poderá utilizar os 2Mbps de forma ilimitada. A informática usará até
memória RAM do servidor, e um cache um pouco mais lento, porém maior, feito 100kbps e os demais funcionários até o máximo de 80kbps. Nesse contexto,
no HD. O cache na RAM é ideal para armazenar arquivos pequenos, tais como estima-se que poderá se ter uma média de 25 usuários conectados a 80kbps. Acima
páginas HTML e imagens. O cache no HD é usado para armazenar arquivos deste número, a velocidade será reduzida, haja vista que a soma da banda
maiores, tais como downloads. consumida pelos funcionários excederia o valor do agregado.

Bloquear endereços IP e domínios funciona bem para bloquear páginas específicas, O bloqueio ao GTALK será realizado pelo Squid. A autenticação dos usuários será
mas não para bloquear páginas pornográficas, por exemplo, pois existem muitas realizada por meio do módulo “ncsa_auth”, o qual faz parte do pacote principal do
delas, de forma que tentar bloqueá-las manualmente seria praticamente impossível. Squid. A escolha deste método deu-se devido ao pequeno porte da rede (cerca de 50
máquinas) e à sua facilidade de implementação. Nesse método, deverá ser criado
Como solução a este problema, será utilizada nesse artigo uma lista chamada um arquivo de senhas.
Shalla’s blacklists, a qual contém mais de 1.500.000 de URLs. Esta lista nada mais
é do que diretórios com longos arquivos de links, com um por linha. Na lista, cada Antes de colocar o firewall em funcionamento, deve-se lembrar de fazer com que o
diretório relaciona-se a um assunto. SquidGuard atualize as listas, bem como reiniciar o Squid para que as alterações
entrem em vigor.
A Shalla’s blacklist pode ser utilizada diretamente no Squid através da opção
“url_regex”, mas por ser um arquivo muito grande, o desempenho seria ruim, já
que o Squid processa cada linha dos arquivos a cada acesso, o que consome muito 6. CONCLUSÃO
processamento.
A Internet é o alicerce da atual sociedade tecnocêntrica2. Todavia, a “grande

É nesse contexto que surge o SquidGuard, o qual permite usar longas listas de teia mundial” não proporciona adequada segurança aos indivíduos que dela

URLs com milhões de links sem uma grande perda de desempenho. O SquidGuard fazem uso. Fato: a World Wide Web é o principal ponto de invasão aos servidores,

é um plugin redirecionador, controlador de acesso e filtro para o Squid e, além de causando grandes prejuízos às empresas.

livre, é muito flexível, extremamente rápido, fácil de instalar e portável (roda em


AIX, FreeBSD, Linux e Solaris). Neste contexto, surge o Firewall, cuja função é controlar e bloquear o tráfego
indesejado entre as redes e a Internet. Têm-se basicamente dois tipos de Firewall: o

Para fazer o controle de banda serão utilizadas três delay pools, uma para cada de pacote e o de aplicação, sendo o Iptables e o Squid seus respectivos

grupo de usuários. Dos 3Mbps disponíveis pelo link serão utilizados 2Mbps para o
Squid, sendo o restante reservado para outros serviços, como email, DNS, etc. A 2
Ciro Marcondes Filho, em seu livro “Sociedade Tecnológica”, usa esse termo para se referir a uma
sociedade onde a máquina passa a ocupar o lugar que anteriormente era preenchido pelo ser humano.
13 14
representantes. Juntos, eles configuram uma boa opção no que diz respeito à
CARNEIRO, Leonardo Ferreira & JÚNIOR, Nilton Alves. Roteadores e
construção da conhecida “muralha de fogo”.
Segurança em Redes. Disponível em:
<http://www.rederio.br/downloads/pdf/roteador.pdf>. Acesso em: 09 de outubro de
Todos os bloqueios pretendidos foram realizados com sucesso, bem como a
2009.
autenticação dos usuários. Caso haja necessidade, a restrição de acesso pode ser
feita por usuário ao invés de IPs. Cada uma dessas alternativas possui prós e
contras. O bloqueio por IP é vulnerável à medida que se pode alterar o valor de um CONECTIVA LINUX. Como configurar um firewall usando o Iptables.
IP para outro com menos restrições. Todavia, o IP duplicado na rede impediria a Disponível em: <http://virtual01.incc.br/~licht/linux/servidores.firewall.iptables.
navegação. Já o bloqueio por usuário também tem “falhas”, haja vista que se pode html> Acesso em 20 de julho de 2009.
descobrir a senha de outros indivíduos sem grades dificuldades. Somam-se ainda
aqueles que salvam a senha no computador. Aliás, vale ressaltar que o fator
CONECTIVA S.A. Configurando um firewall utilizando o Iptables. Disponível
humano é a maior vulnerabilidade num sistema computacional.
em: <http://www.dimap.ufrn.br/~aguiar/Manuais/Servidor/ip-tables.html>. Acesso
em 20 de julho de 2009.
Por ser o único diretamente conectado à Internet, o Firewall proporciona uma
forma mais segura de levar serviços à rede local. Sem ele, cada host seria o
MARCONDES FILHO, Ciro. Sociedade Tecnológica. 1.ed.; Editora Scipione: São
responsável por sua própria segurança, o que definitivamente não é uma opção,
Paulo, 2004.
haja vista que a maioria dos usuários não tem o conhecimento necessário para tal.

MATOS, Henrique Cristiano José Matos. Aprenda a Estudar: Orientações


Por mais eficiente que seja um Firewall, deve-se ter em mente que ele não
metodológicas para o estudo. 13.ed.; Editora Vozes: Petrópolis, 2004.
consegue combater todos os perigos da “grande teia mundial”. Como limitação
desta solução, cita-se o fato de ela não evitar que os hosts sejam infectados por
MOTA FILHO, João Eriberto. Firewall com Iptables. Disponível em:
vírus. Para tanto, deve-se ainda utilizar um software antivírus.
<http://www.eriberto.pro.br/iptables/3.html>. Acesso em: 27 de julho de 2009.

7. BIBLIOGRAFIA MORIMOTO, Carlos Eduardo. Servidores Linux: Guia Prático. s.ed.; Sul
Editores: Porto Alegre, 2008.
CAMPELO, Alisson Chrystian. O básico de Iptables. Disponível em:
<http://ctiti.com.br/?p=116>. Acesso em: 24 de julho de 2009.
NETO, Urubatan. Dominando o Linux Firewall Iptables. s.ed.; Ciência Moderna
LTDA: Rio de Janeiro, 2004.
15 16
SILVA, Gleydson Mazioli da. Guia Foca Gnu/Linux. Disponível em: conectada à Intranet e a DMZ à rede interna DMZ. O Iptables, o Squid e o
<http://focalinux.cipsga.org.br>. Acesso em: 29 de julho de 2009. SquidGuard serão instalados na máquina firewall.

A instalação do Iptables, do Squid e do SquidGuard no Debian é bastante simples,


ANEXO bastando apenas os seguintes comandos:

CONSTRUINDO O FIREWALL apt-get install iptables


apt-get install squid
Antes de se iniciar a construção do firewall, deve-se preparar o ambiente virtual apt-get install squidguard
necessário para sua implementação. Serão necessárias três máquinas virtuais: uma
representando o firewall, outra simbolizando a DMZ e a última como a Intranet. Para a configuração do Iptables, basta digitar as regras de firewall no próprio
terminal ou criar um script com elas, sendo esta última opção bem mais prática e
Será utilizado o Virtual Box como software de virtualização. A escolha se dá funcional, haja vista que dessa forma, as regras não serão apagadas no caso de
devido à simplicidade de uso do programa. As máquinas que representarão a DMZ reinicialização da máquina. De acordo com as exigências da empresa, o script de
e o Firewall usarão o Debian como sistema operacional. O Windows será utilizado firewall do Iptables ficará assim:
na Intranet.
#!/bin/bash
Vale lembrar que, durante a instalação do Debian, a configuração de rede das #SETA A POLÍTICA PADRÃO:
máquinas virtuais deve apontar para a Interface do hospedeiro, haja vista que a iptables -P INPUT DROP
distribuição utilizada é a netinst. iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
O procedimento de criação das máquinas virtuais não será abordado nesse artigo, #ZERA FILTROS:
tendo-se em vista que o objetivo deste não é a virtualização, mas a construção do iptables -F
firewall. iptables -t nat -F
iptables -t mangle -F
Depois de criadas as VMs (virtual machines), inicia-se o processo de configuração #ELIMINA CADEIAS AUXILIARES:
da “muralha de fogo”. Três interfaces de rede devem ser setadas para o firewall no iptables -X
Virtual Box: uma ligada à rede interna DMZ, outra à rede interna Intranet e, por echo "FILTRO ZERADO!"
último ultimo, uma na interface do hospedeiro. A máquina Windows deve estar #PERMITE ROTEAMENTO:
17 18
echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A FORWARD -d 192.168.2.1 -p udp --dport 53 -j ACCEPT
#LIMITANDO O NÚMERO DE RESPOSTAS A PINGS: #ACESSO AO SERVIDOR DE ARQUIVOS:
iptables -A INPUT -p icmp -m limit --limit 1/s -j ACCEPT iptables -A FORWARD -d 192.168.1.1 -s 192.168.1.0/24 -p tcp -j ACCEPT
iptables -A INPUT -p icmp -j LOG --log-prefix "NÚMERO DE PINGS iptables -A FORWARD -d 192.168.1.1 -s ! 192.168.1.0/24 -p tcp -j LOG --log-
EXCEDIDO!" prefix "ACESSO AO SERVIDOR ARQUIVOS!"
iptables -A INPUT -p icmp -j DROP iptables -A FORWARD -d 192.168.1.1 -s ! 192.168.1.0/24 -p tcp -j DROP
#DESATIVA O SUPORTE AO SOURCE ROUTING: #MASCARANDO ENDEREÇO IP:
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#ATIVANDO SYNCOOKIE: ##TRÁFEGO INTRANET => DMZ
#Só aloca recursos para uma conexão quando recebe um ACK de retorno. #Permite o acesso das máquinas da Intranet aos servidores na DMZ:
echo 1 > /proc/sys/net/ipv4/tcp_syncookies iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.2.1 -p tcp -m multiport --
#ATIVANDO O USO DO RP_FILTER: dport 80,25,110 -j ACCEPT
#Só responde pacotes na mesma interface na qual eles foram originados, ##TRÁFEGO INTRANET => INTERNET:
prevenindo o IP spoofing. #Se quiser fazer com que os usuários só saiam pelo proxy, retire ou comente a
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter próxima linha.
#BLOQUEANDO PACOTES MAL FORMADOS: iptables -A FORWARD -s 192.168.1.0/24 -o eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state INVALID -j LOG --log-prefix "PACOTE MAL ##TRÁFEGO DMZ => INTERNET
FORMADO!" iptables -A FORWARD -s 192.168.2.1 -o eth0 -p tcp -m multiport --dport
iptables -A INPUT -m state --state INVALID -j DROP 25,110,80 -j ACCEPT
iptables -A FORWARD -m state --state INVALID -j LOG --log-prefix "PACOTE ##TRÁFEGO INTERNET => DMZ
MAL FORMADO!" #Autoriza o acesso externo aos servidores:
iptables -A FORWARD -m state --state INVALID -j DROP iptables -A FORWARD -d 192.168.2.1 -i eth0 -p tcp -m multiport --dport
#AUTORIZA O TRÃFEGO LOOPBACK: 80,25,110 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT #Autoriza trafego na 3128.
#AUTORIZA CONEXÕES ESTABELECIDAS E RELACIONADAS: iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT echo "FILTRO CARREDAGO COM SUCESSO!"
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#AUTORIZA DNS: O arquivo de configuração do Squid é o “/etc/squid/squid.conf”. É nesse arquivo
iptables -A FORWARD -d 192.168.2.1 -p tcp --dport 53 -j ACCEPT que serão feitas as configurações e alterações necessárias ao seu funcionamento. O
19 20
squid.conf é bastante extenso, pois contém vários comentários explicando o acl SSL_ports port 443 563 873
funcionamento de cada opção do Squid. Para se ter um arquivo mais “enxuto” e acl Safe_ports port 80 21 443 70 210 1025-65535 280 488 591 777 631 873 901
mais fácil de trabalhar pode-se criar um arquivo em branco com o nome acl purge method PURGE
“squid.conf” e ir adicionando apenas as opções que forem necessárias, conservando acl CONNECT method CONNECT
o arquivo original do Squid, com um nome diferente, apenas para fins de pesquisa e http_access deny !Safe_ports
consulta. Para isso, os seguintes comandos são necessários: http_access deny CONNECT !SSL_ports
error_directory /usr/share/squid/errors/Portuguese
mv /etc/squid/squid.conf /etc/squid/squid.conf.original acl localhost src 127.0.0.1/255.255.255.255
touch /etc/squid/squid.conf http_access allow localhost
acl bate-papo url_regex -i "/etc/squid/bate-papo"
Depois disso, deve-se editar o arquivo criado, acrescentando-se as opções que serão acl bloqueados url_regex -i "/etc/squid/bloqueados"
utilizadas: acl almoco time 12:00-14:00
mcedit /etc/squid/squid.conf acl expediente time 08:00-18:00
acl presidencia src 192.168.1.3-192.168.1.4
#SQUID.CONF acl informatica src 192.168.1.5-192.168.1.7
acl intranet src 192.168.1.8-192.168.1.252
http_port 3128 acl dmz src 192.168.2.1
visible_hostname proxy auth_param basic realm Digite nome e senha
cache_mem 256 MB auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
maximum_object_size_in_memory 64 KB acl autenticados proxy_auth REQUIRED
maximum_object_size 700 MB redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
minimum_object_size 0KB redirect_children 8
cache_swap_low 90 redirector_bypass on
cache_swap_high 95 delay_pools 3
cache_dir ufs /var/spool/squid 10240 16 256 delay_class 1 2
cache_access_log /var/log/squid/access.log delay_parameters 1 262144/262144 -1/-1
refresh_pattern ^ftp 15 20% 2280 delay_access 1 allow presidencia
refresh_pattern ^gopher 15 0% 2280 delay_class 2 2
refresh_pattern . 15 20% 2280 delay_parameters 2 262e144/262144 12800/12800
21 22
delay_access 2 allow informatica mail.google.com/mail/channel/bind
delay_class 3 2 https://mail.google.com/mail/channel/bind
delay_parameters 3 262144/262144 10240/10240
delay_access 3 allow intranet #ARQUIVO /etc/squid/bloqueados
http_access deny !expediente meebo
http_access allow presidencia
http_access deny autenticados bate-papo !almoco Deve-se ainda criar o arquivo de senhas para que a autenticação do Squid funcione.
http_access deny autenticados bloqueados !almoco Para tal:
http_access allow autenticados
acl all src 0.0.0.0/0.0.0.0 cd /etc/squid
http_access deny all htpasswd –c squid_passwd presidente1

Por default, as páginas de erro do Squid são em inglês. Se quiser que elas apareçam O comando acima, cria um arquivo de senhas chamado squid_passwd com o
em português, basta acrescentar a seguinte linha ao arquivo /etc/squid/squid.conf: usuário presidente1. Será solicitada senha e confirmação. Repita esse comando,
sem a opção “-c”, para todos os usuários cuja senha deseja cadastrar.
Error_directory /usr/share/squid/errors/Portuguese
Segue agora o arquivo SquidGuard.conf :
Não se pode esquecer de criar os arquivos “bloqueados” e “bate-papo”. Para isso,
bastam os comandos: #ARQUIVO DE CONFIGURAÇÃO DO SQUIDGUARD:

cd /etc/squid dbhome /var/lib/squidguard/db/BL


mcedit bloqueados logdir /var/log/squid
mcedit bate-papo #DESTINOS BLOQUEADOS:
dest adv{
#ARQUIVO /etc/squid/bate-papo domainlist adv/domains
urllist adv/urls
loginnet.passport.com }
webmessenger.msn.com dest chat{
chatenable.mail.google.com domainlist chat/domains
23 24
urllist chat/urls }
} dest porn{
dest dating{ domainlist porn/domains
domainlist dating/domains urllist porn/urls
urllist dating/urls }
} dest redirector{
dest downloads{ domainlist redirector/domains
domainlist downloads/domains urllist redirector/urls
urllist downloads/urls }
} dest remotecontrol{
dest gamble{ domainlist remotecontrol/domains
domainlist gamble/domains urllist remotecontrol/urls
urllist gamble/urls }
} dest ringtones{
dest hacking{ domainlist ringtones/domains
domainlist hacking/domains urllist ringtones/urls
urllist hacking/urls }
} dest sex{
dest hobby_games-online{ domainlist sex/lingerie/domains
domainlist hobby/games-online/domains urllist sex/lingerie/urls
urllist hobby/games-online/urls }
} dest socialnet{
dest movies{ domainlist socialnet/domains
domainlist movies/domains urllist socialnet/urls
urllist movies/urls }
} dest spyware{
dest music{ domainlist spyware/domains
domainlist music/domains urllist spyware/urls
urllist music/urls }
25 26
dest tracker{ }
domainlist tracker/domains #SOURCE ADDRESS:
urllist tracker/urls src intranet {
} ip 192.168.1.8-192.168.1.252
dest updatesites{ }
domainlist updatesites/domains src presidencia {
urllist updatesites/urls ip 192.168.1.3-192.168.1.4
} }
dest warez{ src informatica {
domainlist warez/domains ip 192.168.1.5-192.168.1.7
urllist warez/urls }
} src dmz {
dest webphone{ ip 192.168.2.1
domainlist webphone/domains }
urllist webphone/urls acl {
} presidencia {
dest webradio{ pass all
domainlist webradio/domains }
urllist webradio/urls }
} acl {
dest webtv{ dmz {
domainlist webtv/domains pass !porn all
urllist webtv/urls redirect http://www.google.com
} }
time expediente{ }
weekly mtwhf 08:00-18:00 acl {
} informatica within almoco {
time almoco{
weekly mtwhf 12:00-14:00
27 28
pass !adv !dating !gamble !hobby_games-online !movies }
!music !porn !redirector !remotecontrol !ringtones !sex !spyware }
!tracker !webphone !webradio !webtv all
redirect http://www.google.com acl {
} default {
} pass none
acl { }
informatica within expediente { }
pass !adv !chat !dating !gamble !hobby_games-online !movies
!music !porn !redirector !remotecontrol !ringtones !sex !socialnet Faz-se essencial gerar os arquvos “.db” do SquidGuard antes de colocá-lo em
!spyware !tracker !webphone !webradio !webtv all funcionamento. Para isso, faça:
redirect http://www.google.com
} squidGuard -C all
}
acl { Esse processo pode levar um tempo, dependendo da quantidade de domínios e
intranet within almoco { URLs da blacklist. Deve-se ainda mudar o dono das blacklists para que o Squid
pass !adv !dating !gamble !hobby_games-online !movies !music funcione. Para tal:
!porn !redirector remotecontrol !ringtones !sex !spyware !tracker
!warez !webphone !webradio !webtv all cd /var/lib/squidguard/db
redirect http://www.google.com chown proxy:proxy BL
}
} Para reiniciar o Squid, basta executar o seguinte comando:
acl{
intranet within expediente { /etc/init.d/squid restart
pass !adv !chat !dating !downloads !gamble !hacking
!hobby_games-online !movies !music !porn !redirector Caso o servidor não possa ser reiniciado, tem-se a opção de carregar as
!remotecontrol !ringtones !sex !socialnet !spyware !tracker configurações sem parar o serviço com o comando:
!warez !webphone !webradio !webtv all
redirect http://www.google.com squid –k reconfigure
29
Para fazer com que o script de firewall seja carregado automaticamente, deve-se
colocar o comando que faz com que ele seja executado dentro do arquivo
“/etc/rc.local”.

Você também pode gostar