Anda di halaman 1dari 15

CONSTRUINDO UM FIREWALL COM IPTABLES, SQUID E SQUIDGUARD

RESUMO:

Palloma Glaiene de Macedo Vale 1

Este artigo aborda o firewall como temática principal. Este trabalho aborda a construção de um firewall, o qual irá controlar e monitorar o acesso dos funcionários da empresa Engineer LTDA à World Wide Web. Como restrições da nova política de acesso à Internet, podem-se citar: a proibição de acesso a chats e 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.

PALAVRAS-CHAVES: Firewall, Iptables, Squid, SquidGuard.

ABSTRACT:

This article has firewall as main thematic. This work accosts a firewall building, which will control and monitory the access of Engineer’s employees to World Wide Web. As restrictions of new access politic are included: chats, social nets, downloads, bandwidth control and authentication. Iptables, as well as Squid and SquidGuard, will be used to build the firewall.

KEYWORDS: Firewall, Iptables, Squid, SquidGuard.

1 Graduando em Tecnologia de redes de computadores na FAJESU. Email: glaelav@gmail.com. Professor Orientador: Janilson Nascimento, Co-orientador: Marco Antonio Martins.

1. INTRODUÇÃO

2

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 servidores acaba causando sérios prejuízos às empresas.

É como resposta a esta problemática que o firewall exerce um papel de suma

importância. Firewall é o nome dado ao dispositivo de rede que, regulando o tráfego entre redes distintas, busca impedir a transmissão de dados nocivos ou não autorizados de uma rede a outra.

2. METODOLOGIA

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 acessem o sistema.

São várias as ferramentas de filtro e firewall disponíveis. As utilizadas nesse artigo são o Iptables, o Squid e o SquidGuard. Mas, como construir um firewall usando tais programas, de modo a bloquear tráfegos nocivos, controlar o uso da banda e monitorar o acesso dos usuários? Este artigo enfoca os seguintes objetivos:

Bloquear tráfegos nocivos com Iptables e Squid;

Controlar o uso da banda com o Squid por meio de delay pools;

Fazer um filtro de conteúdo com o SquidGuard usando blacklists;

Usar a autenticação ncsa_auth do Squid;

3

4

Usar Iptables para limitar respostas a pings e bloquear source routing.

Para melhor elucidar o problema, será utilizado um estudo de caso, ilustrado por meio de máquinas virtuais criadas pelo VirtualBox.

3.

FIREWALL

Um firewall é um filtro que controla todos os dados que passam de uma rede a outra por meio de regras pré-estabelecidas. “O Firewall trabalha como um fiscal de 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 razões para se usar um firewall:

O firewall pode ser usado para ajudar a impedir que a rede ou o computador seja acessado sem autorização. Assim, é possível evitar que informações sejam capturadas ou que sistemas tenham seu funcionamento prejudicado pela ação de black hats;

O firewall é capaz de bloquear portas que eventualmente sejam usadas pelas "pragas digitais" ou então bloquear acesso a programas não autorizados;

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, sendo possível até mesmo descobrir quais usuários as efetuaram.

se saber qual o melhor, pois cada um trabalha para um determinado fim, fazendo com que a comparação não seja aplicável.

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 fatores. Quando devidamente configurado, esse tipo de firewall permite que somente computadores conhecidos troquem determinadas informações entre si e tenham acesso a determinados recursos. Ele também é capaz de analisar informações sobre a conexão e perceber alterações suspeitas.

Firewalls de controle de aplicação são instalados geralmente em computadores 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 firewall é mais complexo, porém mais seguro. O firewall de aplicação permite um acompanhamento mais preciso do tráfego entre a rede e a Internet (ou entre a rede e outra rede). É possível, inclusive, contar com recursos de log e ferramentas de auditoria. Tais características deixam claro que este tipo de firewall é voltado a redes de porte médio ou grande.

4. ESCOPO DO PROBLEMA

A empresa Engineer LTDA presta serviços de engenharia aos clientes, participando

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.

Devido a algumas reclamações por parte dos funcionários no que tange ao alto grau

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

que tal liberação, nesse horário, não irá prejudicar a empresa.

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

empresa. Também deverá haver log dos acessos com o intuito de melhorias e

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

pacotes mal formados.

De acordo com a nova política, a estrutura de rede da empresa será constituída por:

Internet;

Uma DMZ, a qual terá os servidores WEB, Email e DNS;

Intranet, que será composta pelas máquinas dos funcionários e pelos servidores

DHCP e de Arquivo.

dos funcionários e pelos servidores DHCP e de Arquivo. Figura 1 – Estrutura da rede Fonte:

Figura 1 Estrutura da rede Fonte: Do autor

Os servidores na DMZ serão virtualizados em um mesmo host, o qual possui o

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:

Servidor de arquivos: 192.168.1.1

Servidor DHCP: 192.168.1.2

Objetivando uma maior segurança no que tange aos arquivos internos da empresa,

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

máquinas por meio de DHCP. O servidor DHCP também ficará na Intranet.

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

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:

Presidência

7

8

Funcionários

Funcionários da informática

As duas máquinas da presidência terão acesso ilimitado, possuindo os seguintes IPs estáticos:

o Squid, sendo este último combinado com o SquidGuard, devido a uma maior

velocidade de processamento. O firewall intermediará o tráfego entre DMZ,

Intranet e Internet. O proxy ficará na máquina firewall.

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;

Haverá controle de banda por usuário com o intuito de evitar que alguns usuários

Redirecionamento de portas e Masquerading;

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

5. SOLUÇÃO ADOTADA

No intuito de melhor atender às exigências da nova política da empresa para acesso à 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 maior confiabilidade e liberdade de uso apresentadas por tal filosofia, bem como por causa das reduções no custo da solução. Sob esta luz, será utilizado o Iptables e

uma determinada característica em comum. O Iptables possui quatro tabelas. São

elas:

Filter: Utilizada para a tomada de decisões quanto à passagem ou não de um pacote através do filtro. Essa é a tabela padrão.

Mangle: Realiza alterações especiais, tais como TOS, de forma a auxiliar os mecanismos de filtro de pacotes.

9

10

Nat: É usada para compartilhar a conexão e/ou rotear os pacotes.

Raw: Utilizada principalmente para configurar exceções no mecanismo de conection tracking do kernel (ativado através do módulo ip_contract).

A ordem de avaliação das tabelas é a seguinte:

Raw

). A ordem de avaliação das tabelas é a seguinte: Raw mangle nat filter As chains

mangle

A ordem de avaliação das tabelas é a seguinte: Raw mangle nat filter As chains podem
A ordem de avaliação das tabelas é a seguinte: Raw mangle nat filter As chains podem

nat

filter

As chains podem ser definidas como as subdivisões de uma tabela, nas quais as regras serão armazenadas. Existem dois tipos de chains: as embutidas e as criadas pelos usuários. Os nomes das chains embutidas devem ser escritos em maiúsculo, pois são case-sensitive. Existem cinco chains principais (embutidas). São elas:

INPUT (mangle, filter): Verifica pacotes destinados à máquina filtro.

OUTPUT (raw, mangle, nat e filter): Verifica pacotes originados na máquina filtro que são destinados a outra máquina.

FORWARD (mangle, filter): Utilizada para verificar os pacotes que atravessam a máquina filtro, ou seja, pacotes gerados por uma máquina A destinados a uma máquina B e que passam pelo filtro.

PREROUTING (raw, mangle e nat): Utilizada para tomada de decisões de roteamento, tais como redirecionamento de pacotes. Usada antes do roteamento.

POSTROUTING (mangle e nat): Usada quando um cliente da rede local tenta acessar o conteúdo da Internet através da máquina filtro de pacotes (gateway).

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 compostas assim:

iptables [-t tabela] [opção] [chain] [dados] j [ação]

Para Urubatan Neto (2004), o Iptables é uma ferramenta que permite manipular as 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 manipular as tabelas do Netfilter, o qual é um software acoplado ao sistema Linux cuja função e controlar a entrada e a saída de pacotes, sendo ele o firewall propriamente dito.

5.2 Squid e Squidguard

O Squid é um firewall livre e de código aberto em nível de aplicação que atua como 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 informações para o uso posterior. Usar proxy tem várias vantagens, as principais são:

Possibilidade

de

impor

restrições de acesso com base no horário, login e

endereço IP, bem como bloquear páginas com conteúdo indesejado.

O proxy funciona como cache de páginas e arquivos, armazenando informações já acessadas. Isso economiza banda, tornando o acesso mais rápido.

Log dos acessos realizados através dele.

11

12

O Squid trabalha com dois tipos de cache: cache rápido, feito usando parte da

memória RAM do servidor, e um cache um pouco mais lento, porém maior, feito

no HD. O cache na RAM é ideal para armazenar arquivos pequenos, tais como páginas HTML e imagens. O cache no HD é usado para armazenar arquivos maiores, tais como downloads.

Bloquear endereços IP e domínios funciona bem para bloquear páginas específicas, mas não para bloquear páginas pornográficas, por exemplo, pois existem muitas delas, de forma que tentar bloqueá-las manualmente seria praticamente impossível.

Como solução a este problema, será utilizada nesse artigo uma lista chamada

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 diretório relaciona-se a um assunto.

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 processamento.

É nesse contexto que surge o SquidGuard, o qual permite usar longas listas de

URLs com milhões de links sem uma grande perda de desempenho. O SquidGuard

é um plugin redirecionador, controlador de acesso e filtro para o Squid e, além de

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

AIX, FreeBSD, Linux e Solaris).

Para fazer o controle de banda serão utilizadas três delay pools, uma para cada 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

Presidência poderá utilizar os 2Mbps de forma ilimitada. A informática usará até 100kbps e os demais funcionários até o máximo de 80kbps. Nesse contexto, estima-se que poderá se ter uma média de 25 usuários conectados a 80kbps. Acima deste número, a velocidade será reduzida, haja vista que a soma da banda consumida pelos funcionários excederia o valor do agregado.

O bloqueio ao GTALK será realizado pelo Squid. A autenticação dos usuários será realizada por meio do módulo “ncsa_auth”, o qual faz parte do pacote principal do 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 um arquivo de senhas.

Antes de colocar o firewall em funcionamento, deve-se lembrar de fazer com que o SquidGuard atualize as listas, bem como reiniciar o Squid para que as alterações entrem em vigor.

6.

CONCLUSÃO

A Internet é o alicerce da atual sociedade tecnocêntrica 2 . Todavia, a “grande teia mundial” não proporciona adequada segurança aos indivíduos que dela fazem uso. Fato: a World Wide Web é o principal ponto de invasão aos servidores, causando grandes prejuízos às empresas.

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 de pacote e o de aplicação, sendo o Iptables e o Squid seus respectivos

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 à

construção da conhecida “muralha de fogo”.

Todos os bloqueios pretendidos foram realizados com sucesso, bem como a

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

IP para outro com menos restrições. Todavia, o IP duplicado na rede impediria a

navegação. Já o bloqueio por usuário também tem “falhas”, haja vista que se pode

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

humano é a maior vulnerabilidade num sistema computacional.

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

responsável por sua própria segurança, o que definitivamente não é uma opção,

haja vista que a maioria dos usuários não tem o conhecimento necessário para tal.

Por mais eficiente que seja um Firewall, deve-se ter em mente que ele não

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

vírus. Para tanto, deve-se ainda utilizar um software antivírus.

7.

BIBLIOGRAFIA

CAMPELO, Alisson Chrystian. O básico de Iptables. Disponível em:

<http://ctiti.com.br/?p=116>. Acesso em: 24 de julho de 2009.

CARNEIRO,

Leonardo

Ferreira

&

JÚNIOR,

Nilton

Alves.

Roteadores

e

Segurança

em

Redes.

Disponível

em:

<http://www.rederio.br/downloads/pdf/roteador.pdf>. Acesso em: 09 de outubro de

2009.

CONECTIVA

LINUX.

Como

configurar

um

firewall

usando

o

Iptables.

Disponível

html> Acesso em 20 de julho de 2009.

em:

<http://virtual01.incc.br/~licht/linux/servidores.firewall.iptables.

CONECTIVA S.A. Configurando um firewall utilizando o Iptables. Disponível

em: <http://www.dimap.ufrn.br/~aguiar/Manuais/Servidor/ip-tables.html>. Acesso

em 20 de julho de 2009.

MARCONDES FILHO, Ciro. Sociedade Tecnológica. 1.ed.; Editora Scipione: São Paulo, 2004.

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

metodológicas para o estudo. 13.ed.; Editora Vozes: Petrópolis, 2004.

MOTA FILHO, João Eriberto. Firewall com Iptables. Disponível em:

<http://www.eriberto.pro.br/iptables/3.html>. Acesso em: 27 de julho de 2009.

MORIMOTO, Carlos Eduardo. Servidores Linux: Guia Prático. s.ed.; Sul

Editores: Porto Alegre, 2008.

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:

<http://focalinux.cipsga.org.br>. Acesso em: 29 de julho de 2009.

ANEXO

CONSTRUINDO O FIREWALL

Antes de se iniciar a construção do firewall, deve-se preparar o ambiente virtual 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.

Será utilizado o Virtual Box como software de virtualização. A escolha se dá devido à simplicidade de uso do programa. As máquinas que representarão a DMZ

e o Firewall usarão o Debian como sistema operacional. O Windows será utilizado

na Intranet.

Vale lembrar que, durante a instalação do Debian, a configuração de rede das máquinas virtuais deve apontar para a Interface do hospedeiro, haja vista que a distribuição utilizada é a netinst.

O procedimento de criação das máquinas virtuais não será abordado nesse artigo,

tendo-se em vista que o objetivo deste não é a virtualização, mas a construção do firewall.

Depois de criadas as VMs (virtual machines), inicia-se o processo de configuração da “muralha de fogo”. Três interfaces de rede devem ser setadas para o firewall no Virtual Box: uma ligada à rede interna DMZ, outra à rede interna Intranet e, por último ultimo, uma na interface do hospedeiro. A máquina Windows deve estar

conectada à Intranet e a DMZ à rede interna DMZ. O Iptables, o Squid e o SquidGuard serão instalados na máquina firewall.

A instalação do Iptables, do Squid e do SquidGuard no Debian é bastante simples, bastando apenas os seguintes comandos:

apt-get install iptables apt-get install squid apt-get install squidguard

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 funcional, haja vista que dessa forma, as regras não serão apagadas no caso de reinicialização da máquina. De acordo com as exigências da empresa, o script de firewall do Iptables ficará assim:

#!/bin/bash #SETA A POLÍTICA PADRÃO:

iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT #ZERA FILTROS:

iptables -F iptables -t nat -F iptables -t mangle -F #ELIMINA CADEIAS AUXILIARES:

iptables -X echo "FILTRO ZERADO!" #PERMITE ROTEAMENTO:

17

echo 1 > /proc/sys/net/ipv4/ip_forward #LIMITANDO O NÚMERO DE RESPOSTAS A PINGS:

iptables -A INPUT -p icmp -m limit --limit 1/s -j ACCEPT iptables -A INPUT -p icmp -j LOG --log-prefix "NÚMERO DE PINGS EXCEDIDO!" iptables -A INPUT -p icmp -j DROP #DESATIVA O SUPORTE AO SOURCE ROUTING:

echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route #ATIVANDO SYNCOOKIE:

#Só aloca recursos para uma conexão quando recebe um ACK de retorno. echo 1 > /proc/sys/net/ipv4/tcp_syncookies #ATIVANDO O USO DO RP_FILTER:

#Só responde pacotes na mesma interface na qual eles foram originados, prevenindo o IP spoofing. echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter #BLOQUEANDO PACOTES MAL FORMADOS:

iptables -A INPUT -m state --state INVALID -j LOG --log-prefix "PACOTE MAL FORMADO!" iptables -A INPUT -m state --state INVALID -j DROP iptables -A FORWARD -m state --state INVALID -j LOG --log-prefix "PACOTE MAL FORMADO!" iptables -A FORWARD -m state --state INVALID -j DROP #AUTORIZA O TRÃFEGO LOOPBACK:

iptables -A INPUT -i lo -j ACCEPT #AUTORIZA CONEXÕES ESTABELECIDAS E RELACIONADAS:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT #AUTORIZA DNS:

iptables -A FORWARD -d 192.168.2.1 -p tcp --dport 53 -j ACCEPT

18

iptables -A FORWARD -d 192.168.2.1 -p udp --dport 53 -j ACCEPT #ACESSO AO SERVIDOR DE ARQUIVOS:

iptables -A FORWARD -d 192.168.1.1 -s 192.168.1.0/24 -p tcp -j ACCEPT iptables -A FORWARD -d 192.168.1.1 -s ! 192.168.1.0/24 -p tcp -j LOG --log- prefix "ACESSO AO SERVIDOR ARQUIVOS!" iptables -A FORWARD -d 192.168.1.1 -s ! 192.168.1.0/24 -p tcp -j DROP #MASCARANDO ENDEREÇO IP:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE ##TRÁFEGO INTRANET => DMZ #Permite o acesso das máquinas da Intranet aos servidores na DMZ:

iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.2.1 -p tcp -m multiport -- dport 80,25,110 -j ACCEPT ##TRÁFEGO INTRANET => INTERNET:

#Se quiser fazer com que os usuários só saiam pelo proxy, retire ou comente a próxima linha. iptables -A FORWARD -s 192.168.1.0/24 -o eth0 -p tcp --dport 80 -j ACCEPT ##TRÁFEGO DMZ => INTERNET iptables -A FORWARD -s 192.168.2.1 -o eth0 -p tcp -m multiport --dport 25,110,80 -j ACCEPT ##TRÁFEGO INTERNET => DMZ #Autoriza o acesso externo aos servidores:

iptables -A FORWARD -d 192.168.2.1 -i eth0 -p tcp -m multiport --dport 80,25,110 -j ACCEPT #Autoriza trafego na 3128. iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 3128 -j ACCEPT echo "FILTRO CARREDAGO COM SUCESSO!"

O arquivo de configuração do Squid é o “/etc/squid/squid.conf”. É nesse arquivo que serão feitas as configurações e alterações necessárias ao seu funcionamento. O

19

squid.conf é bastante extenso, pois contém vários comentários explicando o funcionamento de cada opção do Squid. Para se ter um arquivo mais “enxuto” e mais fácil de trabalhar pode-se criar um arquivo em branco com o nome “squid.conf” e ir adicionando apenas as opções que forem necessárias, conservando o arquivo original do Squid, com um nome diferente, apenas para fins de pesquisa e consulta. Para isso, os seguintes comandos são necessários:

mv /etc/squid/squid.conf /etc/squid/squid.conf.original touch /etc/squid/squid.conf

Depois disso, deve-se editar o arquivo criado, acrescentando-se as opções que serão utilizadas:

mcedit /etc/squid/squid.conf

#SQUID.CONF

http_port 3128 visible_hostname proxy cache_mem 256 MB maximum_object_size_in_memory 64 KB maximum_object_size 700 MB minimum_object_size 0KB cache_swap_low 90 cache_swap_high 95 cache_dir ufs /var/spool/squid 10240 16 256 cache_access_log /var/log/squid/access.log refresh_pattern ^ftp 15 20% 2280 refresh_pattern ^gopher 15 0% 2280 refresh_pattern . 15 20% 2280

acl SSL_ports port 443 563 873 acl Safe_ports port 80 21 443 70 210 1025-65535 280 488 591 777 631 873 901 acl purge method PURGE acl CONNECT method CONNECT http_access deny !Safe_ports http_access deny CONNECT !SSL_ports error_directory /usr/share/squid/errors/Portuguese acl localhost src 127.0.0.1/255.255.255.255 http_access allow localhost acl bate-papo url_regex -i "/etc/squid/bate-papo" acl bloqueados url_regex -i "/etc/squid/bloqueados" acl almoco time 12:00-14:00 acl expediente time 08:00-18:00 acl presidencia src 192.168.1.3-192.168.1.4 acl informatica src 192.168.1.5-192.168.1.7 acl intranet src 192.168.1.8-192.168.1.252 acl dmz src 192.168.2.1 auth_param basic realm Digite nome e senha auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd acl autenticados proxy_auth REQUIRED redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf redirect_children 8 redirector_bypass on delay_pools 3 delay_class 1 2 delay_parameters 1 262144/262144 -1/-1 delay_access 1 allow presidencia delay_class 2 2 delay_parameters 2 262e144/262144 12800/12800

20

21

delay_access 2 allow informatica delay_class 3 2 delay_parameters 3 262144/262144 10240/10240 delay_access 3 allow intranet http_access deny !expediente http_access allow presidencia http_access deny autenticados bate-papo !almoco http_access deny autenticados bloqueados !almoco http_access allow autenticados acl all src 0.0.0.0/0.0.0.0 http_access deny all

Por default, as páginas de erro do Squid são em inglês. Se quiser que elas apareçam em português, basta acrescentar a seguinte linha ao arquivo /etc/squid/squid.conf:

Error_directory /usr/share/squid/errors/Portuguese

Não se pode esquecer de criar os arquivos “bloqueados” e “bate-papo”. Para isso, bastam os comandos:

mail.google.com/mail/channel/bind

https://mail.google.com/mail/channel/bind

#ARQUIVO /etc/squid/bloqueados meebo

22

Deve-se ainda criar o arquivo de senhas para que a autenticação do Squid funcione. Para tal:

cd /etc/squid htpasswd c squid_passwd presidente1

O comando acima, cria um arquivo de senhas chamado squid_passwd com o 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.

Segue agora o arquivo SquidGuard.conf :

#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 {

}

time almoco{ weekly mtwhf 12:00-14:00

informatica within almoco {

 

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 !spyware !tracker !webphone !webradio !webtv all redirect http://www.google.com

Faz-se essencial gerar os arquvos “.db” do SquidGuard antes de colocá-lo em funcionamento. Para isso, faça:

}

squidGuard -C all

}

acl {

intranet within almoco { pass !adv !dating !gamble !hobby_games-online !movies !music

Esse processo pode levar um tempo, dependendo da quantidade de domínios e URLs da blacklist. Deve-se ainda mudar o dono das blacklists para que o Squid funcione. Para tal:

!porn !redirector remotecontrol !ringtones !sex !spyware !tracker !warez !webphone !webradio !webtv all redirect http://www.google.com

 

cd /var/lib/squidguard/db chown proxy:proxy BL

}

}

Para reiniciar o Squid, basta executar o seguinte comando:

acl{

intranet within expediente { pass !adv !chat !dating !downloads !gamble !hacking !hobby_games-online !movies !music !porn !redirector !remotecontrol !ringtones !sex !socialnet !spyware !tracker !warez !webphone !webradio !webtv all redirect http://www.google.com

/etc/init.d/squid restart

Caso o servidor não possa ser reiniciado, tem-se a opção de carregar as configurações sem parar o serviço com o comando:

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”.