Você está na página 1de 41

Instalando um firewall mnimo em Debian

hugoalvarez 26/02/2007 Neste artigo preocupei-me em abordar um assunto que ainda gera muita discusso, um firewall. Descrevo como mnimo porque as tecnologias que exemplifico so as mnimas necessrias para uma rede de qualquer tamanho e que vejo muita gente tendo problemas para executar tarefas extremamente simples, como bloquear um messenger com eficincia. Por: Hugo Alvarez [ Hits: 142460 ] Conceito: 9.5 + quero dar nota ao artigo + Favoritos Verso para impressora Indicar para um amigo Enviar artigo

Introduo
Ol amigos, Neste artigo descrevo como implantar e configurar uma mquina com Debian Sarge como firewall, roteador internet ou o nome que quiserem dar. Preocupei-me em disponibilizar um artigo de como implantar as principais tecnologias que tenho visto em funcionamento em empresas de pequeno porte, que no podem gastar absurdos com a implantao de sistemas, mas que precisam ter um controle mnimo do que est ocorrendo em sua rede. Outra preocupao foi criar um artigo que no contivesse a seguinte expresso, BOM ENTO ISSO PESSOAL, AGORA O RESTO ASSUNTO PARA O PRXIMO ARTIGO, DEIXANDO A TODOS COM CARA DE BOBO POR UMA SEMANA. OU NO VOU ABORDAR A COMPILAO DO KERNEL PORQUE TEM MUITA DOCUMENTAO NA INTERNET E NEM MESMO EU SEI COMO COMPILAR UM, SE VIRA A. Nossa mquina ser instalada com base no CD 1 do Debian Sarge e sua instalao ser a mnima, no precisamos instalar milhares de pacotes inteis que sero baixados durante horas e dependendo da velocidade da internet demorar dias, no sou nenhum especialista em Debian, mas me disseram que so 14 CDs, eu baixei s o primeiro e pronto, minto, ganhei um CD de Debian e decidi aprender, nada melhor do que sofrer os problemas do dia-a-dia e ter que solucion-los sem conhecer completamente o sistema. :) Indo direto ao ponto, estaro disponveis os seguintes servios:

Monitoramento de banda com software MRTG; Proxy transparente com software SQUID; Monitoramento de sites acessados e criao de relatrios com software SARG; Controle de acesso com software iptables com suporte a layer 7;

Antes de comear, temos algumas preocupaes a serem verificadas: 1. A internet deve estar disponvel; 2. Voc deve saber seu endereo IP e Gateway; 3. Instalar na mquina duas placas de rede com suporte nativo pelo Debian Sarge ou providenciar os drivers para verso 2.6 do kernel; Estas so as consideraes iniciais.

Instalando um firewall mnimo em Debian

hugoalvarez 26/02/2007 Neste artigo preocupei-me em abordar um assunto que ainda gera muita discusso, um firewall. Descrevo como mnimo porque as tecnologias que exemplifico so as mnimas necessrias para uma rede de qualquer tamanho e que vejo muita gente tendo problemas para executar tarefas extremamente simples, como bloquear um messenger com eficincia. Por: Hugo Alvarez [ Hits: 142462 ] Conceito: 9.5 + quero dar nota ao artigo

+ Favoritos

Verso para impressora

Indicar para um amigo

Enviar artigo

Instalando o Debian Sarge


Para iniciar a instalao do Debian Sarge com suporte ao kernel 2.6, siga os procedimentos: 1. Certifique-se de que o BIOS da sua mquina est configurado para dar boot pelo CD; 2. Coloque o CD e reinicie a mquina, quando aparecer a tela a seguir digite linux26, isso iniciar a instalao do Debian Sarge com suporte ao kernel 2.6;

Aps carregar, a primeira tela que aparecer ser a de seleo de idioma, prefira a seleo em ingls, a traduo aplicada nas distribuies GNU/Linux horrvel, talvez voc se depare com alguma coisa do tipo "Propriedades do rato" quando quiser configurar seu mouse, em todo caso se quiser outro idioma fique a vontade. Segue a tela de seleo de idiomas:

Aps selecionar o idioma, o sistema presumir que voc est em uma das seguintes regies da imagem a seguir, corrija, pois, estamos no Brasil, ele presumiu errado porque escolhi idioma ingls, se tivesse escolhido portugus apareceria uma tela com Brasil logo de cara, muito inteligente esse sistema heim, vou me dar bem com ele.

Aps escolher onde estamos, o sistema pedir que voc defina o layout padro do teclado, o meu ABNT2, se tiver vrgula do lado do zero no teclado numrico o seu tambm ABNT2, caso contrario opte pelo Brazilian (EUA layout).

Aps selecionar o layout de teclado, ele vai detectar o hardware para localizar o CDROM com a fonte de dados, no nosso caso estamos instalando a partir do CDROM e ele vai detectar sem problemas.

Automaticamente ser iniciada a cpia bsica dos arquivos de sistema e quando acabar ele vai solicitar que voc configure a rede. Vai aparecer uma tela dizendo: "Your network is probaly not using DHCP protocol. Alternatively, the DHCP server may be slow or some the network hardware in not working properly." (No tenho fotos dessa parte da configurao porque at aqui a instalao estava sendo pelo VMWARE para poder tirar fotos da instalao, aps a parte da configurao da rede volto a ilustrar) Pressione <Continue> (Ser a nica opo, no tem erro). Se suas placas de rede forem suportadas pelo Debian Sarge, timo, vai aparecer a seguinte tela: "Configure the Network (no topo da janela)" Selecione a opo: "Configure network manually" <ENTER> Na tela seguinte com o campo IP ADDRESS: Digite o seu endereo IP que tem internet disponvel e pressione <ENTER> Na tela seguinte com o campo NETMASK:

Digite sua mscara de rede ou se no souber coloque 255.255.255.0 e pressione <ENTER> Na tela seguinte com o campo GATEWAY: Digite seu gateway de internet e pressione <ENTER> Voc deve saber qual seu gateway, caso no souber ligue para o provedor que eles informam. Na tela com o seguinte campo Name server addresses: Digite o seu endereo DNS primrio e pressione <ENTER> Aps configurar as placas de rede, no sei quantas voc tem na mquina, vai aparecer a seguinte tela:

Coloque um nome para sua mquina e pressione <ENTER> Vai aparecer a seguinte tela:

Digite o endereo do domnio da sua rede ou invente um se quiser e pressione <ENTER>. Ex: hugo.com. Vai aparecer a tela de particionamento de disco, siga as instrues.

Selecione "Manually edit partition table" e pressione <ENTER> ( possvel que aparea algo diferente no seu, pois, no meu caso peguei um HD que achei e espetei ele na mquina, nem sabia se tinha sistema ou no). Vai aparecer a tela a seguir:

Selecione seu HD e pressione <ENTER>.

Ele vai perguntar se voc deseja criar uma nova partio vazia, se voc tiver Windows outra qualquer outra coisa no HD no coloque YES, pois, voc vai perder todos os seus dados, nesse caso aconselho criar seu prprio mtodo de particionamento, esta etapa voc pode preencher como quiser, no obrigatrio seguir estas instrues, voc pode criar s uma partio / e pronto, lembre-se que voc que vai administrar. Caso esteja de acordo selecione YES e mande pau, pressione <ENTER>. Vai aparecer essa tela:

Selecione FREE SPACE e pressione <ENTER>. Vai aparecer essa tela:

Selecione Create a new partition e pressione <ENTER>. Aparecer esta tela:

Selecione o tamanho da partio e pressione <ENTER>. Meu HD tm 8 GB, selecione 1GB para a partio de root, pois, posso querer baixar alguns softwares, selecione um tamanho compatvel com seu HD, se tiver um HD de 40 ou 80 GB pode por 5 ou 10GB. Aparecer esta tela:

Selecione Primary e pressione <ENTER>. Aparecer esta tela:

Eu sempre comeo criando as parties pelo Beginning e coloco a partio de SWAP no meio do HD, fica a seu critrio, vou colocar uma breve explicao sobre o particionamento no GNU/LINUX.

Instalando um firewall mnimo em Debian

hugoalvarez 26/02/2007 Neste artigo preocupei-me em abordar um assunto que ainda gera muita discusso, um firewall. Descrevo como mnimo porque as tecnologias que exemplifico so as mnimas necessrias para uma rede de qualquer tamanho e que vejo muita gente tendo problemas para executar tarefas extremamente simples, como bloquear um messenger com eficincia. Por: Hugo Alvarez [ Hits: 142463 ] Conceito: 9.5 + quero dar nota ao artigo + Favoritos Verso para impressora Indicar para um amigo Enviar artigo

Sobre o particionamento
Quando voc vai particionar um HD no GNU/LINUX, voc deve entender o que est fazendo, sentar e colocar no papel quais sero as parties na sua mquina e o que elas vo fazer, existem mais de 20 bons motivos para particionar o HD. No sei todos mas que existem muitos isso certo. As quatro primeiras entradas, ex: hda1, hda2, hda3, hda4, so reservadas para parties fsicas no disco, portanto no meu caso o ideal que a partio hda3 seja a partio de SWAP. Porque? Supondo que eu crie uma partio hda1, uma hda2, uma hda3 e uma hda4, mesmo sobrando espao no disco vai ficar inutilizada, e mesmo com qualquer programa de particionamento que voc utilizar vai ficar como inutilizada. Acontece que, caso voc queira criar mais que 4 parties so necessrias criar parties lgicas. Exemplo: Supondo que eu criei uma hda1, hda2 e hda3, eu ainda quero criar mais 20 parties, existem relatos de que um maluco criou 255 parties, nunca testei, a hda4 ficar reservada, quando eu estiver criando a quarta partio, ao invs de escolher Primria vou ter que escolher Lgica, e quando o particionador marcar a partio como lgica, ele vai suprimir o hda4 e a primeira partio lgica ser a hda5, se houver espao, a prxima ser hda6, hda7 e assim por diante, teremos ento a seguinte tabela:

HDA1 HDA2 HDA3 HDA5 HDA6

Primria Primria Primria Lgica Lgica

conveniente fazer a partio mais prxima do meio do HD se tornar a partio de SWAP porque caso a SWAP seja utilizada, a agulha de leitura do HD vai precisar andar menos para acessar determinado dado solicitado, o que vai fazer voc ganhar alguns nanosegundos. Existem casos em que o SWAP nem precisa ser utilizado, como provavelmente ser o nosso, se voc estiver instalando em uma mquina com 256MB de RAM. Mais um detalhe que no comentei, utilizaremos o sistema de arquivos ext3, caso voc tenha um no-break que garante que sua mquina nunca vai ser desligada a fora ou no tenha nenhum filho, irmo, funcionrio ou faxineira que pode dar uma bicuda na mquina e fazela desligar use XFS, pois, um sistema de arquivos mais rpido que o ext3, porm mais sensvel a falhas. Voltando ao assunto, vamos para a prxima parte da instalao.

Instalando um firewall mnimo em Debian

hugoalvarez 26/02/2007 Neste artigo preocupei-me em abordar um assunto que ainda gera muita discusso, um firewall. Descrevo como mnimo porque as tecnologias que exemplifico so as mnimas necessrias para uma rede de qualquer tamanho e que vejo muita gente tendo problemas para executar tarefas extremamente simples, como bloquear um messenger com eficincia.

Por: Hugo Alvarez [ Hits: 142464 ] Conceito: 9.5 + quero dar nota ao artigo + Favoritos Verso para impressora Indicar para um amigo Enviar artigo

Instalando o Debian Sarge (parte 2)


Continuando, criei a partio como beginning, selecionei o ponto de montagem / e estamos prontos para a prxima partio. Veja a figura:

Selecione "Done setting up the partition" e pressione <ENTER>. Voltamos para a tela 12 mas, agora temos uma diferena, veja:

D prosseguimento no particionamento com o restante do espao seguindo a configurao das prximas telas: Sempre selecionado parties Primary e Beginning voc chegar nessa tela:

Altere o ponto de montagem para /usr ao invs de /home como mostra a figura e selecione "Done setting up the partition" novamente, no h diferena exceto o tamanho. Na prxima tela h uma diferena, hda3, como eu disse antes, vou definir a partio de SWAP, no muda muita coisa, veja as telas:

Selecione a opo "Use as" e pressione <ENTER>.

Selecione agora swap rea ou, rea de troca se voc escolheu a instalao em portugus, vai ficar assim:

Done! novamente e prossiga com a instalao. Com o espao restante voc vai por tudo em /var, voc deve estar se perguntando: Por que uma /var to grande? O dobro das outras parties? Tome como fato as seguintes observaes: 1. 2. 3. 4. 5. O cache do squid usa a /var; Os logs do MRTG tambm; O SARG vai gerar os relatrios de sites acessados que atravessaram o squid na pasta htdocs do Apache que tambm fica na /var O syslog o arquivo onde o iptables vai jogar os logs se voc utilizar a opo j LOG, e onde o syslog fica? na /var; Voc pretende nunca mais precisar mexer nessa mquina ou s quando der algum problema de hardware.

Baseado nestes princpios coloquei uma /var enorme, quanto mais espao voc tiver para ela deixe, pois, voc vai ver um monte de gente nos seus logs tentando acessar seu sistema, principalmente chineses, enquanto voc ri da cara deles. Ao final do particionamento, vai estar assim:

No pensem que esqueci de colocar uma partio para /boot, simplesmente no coloquei porque no sabia qual seria o tamanho que ficaria a imagem com a atualizao do kernel-2.19 que iremos instalar adiante. Selecione "Finish partitioning and write changes to disk" e pressione <ENTER> Vai aparecer uma tela pedindo a confirmao do que voc est fazendo, se voc traduzir esta tela ela vai dizer que voc est maluco, apagando tudo que voc tem, enfim, vai tentar persuadi-lo de no fazer, mas como temos certeza, vamos l, selecione YES e pressione <ENTER:

Pressionado YES a instalao do sistema comeou, aguarde, vai ser bem rpido, nem d tempo de ir buscar o caf. Finalizada a instalao dos arquivos ele vai pedir para instalar o GRUB na MBR, selecione YES e pressione <ENTER>.

Vai passar umas telinhas e vai aparecer essa tela pedindo para retirar o CD e rebootar a mquina. OBEDEA!!!

Terminamos esta primeira etapa de instalao do Debian Sarge.

Instalando um firewall mnimo em Debian

hugoalvarez 26/02/2007 Neste artigo preocupei-me em abordar um assunto que ainda gera muita discusso, um firewall. Descrevo como mnimo porque as tecnologias que exemplifico so as mnimas necessrias para uma rede de qualquer tamanho e que vejo muita gente tendo problemas para executar tarefas extremamente simples, como bloquear um messenger com eficincia. Por: Hugo Alvarez [ Hits: 142465 ] Conceito: 9.5 + quero dar nota ao artigo + Favoritos Verso para impressora Indicar para um amigo Enviar artigo

Configurando o sistema
Aps reiniciar a mquina vai aparecer a tela de boas vindas do sistema sua nica opo pressionar <ENTER> para OK.

Na tela seguinte voc dever configurar a fonte de horrio no selecione GMT, deixe na opo padro (que NO) e pressione <ENTER>.

Selecione other e pressione <ENTER> novamente.

Selecione Amrica e pressione <ENTER> novamente:

Selecione sua cidade, a minha So Paulo e pressione <ENTER> mais uma vez:

A prxima tela a de definio para a senha de root, digite uma boa senha de pressione <ENTER>, confirme a senha e pressione <ENTER> novamente.

Agora defina a criao de um usurio para utilizar o sistema, coloque o nome completo com letras maisculas e sobrenome separado que no tem problema. Aps colocar o nome pressione <ENTER>.

Agora digite o nome de usurio, com letras minsculas e sem espao, aps digitar pressione <ENTER>.

Defina uma senha, pressione <ENTER>, confirme a senha na prxima tela e pressione <ENTER> novamente.

Na tela a seguir configure a fonte do APT, deixe como CDROM quando precisarmos faremos a alterao. Pressione <ENTER>.

Vai aparecer essa tela coloque o CDROM do Debian Sarge e pressione <ENTER>.

O sistema vai verificar o CD e perguntar se voc deseja verificar outro CD, se voc tiver todos os CDs da Debian Sarge (me falaram que so 14) pode verificar todos, caso contrrio, responda No pressionando <ENTER>.

Aps testar os fontes para o APT se o sistema detectar a internet ele vai baixar as atualizaes do site security.debian, caso contrrio no. Pelo que sei at aqui voc j deve ter a internet funcionando porque j configuramos tudo. Vai aparecer a seguinte tela pedindo que voc escolha quais softwares deseja instalar, mas voc no deseja instalar nada mais ento no selecione nada, selecione OK e pressione <ENTER>.

Agora d tempo de ir buscar o caf, no meu caso estou indo almoar, aguarde enquanto o sistema faz download e instala as atualizaes. Finalizadas as atualizaes, vai aparecer a tela de configurao do exim4 (e-mails).

Deixe como est, local delivery only; noto n a network, ou configure como preferir. Pressione <ENTER>. Selecione um usurio para receber os e-mails do sistema, eu deixei hugo, deixe o que quiser.

Agradecimentos e est pronta a configurao do seu novo Debian Sarge.

Instalando um firewall mnimo em Debian

hugoalvarez 26/02/2007 Neste artigo preocupei-me em abordar um assunto que ainda gera muita discusso, um firewall. Descrevo como mnimo porque as tecnologias que exemplifico so as mnimas necessrias para uma rede de qualquer tamanho e que vejo muita gente tendo problemas para executar tarefas extremamente simples, como bloquear um messenger com eficincia. Por: Hugo Alvarez [ Hits: 142466 ] Conceito: 9.5 + quero dar nota ao artigo

+ Favoritos

Verso para impressora

Indicar para um amigo

Enviar artigo

Mais algumas configuraes teis


Agora vamos baixar todos os softwares necessrios para instalao dos servios comentados no inicio do artigo e algumas facilidades do dia-a-dia. Para comear logue-se como root e execute o comando: # aptitude update Lembre-se de sempre usar o aptitude porque o apt-get no resolve dependncias, apesar de muitos dizerem por a o contrrio, existem at comunidades que debatem o assunto, traduzindo, igual a time de futebol, no adianta debater, eu toro pro aptitude. Execute agora: # aptitude install vim Edite o seguinte arquivo com o vi: # vi /etc/vim/vimrc Com o arquivo aberto, digite: :syntax on Hmmm, ficou colorido, hehehe, corra com o cursor at abaixo da linha set ruler, pressione "i" sem as aspas e digite as linhas: set nu syntax on Pressione ESC, :wq Pronto, voc editou o arquivo com vi, personalizou, salvou e saiu. Digite: source /etc/vim/vimrc No ligue para o que aparecer na tela, este comando serve para ler e carregar as informaes que voc acabou de adicionar ao vimrc, que o arquivo que guarda as configuraes do VIM. Agora instale o mouse, ser til para recortar e colar, # aptitude install gpm Pressione Y para instalar, na primeira tela que aparecer perguntando se voc deseja iniciar ou reiniciar o gpm ao iniciar o X selecione NO e pressione <ENTER>. Na segunda pergunta, "Remember the restart setting" selecione YES e pressione <ENTER> Pressione <ENTER> em OK quando o sistema identificar o dispositivo, deixe como est. Se voc executar um netstat -na vai ver que existem vrios servios rodando e, tratando-se de um firewall, voc no vai querer neguinho com servios disponveis tentando acessar sua mquina. Vamos remover tudo da inicializao e deixar somente o ssh. Entre no diretrio /etc/rc2.d e renomeie os scripts de inicializao: # cd /etc/rc2.d # mv S20exim4 K20exim4 # mv S18portmap K18portmap # mv S20inetd K20inetd # mv S21nfs-common K21nfs-common # mv S20lpd K20lpd # mv S14ppp K14ppp Agora entre em /etc/rcS.d e renomeie o portmap: # cd /etc/rcS.d # mv S43portmap K43portmap Ao renomear os links para os scripts de inicializao de S para K voc est dizendo ao sistema que no quer que esses scripts rodem durante a inicializao da mquina. Tudo OK, quando voc reiniciar a mquina nenhum dos servios estaro mais disponveis, possvel par-los sem reiniciar, mas nesse caso estou poupando trabalho. Mais uma facilidade, edite o arquivo /root/.bashrc: # vi /root/.bashrc

Posicione o cursor ao final do arquivo, pressione i, e adicione a seguinte linha: alias ls='ls --color' Aspas simples OK? Execute novamente o comando source: source /root/.bashrc ou deslogue e logue novamente para carregar as configuraes. Agora edite o arquivo /etc/ssh/sshd_config: # vi /etc/ssh/sshd_config Localize e altere a linha: PermitRootLogin yes Coloque: PermitRootLogin no Salve e saia do arquivo, reinicie o servio ou aguarde quando for reinicializar a mquina para as configuraes serem carregadas. Para reiniciar: # killall -HUP sshd Esta opo define que o SSHD no vai aceitar conexo remota do usurio root.

Instalando um firewall mnimo em Debian

hugoalvarez 26/02/2007 Neste artigo preocupei-me em abordar um assunto que ainda gera muita discusso, um firewall. Descrevo como mnimo porque as tecnologias que exemplifico so as mnimas necessrias para uma rede de qualquer tamanho e que vejo muita gente tendo problemas para executar tarefas extremamente simples, como bloquear um messenger com eficincia. Por: Hugo Alvarez [ Hits: 142467 ] Conceito: 9.5 + quero dar nota ao artigo + Favoritos Verso para impressora Indicar para um amigo Enviar artigo

Instalando o SQUID 2.6


Comecei a instalao dos softwares pelo squid, no existe nenhuma verso atualizada de SQUID 2.6 no apt, pelo menos no encontrei, ento baixei o fonte e instalei na mo.

Baixando o fonte
Baixe o fonte e descompacte na pasta /usr/src, no obrigatrio escolher esta pasta, deixo todos os fontes aqui por costume. # wget http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE7.tar.gz Aps baixar o arquivo descompacte: # tar xvzf squid-2.6.STABLE7.tar.gz E entre no seu diretrio: # cd squid-2.6.STABLE7

Execute: # ./configure --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc/squid --enable-linux-netfilter --enable-delaypools Os parmetros definem:

--bindir=/usr/bin - Diretrio de instalao onde ficaro os arquivos binrios; --sbindir=/usr/sbin - Diretrio de instalao onde ficaro os arquivos binrios usurio do root; --sysconfdir=/etc/squid - Diretrio onde ficaro os arquivos de configurao; --enable-linux-netfilter - SQUID otimizado para proxy transparente, no obrigatrio; --enable-delay-pools - Para configurar a limitao de banda, caso voc queira futuramente limitar a banda.

Agora execute: # make all # make install Vamos agora configurar o squid, extremamente simples, no requer prtica nem habilidade. :) Fiz uma configurao bem bsica para esse squid, todas as mquinas ficaro com acesso http liberado, exceto os sites que so bloqueados por palavra-chave, temos as opes de liberar completamente algumas mquinas, nada mais. Segue o arquivo de configurao: # vim /etc/squid/squid.conf

################################################### # SCRIPT DE CONFIGURACAO DO SQUID # # # Porta utilizada pelo squid # http_port 3128 transparent # # Nome do servidor (sem espacos) # visible_hostname firewall02.fleetone.com # # Servidores DNS a serem consultados # dns_nameservers 192.168.100.2 # # Local onde sera armazenado os logs do squid # cache_access_log /usr/local/squid/var/logs/access.log # # Converte as mensagens geradas pelo squid para o Portugues # error_directory /usr/local/squid/share/errors/Portuguese # # refresh_pattern ^ftp: 1 20% 2280 refresh_pattern ^gopher: 1 0% 2280 refresh_pattern . 1 20% 2280 acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object

acl localhost src 127.0.0.1/255.255.255.255 acl SSL_ports port 443 563 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 563 # https, snews acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl Safe_ports port 901 # SWAT acl purge method PURGE acl post method POST acl CONNECT method CONNECT http_access allow post http_access allow manager localhost http_access deny manager http_access allow purge localhost http_access deny purge http_access deny !Safe_ports http_access deny CONNECT !SSL_ports # # Definiremos a seguir as regras para bloqueio dos sites pelas # palavras adicionadas no arquivo bloqueados.txt # As regras sero estabelecidas por grupos de acessos conforme # as ACLs criadas abaixo. # acl redelocal src 192.168.100.0/24 acl diretoria src "/etc/squid/acls/diretoria" acl bloqueados url_regex -i "/etc/squid/acls/bloqueados" acl permitidos url_regex -i "/etc/squid/acls/permitidos" http_access allow localhost http_access allow diretoria http_access allow redelocal !bloqueados # # Abaixo bloqueamos a navegacao. # Liberado apenas pra faixa definida na "acl redelocal". # http_access deny all
Altere as seguintes linhas: Coloque o hostname da sua mquina, o mesmo nome que voc definiu durante a instalao: visible_hostname hostname.dominio Coloque o ip do seu servidor DNS: dns_nameservers 192.168.100.2 Nestas linhas voc define de quanto em quanto tempo o squid vai ir na internet verificar se houveram alteraes, normalmente ele vai utilizar a opo que est no cache quando voc acessar um site, para alterar o tempo de refresh abaixe o valor, o primeiro 1 significa o tempo mnimo em minutos para refresh, aps o percentual o 2280 o tempo mximo em minutos: refresh_pattern ^ftp: 1 20% 2280 refresh_pattern ^gopher: 1 0% 2280 refresh_pattern . 1 20% 2280 Aqui voc define a faixa de sua rede: acl redelocal src 192.168.100.0/24 No squid.conf so s essas alteraes a serem realizadas e est pronto..

Crie os diretrios onde vo ficar as acls: # mkdir /etc/squid/acls Agora crie os arquivos que vo conter as acls: # touch /etc/squid/acls/diretoria # touch /etc/squid/acls/permitidos # touch /etc/squid/acls/bloqueados Descrio dos arquivos:

diretoria -> deve conter as mquinas que tem acesso total a qualquer site. Coloque o endereo IP das estaes. permitidos -> so sites que contem palavras chave bloqueadas, mas que podem ser acessados. bloqueados -> so os sites que contem palavras-chave que devem ser bloqueadas.

Aps colocar o squid.conf dentro de /etc/squid, d permisso para o squid escrever na pasta var: # chmod -R 777 /usr/local/squid/var Agora criaremos os arquivos de swap do squid: # squid -z Tudo pronto, execute o squid com o comando: # squid Caso os arquivos diretoria, permitidos ou bloqueados estejam vazios normal aparecer a seguinte mensagem: 2007/01/18 14:46:43| strtokFile: /etc/squid/acls/diretoria not found 2007/01/18 14:46:43| aclParseAclLine: WARNING: empty ACL: acl diretoria src "/etc/squid/acls/diretoria" Esta mensagem somente um alerta dizendo que no existem valores definidos dentro dos arquivos que contem as acls, assim que voc preencher esses arquivos esta mensagem desaparecer. Feito isso, adicione o squid na inicializao da seguinte maneira, edite o arquivo /etc/init.d/bootmisc.sh e ao final do arquivo adicione as seguintes linhas. # Inicializando o squid if [ -x /etc/init.d/squid ]; then . /etc/init.d/squid fi Agora crie um arquivo com nome squid dentro de /etc/init.d: # vi /etc/init.d/squid E adicione o seguinte contedo dentro do arquivo: /usr/sbin/squid Salve e saia. D permisso de execuo ao arquivo: # chmod +x /etc/init.d/squid Finalizamos a configurao do SQUID.

Instalando um firewall mnimo em Debian

hugoalvarez 26/02/2007 Neste artigo preocupei-me em abordar um assunto que ainda gera muita discusso, um firewall. Descrevo como mnimo porque as tecnologias que exemplifico so as mnimas necessrias para uma rede de qualquer tamanho e que vejo muita gente tendo problemas para executar tarefas extremamente simples, como bloquear um messenger com eficincia. Por: Hugo Alvarez [ Hits: 142469 ] Conceito: 9.5 + quero dar nota ao artigo + Favoritos Verso para impressora Indicar para um amigo Enviar artigo

Instalando o Apache
No pense que eu estou maluco instalando um servidor web em um firewall, ele ser essencial para a criao dos logs do SARG e do MRTG, sem contar que fecharemos esse servio para o mundo. Para instalar o Apache digite: # apt-setup Na tela que vai abrir selecione http e pressione <ENTER>, selecione Brasil e pressione <ENTER> novamente, selecione um mirror de apt e pressione <ENTER> novamente, eu escolhi o ftp.br.debian, mas qualquer um disponvel vai servir, deixe em branco HTTP proxy information e pressione <ENTER>. Quando ele acabar de baixar as informaes vai abrir uma janela perguntando se voc deseja adicionar outro mirror, selecione NO e pressione <ENTER>. Agora execute a cadeia de comandos: # vi /etc/apt/sources.list Comente a linha: deb cdrom:[Debian GNU/Linux 3.1 r0a _Sarge_ - Official i386 Binary-1 (20050607)]/ unstable contrib main Adicione um # no incio da linha, vai ficar assim: # deb cdrom:[Debian GNU/Linux 3.1 r0a _Sarge_ - Official i386 Binary-1 (20050607)]/ unstable contrib main Salve e saia. :wq Execute o source novamente para ele carregar as novas informaes: # source /etc/apt/sources.list # aptitude update # aptitude install apache confirme com <ENTER> ele instalar as dependncias automaticamente. Quando for perguntado deseja habilitar o suExec, selecione NO e pressione <ENTER> Finalizamos a instalao do Apache. Digite http://ip_da_maquina e veja se abriu a pgina de teste do apache, caso positivo est tudo ok, pode ir em /var/www e remover o index.html.

Instalando um firewall mnimo em Debian

hugoalvarez 26/02/2007 Neste artigo preocupei-me em abordar um assunto que ainda gera muita discusso, um firewall. Descrevo como mnimo porque as tecnologias que exemplifico so as mnimas necessrias para uma rede de qualquer tamanho e que

vejo muita gente tendo problemas para executar tarefas extremamente simples, como bloquear um messenger com eficincia. Por: Hugo Alvarez [ Hits: 142471 ] Conceito: 9.5 + quero dar nota ao artigo + Favoritos Verso para impressora Indicar para um amigo Enviar artigo

Instalando o MRTG
Execute o comando: # aptitude install mrtg Quando perguntar se voc deseja que o mrtg.conf s tenha permisso de leitura para o usurio mrtg responda NO e pressione <ENTER>. Configurando o MRTG: Entre no diretrio /etc e crie o seguinte arquivo: # cd /etc # vi mrtgstats-net.sh Adicione o seguinte contedo ao arquivo: #!/bin/sh # mrtgstats-net.sh - Augusto Campos 2004 awk ' /'$1':/ { $0=substr($0,index($0,":")+1); print $1;print $9 } ' /proc/net/dev Mantenha os direitos autorais do cidado que desenvolveu o script. Feito, d permisso de execuo ao arquivo: chmod +x mrtgstats-net.sh Verifique a configurao do seu mrtg.cfg, deve estar assim: #################################################### # Global configuration WorkDir: /var/www/mrtg WriteExpires: Yes RunAsDaemon: yes Interval: 5 Target[eth0]: `/etc/mrtgstats-net.sh eth0` Title[eth0]:"Trfego da rede internet" MaxBytes[eth0]:750000 PageTop[eth0]: <h1>Trfego da rede internet</h1> Options[eth0]: growright,bits,noinfo #################################################### E rode o mrtg com o comando: # mrtg Nas primeiras vezes que ele rodar, de 5 em 5 minutos vo aparecer algumas mensagens de warning, estas mensagens so normais, aps a terceira ou quarta vez que ele gerar os logs elas param de aparecer, os logs estaro vazios logo aps a instalao, com o tempo eles iro aparecendo, para acess-los basta digitar no browser: http://ip_da_maquina_debian_sarge/mrtg na lista que abrir o arquivo eth0.html contm seu log da eth0 para visualizao, caso queira, pode adicionar a eth1. Para colocar o MRTG na inicializao siga o mesmo procedimento do SQUID, edite o arquivo /etc/init.d/bootmisc.sh e adicione ao final do arquivo as seguinte linhas: # Inicializando o MRTG if [ -x /etc/init.d/mrtg ]; then . /etc/init.d/mrtg fi Agora crie um arquivo com nome mrtg dentro de /etc/init.d: # vi /etc/init.d/mrtg

com o seguinte contedo: /usr/bin/mrtg Salve e saia do arquivo. D permisso de execuo ao arquivo: # chmod +x /etc/init.d/mrtg Finalizamos a instalao do MRTG

Instalando um firewall mnimo em Debian

hugoalvarez 26/02/2007 Neste artigo preocupei-me em abordar um assunto que ainda gera muita discusso, um firewall. Descrevo como mnimo porque as tecnologias que exemplifico so as mnimas necessrias para uma rede de qualquer tamanho e que vejo muita gente tendo problemas para executar tarefas extremamente simples, como bloquear um messenger com eficincia. Por: Hugo Alvarez [ Hits: 142472 ] Conceito: 9.5 + quero dar nota ao artigo + Favoritos Verso para impressora Indicar para um amigo Enviar artigo

Instalando o SARG
Para instalar o sarg digite: # aptitude install sarg Quando abrir uma tela pedindo que voc escolha um tipo de fonte, selecione a que quiser, eu escolhi xtt porque existem mais opes de personalizao para as fontes, como isso vai do gosto de cada um fique a vontade. Configurando o SARG: Edite o arquivo /etc/squid/sarg.conf com o vi. Localize a linha access_log, vai estar assim: access_log /var/logs/squid/access.log, altere para: access_log /usr/local/squid/var/logs/access.log Est pronto, caso queira excluir alguma mquina dos relatrios basta colocar o ip da mquina no arquivos /etc/squid/sarg.hosts. Caso queira gerar relatrios com o nome dos usurios ao invs do endereo ip (Ser mostrado o endereo ip nos relatrios caso voc no configure esta opo), coloque os nomes dos usurios e seus respectivos IPs neste padro. Edite o arquivo /etc/squid/sarg.usertab com o vi. 192.168.100.30 Hugo Alvarez 192.168.100.20 Z da Silva E assim por diante. Com o SARG instalado, finalizamos mais uma etapa do processo de configurao do nosso firewall. Aps finalizar a instalao do sistema quando voc j estiver utilizando a internet, para gerar relatrios com o SARG basta digitar sarg no prompt e consultar os logs que estaro dentro da pasta squid-reports na raiz do seu apache.

Instalando um firewall mnimo em Debian

hugoalvarez 26/02/2007 Neste artigo preocupei-me em abordar um assunto que ainda gera muita discusso, um firewall. Descrevo como mnimo porque as tecnologias que exemplifico so as mnimas necessrias para uma rede de qualquer tamanho e que vejo muita gente tendo problemas para executar tarefas extremamente simples, como bloquear um messenger com eficincia. Por: Hugo Alvarez [ Hits: 142474 ] Conceito: 9.5 + quero dar nota ao artigo + Favoritos Verso para impressora Indicar para um amigo Enviar artigo

Atualizando o kernel
Essa a parte bizarra e que pode fazer todo servio at aqui ir por gua abaixo, to brincando hehehe, vamos agora baixar: 1. 2. 3. 4. o o o o fonte do kernel atualizado patch atualizado do kernel fonte do iptables atualizado patch layer 7 e as definies de protocolos atualizadas para iptables.

Sabemos que as distribuies aplicam seus prprios patches no kernel quando vo empacotar uma distribuio, mas no encontrei nenhum mirror para apt que tivesse a ltima verso do kernel e o ltimo patch atualizado, portanto, o jeito confiar no servio do Linus Torvalds e baixar o kernel na raa, vamos para o kernel.org. Entre em /usr/src e faa download do kernel 2.6.19 e os patches: # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.19.2.tar.gz # wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.19.2.gz

Agora faa download do fonte do iptables 1.3.7, patch layer7 e definies:

# wget http://www.netfilter.org/projects/iptables/files/iptables-1.3.7.tar.bz2 # wget http://ufpr.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.9.tar.gz # wget http://ufpr.dl.sourceforge.net/sourceforge/l7-filter/l7-protocols-2007-01-14.tar.gz Caso estes endereos venham a mudar procure no sourceforge.net que l esto todos os pacotes disponveis para busca. Com todos os pacotes em mos, vamos comear as compilaes. Copie seu arquivo de configuraes de kernel atual utilizando o comando: # cp /boot/config-2.6.8-2-386 /boot/.config Instale os descompactadores padro: # aptitude install bzip2 gzip unzip Descompacte todos os pacotes fontes do kernel, patches, iptables e layer7 na pasta /usr/src # gunzip patch-2.6.19.2.gz # tar xvzf linux-2.6.19.tar.gz # tar xvjf iptables-1.3.7.tar.bz2 # tar xvzf netfilter-layer7-v2.9.tar.gz # tar xvzf l7-protocols-2007-01-14.tar.gz Crie um link apontando para o diretrio do kernel: # ln -s /usr/src/linux-2.6.19 /usr/src/linux E entre no diretrio /usr/src/linux # cd /usr/src/linux Agora aplique o patch no kernel: # patch -p1 < ../patch-2.6.19.2 Agora aplique o patch do layer 7 ao kernel: # patch -p1 < ../netfilter-layer7-v2.9/kernel-2.6.18-2.6.19-layer7-2.9.patch

Aplicados os patches, instale a libncurses5-dev para utilizar o make menuconfig # aptitude install libncurses5-dev Instalada a libncurses5-dev, pode finalmente digitar o comando mgico: # make menuconfig Configurar o kernel muito fcil, siga as telas a seguir e veja onde esto escondidos os mdulos do layer 7. Networking ---> Networking options ---> [*] Network packet filtering (replaces ipchains) ---> IP: Netfilter Configuration ---> Ativar o layer 7 aqui que os outros artigos que j li erram, se voc vier direto aqui no vai achar layer7 nenhum, mesmo ativando connection tracking, veja a foto:

Agora siga este caminho: Networking ---> Networking options ---> [*] Network packet filtering (replaces ipchains) ---> Core Netfilter Configuration ---> Netfilter Xtables support (required for ip_tables) Ative com M a opo Netfilter Xtables support, ative a primeira opo tambm.

Ativados os mdulos, selecione exit e pressione <ENTER>, agora sim, v at Netfilter Configuration. Networking ---> Networking options ---> [*] Network packet filtering (replaces ipchains) ---> IP: Netfilter Configuration ---> IP tables support (required for filtering/masq/NAT) ---> <M> Layer 7 match support (EXPERIMENTAL)

[*] Layer 7 debugging output E mgica de novo, l est o layer 7 esperando ser ativado.

Ativa toda a galera a com M, um dia voc pode querer estudar para que servem ou precisar deles,ah mas meu kernel vai ficar lento, papo furado de quem tem medo de compilar o kernel, estamos apenas implementando umas opes legais ;) Aproveite que est a editando o kernel para selecionar o seu processador corretamente porque kernel com processador padro fala sriuuu, e voc tem um P4 pra trabalhar como um 386? Entre em Processor type and features ---> Processor family (386) ---> escolha a configurao correta para seu processador, aps selecionar v selecionando exit at aparecer a janela pedindo para salvar a configurao do kernel, selecione YES e pressione <ENTER>. Segue uma tela da seleo de processadores:

Pronto para compilar o kernel? Sim? nada, ainda falta instalar o kernel-package, com softwares que vo ser usados para compilar o kernel. Ento faa: # aptitude install kernel-package Aps instalar o kernel-package, inicie a compilao do novo kernel: # make-kpkg -initrd kernel_image Vai aparecer uma mensagem dizendo para voc desistir da compilao e coisa e tal, coloque N e prossiga.

Agora volte um diretrio: # cd .. Voc deve estar em /usr/src, execute: # dpkg -i kernel-image-2.6.19.2_10.00.Custom_i386.deb Aps instalar a nova imagem do kernel aplicaremos o patch no iptables, ento vamos para a prxima etapa.

Instalando um firewall mnimo em Debian

hugoalvarez 26/02/2007 Neste artigo preocupei-me em abordar um assunto que ainda gera muita discusso, um firewall. Descrevo como mnimo porque as tecnologias que exemplifico so as mnimas necessrias para uma rede de qualquer tamanho e que vejo muita gente tendo problemas para executar tarefas extremamente simples, como bloquear um messenger com eficincia. Por: Hugo Alvarez [ Hits: 142476 ] Conceito: 9.5 + quero dar nota ao artigo + Favoritos Verso para impressora Indicar para um amigo Enviar artigo

Instalando o iptables
Aplique o patch do iptables, digite: # cd /usr/src/iptables-1.3.7 # patch -p1 < ../netfilter-layer7-v2.9/iptables-layer7-2.9.patch # chmod +x extensions/.layer7-test # make KERNEL_DIR=/usr/src/linux # make install KERNEL_DIR=/usr/src/linux Acabamos a configurao do iptables, agora temos que descompactar as definies de protocolos do layer 7, v at a pasta onde voc salvou as definies e execute: # tar xvzf l7-protocols-2007-01-14.tar.gz Entre na pasta que voc descompactou, # cd l7-protocols-2007-01-14 e execute: # make install Est pronta a instalao do iptables e dos protocolos para layer 7.

Instalando um firewall mnimo em Debian

hugoalvarez 26/02/2007 Neste artigo preocupei-me em abordar um assunto que ainda gera muita discusso, um firewall. Descrevo como mnimo porque as tecnologias que exemplifico so as mnimas necessrias para uma rede de qualquer tamanho e que vejo muita gente tendo problemas para executar tarefas extremamente simples, como bloquear um messenger com eficincia. Por: Hugo Alvarez [ Hits: 142478 ]

Conceito: 9.5

+ quero dar nota ao artigo + Favoritos Verso para impressora Indicar para um amigo Enviar artigo

O script de iptables e algumas regras


Quando o sistema voltar, hora de verificar se est tudo ok, digite: # modprobe ipt_layer7 Nenhum erro ok? Se sim, vamos criar um script de iptables que permita conexo remota pela eth0 (placa internet) ou no, redirecionamentos teis para alguns servios que voc pode querer rodar na rede interna para o mundo como liberar um webserver ou um terminal com VNC ou RDP da rede interna, bloqueio de Messenger e outros do tipo, temos que redirecionar as solicitaes http para o squid, enfim, o bsico para sobrevivncia. Crie um arquivo com nome firewall dentro de /etc/init.d # vi /etc/init.d/firewall Adicione o seguinte contedo dentro do script, vou comentar todas as linhas para entendimento, no necessrio deix-las comentadas. #################################################### # Aqui eu zero regras carregadas anteriormente (caso queira consulte os parmetros com o comando "iptables --help | more" sem as aspas) iptables -F iptables -t nat -F iptables -t mangle -F iptables -X iptables -Z #################################################### # Aqui eu defino as polticas de segurana das CHAINS INPUT, OUTPUT e FORWARD, sempre deixo o FORWARD liberado porque ningum de fora vai conseguir graa mesmo, existem pessoas que optam pelo bloqueio total e liberao do que usa iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT # Carregar os mdulos, temos muitas opes j que compilamos todos os mdulos do iptables modprobe modprobe modprobe modprobe modprobe modprobe modprobe modprobe modprobe iptable_nat iptable_filter ip_tables ip_conntrack ip_conntrack_ftp ip_nat_ftp ipt_MASQUERADE ipt_LOG ipt_layer7

## Chains -j LOG do iptables ## # # Aqui eu jogo no /var/log/syslog todas as conexes que entrarem pela eth0(mundo) realizadas na porta 80 da minha mquina, meu ip quente fictcio 200.00.200.200 iptables -t nat -A PREROUTING -i eth0 -d 200.200.200.200 -p tcp -m tcp --dport 80 -j LOG --log-prefix="ACESSO WEB " # Aqui eu jogo no /var/log/syslog todas as conexes que entrarem pela eth0 (mundo) realizadas na porta 80 da minha mquina, meu ip quente fictcio 200.200.200.201, til caso voc tenha dois webservers rodando na rede interna, caso a sua conexo com o segundo ip esteja em outra placa de rede coloque a interface da placa respectiva, ex: eth1. No meu caso como tenho um load-balance de links minha mquina a eth0 responde pelos dois links iptables -t nat -A PREROUTING -i eth0 -d 200.200.200.201 -p tcp -m tcp --dport 80 -j LOG --log-prefix="ACESSO WEB " # Aqui eu jogo no /var/log/syslog todas as conexes que entrarem pela eth0 (mundo) realizadas na minha porta 21, no caso de voc ter um servidor FTP na rede interna, caso voc queira utilizar esta opo extremamente interessante bloquear esse acesso por ip, pois, sabemos que o servio FTP envia as senhas no modo cleartype, e se algum estiver sniffando a rede pode capturar a senha e nesse caso, se o ip do indivduo no estiver na lista de acesso voc pode enviar o usurio e senha do seu servidor por e-mail para o mundo que ningum vai conseguir conectar mesmo, recomendao, no faa isso porque vai ter muito nego tentado a conexo. Alm disso, no caso de um portscan ningum vai saber que existe um servidor FTP disponvel. iptables -t nat -A PREROUTING -i eth0 -d 201.63.116.155 -p tcp -m tcp --dport 21 -j LOG --log-prefix="ACESSO FTP " # Com esta regra eu jogo no log /var/log/syslog todas as conexes que sarem do host 192.168.100.32 com a string MASCARAMENTO, til para descobrir quando algo no est funcionando, suponha o site da caixa, se ele sair pelo squid sabemos que as ferramentas no funcionam, ento voc pode liberar a mquina com um POSTROUTING e ver aonde ela est conectando-se para posteriormente liberar com POSTROUTING somente os endereos necessrios para que sua estao consiga sucesso na conexo

iptables -t nat -A POSTROUTING -s 192.168.100.32 -d 0/0 -j LOG --log-prefix=" MASCARAMENTO " ## CHAIN INPUT, define as conexes que sero aceitas, como ela est setada para DROP (-P INPUT DROP) o padro bloquear tudo, ou seja, nada vai funcionar direito se no for dito o contrrio # Estabelece relao de confiana entre estaes da rede local, esta regra diz que todas as conexes que entrarem pela eth1(rede local) de uma mquina da classe .100.0 devem ser aceitas sem restries iptables -A INPUT -i eth1 -s 192.168.100.0/24 -j ACCEPT iptables -A INPUT -i eth1 -m state --state NEW -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Aqui eu libero o INPUT na porta 80 do meu firewall, obrigatria caso voc tenha um webserver na rede interna que precisa ser acessado pela mundo, considerando um webserver sempre atualizado, as chances de invaso nesta configurao so quase zero, estou considerando quase zero porque sempre vai existir algum para quebrar o paradigma iptables -A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT # Libera acesso ao servio FTP, com a regra crua assim voc est liberando o acesso do mundo porta 21 do firewall, no aconselho usar FTP, se for possvel sempre use SFTP, ou libere somente para ips confiveis, que voc sabe de quem pode ir at o cara e encher ele de porrada se fizer alguma merda no server ;) iptables -A INPUT -i eth0 -p tcp -m tcp --dport 21 -j ACCEPT # Se voc suprimir a regra acima e colocar essa em seu lugar, voc define que somente o host 100.100.100.100 quando sua conexo entrar pela eth0 poder acessar o servidor FTP iptables -A INPUT -i eth0 -s 100.100.100.100 -p tcp -m tcp --dport 21 -j ACCEPT # Libera acesso na porta 3389 MS-RDP, esta a regra caso voc queira liberar o acesso de algum na internet sua rede interna atravs do MS-RDP (vulgo Terminal Services do Windows) iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3389 -j ACCEPT # Essa de lei, libera o acesso ao SSH, crua assim voc vai conseguir visualizar milhares tentativas fracassadas ao seu SSH, como j vimos no incio do artigo, fechar o acesso do root via SSH tarefa obrigatria j que voc vai querer enviar a senha de root da sua mquina por e-mail spam para o mundo que mesmo assim ningum vai conseguir acesso, mas NO FAA ISSO hehehe. iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT # Mais segurana ainda para SSH, libere somente o IP remoto da sua casa para acesso ao SSH, existe um problema com essa regra, se voc estiver de frias e precisar conectar ao firewall nem voc vai conseguir iptables -A INPUT -i eth0 -s 100.100.100.100 -p tcp -m tcp --dport 22 -j ACCEPT # Esta para fechar nossa configurao de INPUT, aps liberar o que quiser feche tudo que tentar acessar sua rede atravs da internet, esta linha nega tudo que no se classificar nas regras acima iptables -A INPUT -i eth0 -j REJECT ## CHAIN FORWARD, mesmo com a police de FORWARD liberada (-P FORWARD ACCEPT) necessrio indicar para onde o FORWARD ser feito ou os pacotes vo se perder pois, no sabem o caminho :) # Libera o FORWARD na eth0 para todas as tentativas de conexo na porta 80 do servidor www (web), caso voc tenha definido o INPUT para WWW esta regra obrigatria iptables -A FORWARD -i eth0 -d 200.200.200.200 -p tcp -m tcp --dport 80 -j ACCEPT # Libera o FORWARD na eth0 para todas as tentativas de conexo na porta 80 do servidor www1 (web), caso voc tenha definido o INPUT para WWW esta regra obrigatria iptables -A FORWARD -i eth0 -d 200.200.200.201 -p tcp -m tcp --dport 80 -j ACCEPT # Libera o FORWARD na eth0 para o servio FTP do servidor www, caso voc tenha definido o INPUT para FTP esta regra obrigatria iptables -A FORWARD -i eth0 -d 200.200.200.200 -p tcp -m tcp --dport 21 -j ACCEPT # Libera o FORWARD na porta 3389 (necessrio para conexes RDP mesmo com INPUT liberado), caso voc tenha definido o INPUT -j ACCEPT para a porta 3389 esta regra obrigatria iptables -A FORWARD -i eth0 -d 200.200.200.200 -p tcp -m tcp --dport 3389 -j ACCEPT # Bloqueia o FORWARD de todas as conexes do messenger antes que ele chegue nas regras de liberao iptables -A FORWARD -m layer7 --l7proto msnmessenger -j DROP # Bloqueia o imbloquevel Bit Torrent iptables -A FORWARD -m layer7 --l7proto bittorrent -j DROP ## CHAIN POSTROUTING e PREROUTING ## NAT ## # Aqui um pulo do gato, suponha que voc tem uma aplicao web que o mundo acessa, suas mquinas da rede interna tambm acessam mas, obviamente voc no vai consumir sua banda internet fazendo as conexes da rede interna sarem para voltar para sua

prpria rede, ento voc redireciona internamente # Redireciona todas as tentativas de conexo da rede local www.meuservidor.com.br para os servidores locais iptables -t nat -A PREROUTING -s 192.168.100.0/24 -d www.meuservidor.com.br -p tcp -m tcp -j DNAT --to 192.168.100.200 # Redireciona todas as tentativas de conexo da rede local www1.meuservidor.com.br iptables -t nat -A PREROUTING -s 192.168.100.0/24 -d www1.meuservidor.com.br -p tcp -m tcp -j DNAT --to 192.168.100.201 # Aqui serve para voc definir para onde vai uma conexo que entrar pela internet pelo MS-RDP, escolha a mquina Windows com o servio e redirecione para ela, voc pode definir vrias mquinas colocando uma porta diferente. iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 3389 -j DNAT --to 192.168.100.30 # Todas as conexes da estao da rede com ip 192.168.100.10 no atravessaro o proxy SQUID para navegar na internet iptables -t nat -A PREROUTING -i eth1 -s 192.168.100.10 -p tcp -m tcp -j ACCEPT # Esta regra nega acesso na porta 443 (https) do orkut, tem neguinho que se acha esperto digitando https://www.orkut.com iptables -t nat -A PREROUTING -s 192.168.100.0/24 -d www.orkut.com -p tcp -m tcp --dport 443 -j DROP # Todas as conexes da rede local porta 80 sero redirecionadas para a porta do proxy (PROXY TRANSPARENTE) iptables -t nat -A PREROUTING -s 192.168.100.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-port 3128 # Redireciona todas as conexes entrantes na porta 80 da eth0 para o servidor www, se voc definiu INPUT e FORWARD da internet para a rede interna necessrio definir para onde os pacotes iro aps entrarem ou eles se perdero iptables -t nat -A PREROUTING -i eth0 -d 200.200.200.200 -p tcp -m tcp --dport 80 -j DNAT --to 192.168.100.200 # Repete a regra acima para outro servidor, caso exista iptables -t nat -A PREROUTING -i eth0 -d 200.200.200.201 -p tcp -m tcp --dport 80 -j DNAT --to 192.168.100.201 # Redireciona todas as conexes entrantes na porta 21 da eth0 para o servidor www, se voc definiu INPUT e FORWARD da internet para a rede interna tambm necessrio especificar para onde iro os pacotes ou eles se perdero iptables -t nat -A PREROUTING -i eth0 -d 200.200.200.200 -p tcp -m tcp --dport 21 -j DNAT --to 192.168.100.200 # NAT, essa nem precisa falar n, libera a galera pra fazer o que bem entender iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -d 0/0 -j MASQUERADE ############################################################### Finalizada a criao do script, salve e saia, vamos torn-lo executvel e coloc-lo na inicializao: # chmod +x firewall # vi /etc/init.d/bootmisc.sh Adicione ao final do arquivo o seguinte contedo: # Inicializando o Firewall if [ -x /etc/init.d/firewall ]; then . /etc/init.d/firewall fi E pronto. Agora reboot na mquina e correr pro abrao, dentro do diretrio /etc/l7protocols voc vai poder ver todos os pacotes que o layer7 pode bloquear, no site do layer7 h uma tabela com cores que definem se o protocolo bem suportado, mdio ou ruim, e assim por diante, eu vou ficando por aqui, agora voc pode ir at uma LAN HOUSE tentar um nmap da vida na sua mquina, veja o que acontece, um simples scan e ele vai dizer que a mquina nem existe, vai ser preciso mais do que p0 e -t insane para comear a brincadeira.

Consideraes finais e fontes consultadas


Para finalizar no vou ficar querendo nem dando crditos para ningum porque instalei atravs dos meus mtodos sem me basear em um how-to da vida, um comando ou outro consultei na internet e algumas fontes foram teis por j estarem prontas para facilitar o servio, como eu disse no incio do arquivo, isso um FIREWALL MNIMO que est a rodando, para falarmos em ambientes maiores muita coisa deve ser implementada em segurana, a primeira delas ler os fontes de cada software utilizado ou voc vai confiar em qualquer um que escreveu o software, vai saber o que ele colocou l no meio do fonte, eu num conheo e cara, e voc? As crticas so sempre bem vindas espero que hajam muitas para eu saber onde esto as falhas quando falamos em firewall mnimo.

Você também pode gostar