You are on page 1of 85

Configurao de rede no Windows 98

Depois de montar a parte fsica da rede, vamos agora para a configurao lgica das estaes. Este trecho explica como instalar a placa de rede e fazer a configurao lgica da rede em micros rodando o Windows 95 ou 98. Todas as placas de rede venda atualmente so plug-and-play, isto torna sua instalao extremamente fcil. Basta espetar a placa em um slot disponvel da placa me, inicializar o micro para que o Windows a detecte e se necessrio, fornecer os drivers que vm junto com a placa. Para instalar uma placa no plug-and-play, abra o cone rede do painel de controle, clique em adicionar, em seguida em adaptador e finalmente em com disco. Depois de instalada a placa, acesse o gerenciador de dispositivos e cheque as configuraes da placa para ter certeza de que ela est funcionando corretamente. Placas plug-andplay no costumam dar muita dor de cabea, mas comum placas antigas, de legado, entrarem em conflito com outros dispositivos. Se for o seu caso, altere o endereo usado pela placa, ou ento reserve o endereo de IRQ usado pela placa na sesso PCI/plug-and-play do Setup, para que no seja usado por outros dispositivos. Tanto o Windows 95, quanto o Windows 98, oferecem recursos que permitem montar uma rede ponto a ponto entre vrios micros rodando o Windows com facilidade. Voc dever instalar o Cliente para redes Microsoft, o Compartilhamento de arquivos e impressoras para redes Microsoft e um protocolo de comunicao dentro do cone Redes do painel de controle. Voc poder instalar basicamente trs protocolos: TCP/IP, NetBEUI e IPX/SPX. O TCP/IP praticamente obrigatrio, pois necessrio para compartilhar o acesso Web, mas voc pode manter os outros dois instalados se desejar. O NetBEUI permite compartilhar recursos com os outros micros da rede sem necessidade de configurar manualmente um endereo, como no TCP/IP e o IPX/SPX permite a conexo com redes Novel. recomendvel, sempre que possvel, manter apenas o TCP/IP instalado, pois ao instalar vrios protocolos, mais clientes de rede etc., o Windows sempre manter todos eles carregados, tornando o sistema um pouco mais lento.

Para instalar o protocolo basta escolher protocolo e clicar em adicionar. Na tela seguinte escolha Microsoft no menu do lado esquerdo para que os protocolos disponveis sejam exibidos. Tambm esto disponveis protocolos de outros fabricantes, como o Banyan VINES e o IBM DLC (caso precise).

Depois de instalar os protocolos, voc deve instalar tambm o Cliente para redes Microsoft, para que possa acessar os recursos da rede. Basta escolher Cliente e clicar em Adicionar na janela de instalao dos componentes da rede. Sem instalar o cliente para redes Microsoft o micro no ser capaz de acessar os recursos da rede. Para finalizar, volte janela de instalao de componentes, clique em servio e adicionar, e instale o Compartilhamento de arquivos e impressoras para redes Microsoft, que permitir a voc compartilhar recursos como arquivos e impressoras com outros micros da rede.

Para que o micro possa acessar a Internet, voc dever instalar tambm o Adaptador para redes dial-up. Para isto, clique em adaptador na janela de instalao de componentes, e no menu que surgir, escolha Microsoft no menu da esquerda, e em seguida, Adaptador para redes dial-up no menu da direita.

Configuraes

Aps instalar os itens anteriores, seu ambiente de rede dever estar como o exemplo da figura ao abaixo. Clique no boto Compartilhamento de arquivos e impressoras e surgir um menu com duas selees: desejo que outros usurios tenham

acesso aos meus arquivos e desejo que outros usurios tenham acesso s minhas impressoras. Por enquanto, mantenha marcados ambos os campos.

Voltando janela principal, acesse agora a guia Identificao. Nos campos, voc deve dar um nome ao micro. Este nome ser a identificao do micro dentro da rede Microsoft, e dever ser diferente em cada micro da rede. Este nome poder ter at 15 caracteres. So permitidos apenas caracteres alfanumricos e os caracteres ! @ # $ % ^& ( ) - _ { } . ~ e no so permitidos espaos em branco. Na mesma janela voc dever digitar o nome do grupo de trabalho do qual o computador faz parte. Todos os micros de uma mesma sesso devero fazer

parte do mesmo grupo de trabalho, isto facilitar o acesso aos recursos, pois far com que todos apaream na mesma janela, quando voc localizar um micro na rede, e dentro na mesma pasta, quando abrir o cone ambiente de redes Finalmente, digite algo que descreva o micro no campo Descrio do computador, este campo no altera em nada a configurao ou o funcionamento da rede, mas ser visto por outros usurios que acessarem recursos compartilhados pelo seu micro. Voc pode digitar, por exemplo, o nome do usurio do micro, ou ento alguma observao como Micro do chefe. Acesse agora a guia Controle de acesso. Aqui voc poder escolher entre Controle de acesso em nvel de compartilhamento e controle de acesso em nvel de usurio. A primeira opo se destina a compartilhar recursos numa rede ponto a ponto, onde um recurso compartilhado fica acessvel a todos os demais micros da rede, podendo ser protegido apenas com uma senha. A opo de controle de acesso a nvel de usurio pode ser usada apenas em redes cliente servidor; selecionando esta opo, voc dever configurar as permisses de acesso aos recursos da rede no servidor e informar no campo, o endereo do servidor onde esto estas informaes.

Finalmente, precisamos acertar as configuraes do TCP/IP. Veja que no gerenciador de rede aparecero duas entradas para o TCP/IP, uma relacionada com a placa de rede e outra relacionada com o adaptador de rede dial-up. A entrada relacionada com a dial-up a entrada usada para acessar a Internet via modem, e deve ser configurada (se necessrio) de acordo com as configuraes fornecidas pelo seu provedor de acesso. A entrada relacionada com a placa de rede por sua vez, a utilizada pela rede. ela que devemos configurar. Clique sobre ela e, em seguida, sobre o boto propriedades; surgir ento uma nova janela com as propriedades do TPC/IP. No campo endereo IP escolha a opo Especificar um endereo IP e fornea o endereo IP do micro, assim como sua mscara de sub-rede. O Campo Obter um endereo automaticamente deve ser escolhido apenas no caso de voc possuir um servidor DHCP corretamente configurado em sua rede.

Logando-se na rede

Aps instalar o cliente para redes Microsoft, toda vez que inicializar o micro o Windows pedir seu nome de usurio e senha. obrigatrio logar-se para poder acessar os recursos da rede. Se voc pressionar a tecla Esc, a janela de logon desaparecer e o sistema inicializar normalmente, porm todos os recursos de rede estaro indisponveis. Se a tela de logon no aparecer, significa que o Windows est tendo problemas para acessar a placa de rede, e consequentemente a rede est indisponvel. Neste caso, verifique se a placa de rede realmente funciona, se no est com nenhum tipo de conflito e se os drivers que voc usou so os corretos. Lembre-se que muitas placas de rede mais antigas (no PnP) precisam ter seus endereos de IRQ, I/O e DMA configurados atravs de um programa que acompanha a placa antes de serem instaladas. Este programa, geralmente Setup.exe vem no disquete que acompanha a placa; basta execut-lo pelo DOS.

Compartilhando recursos

Vamos agora parte mais importante da configurao de rede, pois afinal o objetivo de uma rede ponto a ponto justamente compartilhar e acessar recursos atravs da rede, no ? ;-) O Servio de compartilhamento usado pelo Windows 98 permite compartilhar drivers de disquete, drivers de CD-ROM, impressoras, pastas e mesmo uma unidade de disco inteira. Para compartilhar um recurso, basta abrir o cone Meu Computador, clicar com o boto direito sobre o cone do disco rgido, CD-ROM, drive de disquetes, etc., e escolher compartilhamento no menu que surgir.

Mude a opo de No compartilhado para Compartilhado como. No campo Nome do Compartilhamento d o nome que identificar o compartilhamento na rede. Voc pode, por exemplo, dar o nome C: para o disco rgido, CD-ROM para o CD-ROM, Documentos para uma pasta com arquivos do Word, etc. Veja que independentemente de ser um disco rgido inteiro, um CD-ROM, uma impressora, ou uma pasta, cada compartilhamento possui um nome exclusivo pelo qual ser

acessado atravs da rede. Na mesma janela voc poder configurar o tipo de acesso permitido para o compartilhamento. As opes so: Somente leitura : Os outros usurios podero apenas ler os arquivos do disco, mas no podero alterar os arquivos, ou copiar nada para o disco. Voc pode usar este tipo de compartilhamento para proteger, por exemplo, arquivos de programas que so acessados por vrios usurios, mas que no devem ser alterados. Completo : Determina que os outros usurios podero ter acesso total pasta ou disco compartilhado: copiar, alterar ou deletar, exatamente como se fosse um disco local. Depende da senha : Permite que voc estabelea senhas de acesso. Assim o recurso s poder ser acessado caso o usurio do outro micro tenha a senha de acesso. Voc poder escolher senhas diferentes para acesso completo e somente leitura. Ao invs de compartilhar todo o disco rgido, voc poder compartilhar apenas algumas pastas. Para isso, deixe o disco rgido como No Compartilhado, e compartilhe apenas as pastas desejadas, clicando sobre elas com o boto direito e escolhendo compartilhamento. Compartilhar uma pasta significa compartilhar todos os arquivos e sub-pastas que estejam dentro. Infelizmente o Windows 98 no permite compartilhar arquivos individualmente.

Para compartilhar a impressora, acesse o cone Impressoras, clique com o boto direito sobre ela e novamente escolha compartilhamento. Compartilhe-a, d um nome para ela e se quiser, estabelea uma senha de acesso. Tudo pronto, agora basta ligar todos os micros e os recursos compartilhados aparecero atravs do Windows Explorer, ou abrindo o cone Ambiente de Rede que est na mesa de

trabalho. Tudo que estiver compartilhado poder ser acessado como se fizesse parte de cada um dos micros.

Acessando discos e pastas compartilhados

Existem 4 maneiras de acessar um disco rgido, CD-ROM ou pasta compartilhados. A primeira maneira, e a mais simples, usar o cone Ambiente de Rede que est na rea de trabalho. Clicando sobre ele, surgir uma janela mostrando todos os micros da rede que esto compartilhando algo, bastando clicar sobre cada um para acessar os compartilhamentos.

A segunda maneira semelhante primeira, porm mais rpida. Se por exemplo voc quer acessar a pasta de documentos do micro 1, que est compartilhada como documentos, basta usar o comando Executar... do menu iniciar. A sintaxe da linha de comandos \\nome_do_micro\nome_do_compartilhamento como em \\micro1\documentos. Isto abrir uma janela mostrando todo o contedo da pasta compartilhada. Outras sintaxes para este comando so: \\micro1 : para mostrar todos os compartilhamentos do micro indicado \\micro1\documentos\maria : mostra o contedo da pasta maria que est dentro do compartilhamento documentos que est no micro 1.

A terceira maneira mapear uma unidade de rede atravs do Windows Explorer. Uma unidade de rede um compartilhamento que usado com se fosse uma unidade de

disco local, recebendo uma letra, e aparecendo no Windows Explorer junto com as unidades de disco local. Mapear uma pasta ou disco compartilhado torna o acesso mais fcil e rpido. Para mapear uma unidade de rede, abra o Windows Explorer, clique em Ferramentas e, em seguida, em Mapear unidade de Rede. Na janela que surgir, voc dever digitar o endereo de rede do recurso compartilhado, como em \\micro1\CD-ROM

No campo unidade, voc dever escolher a letra que a unidade compartilhada receber. No preciso escolher uma letra seqencial, pode ser qualquer uma das que aparecero ao clicar sobre a seta. A opo reconectar ao fazer logon, quando marcada, far com que seu micro tente recriar a unidade toda vez que voc se logar na rede. Se por acaso, ao ligar seu micro, o micro que est disponibilizando o compartilhamento no estiver disponvel, ser exibida uma mensagem de erro, perguntando se voc deseja que o Windows tente restaurar a conexo da prxima vez que voc se logar na rede. Voc tambm pode desconectar uma unidade de rede, basta clicar com o boto direito sobre ela (atravs do Windows Explorer ou do cone Meu computador) e escolher Desconectar no menu que surgir. Uma unidade compartilhada tambm pode ser acessada atravs dos aplicativos, usando os comandos de abrir arquivo, salvar arquivo, inserir arquivo, etc. Esta a quarta maneira de acessar os recursos da rede.

Acessando impressoras de rede

Para imprimir em uma impressora de rede, voc dever primeiro instal-la na estao cliente. A instalao de uma impressora de rede no muito diferente da instalao de uma impressora local, na verdade at mais simples. Abra o cone Meu computador e em seguida o cone impressoras. Clique agora em adicionar impressora e em seguida no boto avanar. Surgir uma nova janela, perguntando se voc est instalando uma impressora local ou uma impressora de rede. Escolha impressora de rede e novamente em avanar. Na janela que surgir a seguir, voc dever informar o caminho de rede da impressora. Lembre-se que como qualquer outro compartilhamento, uma impressora de rede tem seu nome de compartilhamento. O endereo da impressora composto por duas barras invertidas, o nome do micro qual ela est conectada, barra invertida, o nome da impressora na rede, como em \\micro2\HP692C

Voc dever informar tambm se precisar usar a impressora de rede para imprimir a partir de programas do MS-DOS. Caso escolha sim, o Windows far as alteraes necessrias nos arquivos de inicializao para que a impressora funcione a partir do MS-DOS. Como estamos instalando uma impressora de rede, no ser necessrio fornecer os drivers da impressora, pois o Windows os copiar a partir do micro aonde ela est conectada. Depois de terminada a instalao, o Windows permitir que voc d um nome impressora (o nome dado aqui se refere apenas ao

cone da impressora), perguntando tambm se voc deseja que seus aplicativos usem a impressora como padro. Como de praxe, o Windows lhe dar a opo de imprimir uma pgina de teste; faa como quiser e clique em concluir para finalizar a instalao. O cone referente impressora de rede aparecer na pasta de impressoras, e voc poder utiliza-la da mesma maneira que utilizaria uma impressora local. Usar uma impressora de rede traz a vantagem do micro no ficar lento enquanto a impressora estiver imprimindo, pois os trabalhos de impresso so transferidos diretamente para o spooler de impresso do micro que est disponibilizando a impressora, e ele prprio (o servidor de impresso) dever cuidar da tarefa de alimentar a impressora com dados. O spooler de impresso nada mais do que um arquivo temporrio criado dentro da pasta \Windows\Spool\Printers do disco do servidor de impresso. Nesta pasta sero gravados todos os arquivos a serem impressos, organizados na forma de uma fila de impresso. Usamos o termo fila pois os arquivos vo sendo impressos na ordem de chegada. Dependendo do nmero e tamanho dos arquivos a serem impressos, o spooler pode vir a consumir um espao em disco considervel. O servidor de impresso tambm ficar lento enquanto a impressora estiver imprimindo, por isso, se a quantidade de documentos impressos for grande, voc deve considerar a idia de um servidor de impresso dedicado.

Configurao de rede no Windows 2000


Aps instalar a placa de rede, abra o cone "conexes dial-up e de rede" do painel de controle. Voc notar que alm das conexes de acesso Internet apareceu uma nova conexo (com um cone diferente das demais) que representa a conexo da sua placa de rede.

Abra o cone correspondente placa de rede e (caso j no estejam instalados) Instale o protocolo "TCP/IP", o "Cliente para redes Microsoft" e em seguida o "Compartilhamento de arquivos e impressoras para redes Microsoft", como no caso anterior, voc pode instalar tambm o NetBEUI e outros protocolos que desejar. No se esquea de acessar as propriedades do TCP/IP e configure o endereo IP como explicado anteriormente.

Agora vai uma parte da configurao que necessria apenas no Windows 2000: 1- Ainda no painel de controle, acesse usurios e senhas. Adicione na lista o login e senha de rede que est usando nas outras mquinas da rede, incluindo naturalmente as mquinas com o Windows 95/98. Caso contrrio as outras mquinas no

tero acesso mquina com o Windows 2000. Se o objetivo for apenas compartilhar o acesso Internet, voc pode apenas ativar a conta guest que vem desabilitada por default:

Esta forma de controle do Windows 2000 mais complicada de configurar, mas oferece uma segurana de rede muito maior. fcil especificar o que cada usurio da rede poder fazer. Numa empresa isso extremamente til, pois permitir ter uma segurana de rede muito boa, mesmo sem usar um servidor dedicado. 2- Acesse: Painel de controle/Ferramentas administrativas/Gerenciamento do computador, abra a Sesso Pastas compartilhadas/Compartilhamentos. 3- Adicione na lista de compartilhamentos as pastas que deseja acessar no outro micro. No esquea de colocar na lista dos que tero acesso pasta os logins de usurio que esto sendo utilizados nos demais micros da rede:

Para compartilhar tambm a impressora, acesse painel de controle/impressoras. Um detalhe que para compartilhar a impressora com micros rodando o Windows 95/98 ou outras verses antigas do Windows, voc precisar fornecer tambm os drivers de impressoras para estes sistemas. Com certeza os drivers vieram junto com a impressora, mas caso voc tenha perdido o CD, procure no site do fabricante. 4- Acesse Painel de controle/Sistema e em Identificao de rede clique no boto Propriedades. Defina um nome para o computador (o Win 2K j cria um nome durante a instalao, mas voc pode querer altera-lo). O grupo de trabalho deve ser o mesmo usado nos demais micros da rede.

Para instalar uma impressora de rede, ou seja acessar uma impressora compartilhada em outro micro da rede, acesse o Painel de controle/impressoras, clique em adicionar nova impressora e escolha impressora de rede.

Compartilhar a conexo usando o ICS

O ICS, ou Internet Conection Sharing o recurso nativo do Windows que permite compartilhar a conexo com a Internet entre vrios PCs, tanto rodando Windows, quanto rodando Linux ou outros sistemas operacionais. O ICS encontrado no Windows 98 SE, Windows ME, Windows 2000 e Windows XP. Ele no est disponvel no Windows 98 antigo, nem no Windows 95. Vamos ver agora como configurar este recurso para compartilhar a conexo entre mquinas rodando o Windows 98 SS, Windows 2000 e Linux.

Para usar o ICS, voc precisa estar com a sua rede j montada e com o protocolo TCP/IP instalado em todos os micros. Um dos principais motivos para ligar micros em rede hoje em dia compartilhar a mesma conexo com a Internet. Afinal, por que colocar um modem em cada mquina, possuir mais de uma linha telefnica, pagar mais pulsos telefnicos etc. se possvel ter apenas uma conexo, seja via modem, seja uma conexo rpida qualquer e compartilha-la com os demais micros da rede? Compartilhar a conexo no Windows 2000 Professional

1 - Abra o painel de controle/Conexes dial-up e rede. Acesse as propriedades da conexo com a Internet (e no a configurao da rede local), seja via modem, ADSL etc. acesse as propriedades, compartilhamento, e marque a opo Ativar compartilhamento de conexo com a Internet.

2 - Acesse as configuraes de TCP/IP de todas as demais mquinas da rede mude a configurao para obter automaticamente um endereo IP. Esta a configurao recomendada pela Microsoft, que faz com que todos os PCs obtenham seus endereos IP automaticamente, apartir da mquina que est compartilhando a conexo, via DHCP. 3 - Este compartilhamento funciona automaticamente em mquinas rodando o Windows 2000 ou 98 SE, basta configurar o TCP/IP para obter seus endereos automaticamente. Caso voc tenha PCs na rede rodando o Windows 98 ou Win 95, acesse (no cliente), iniciar > programas > acessrios > ferramentas para a Internet > entrar na Internet. Escolha configurao manual na primeira pergunta do assistente, e na

segunda responda que deseja conectar-se atravs de uma rede local.

A seguir, deixe desmarcada a opo de acessar via proxy. Terminando, bastar reiniciar o micro. Compartilhar a conexo no Windows 98 SE Infelizmente o Windows s incorporou um servio de compartilhamento de conexo apartir do Windows 98 SE. Caso voc esteja utilizando o Windows 98 antigo, ou o Windows 95, e por qualquer motivo no puder atualizar o sistema, a nica soluo seria utilizar um programa de proxy, como o Wingate, entre vrios outros, inclusive gratutos que j existem. Presumindo que a mquina que detenha a conexo esteja rodando o Win 98 SE e que voc j tenha configurado corretamente a rede, vamos aos passos para compartilhar a conexo: 1 - Abra o painel de controle/adicionar remover programas e abra a aba instalao do Windows. Acesse as Ferramentas para a Internet e instale o Internet Conection Sharing.

2 - Logo depois de instalado o servio, ser aberto um assistente, que lhe perguntar sobre o tipo de conexo que possui. Sem mistrio, basta escolher entre conexo dial-up, ou seja, uma conexo discada qualquer, seja via modem ou ISDN, ou mesmo cabo unidirecional, ou ento Conexo de alta velocidade, caso esteja acessando via ADSL ou cabo bidirecional.

3 - Terminado, ser gerado um disquete, com um outro assistente, que dever ser executado nos outros micros da rede, rodando o Windows 98 antigo ou Windows 95, que se encarregar de fazer as configuraes necessrias. Caso as outras mquinas da rede estejam rodando o Windows 98 SE, no ser necessrio instalar o disquete. 4 - Como no caso do Windows 2000, para que o compartilhamento funcione, voc dever configurar o TCP/IP em todas as mquinas, com exceo do servidor de conexo claro, para obter seus IPs automaticamente (como quando se disca para um provedor de acesso), e no utilizar IPs estticos, como seria usado numa rede clssica. As demais mquinas da rede obtero seus endereos apartir da mquina que est compartilhando a conexo, que passar a atuar como um mini-servidor DHCP. mais um motivo para manter o NetBEUI instalado junto com o TCP/IP, ele far com que a rede funcione mesmo que a mquina que compartilha a conexo esteja desligada.

Compartilhar a conexo no Windows XP Os passos para compartilhar a conexo no XP so quase idnticos aos do Windows 2000. Depois de instalar a segunda placa de rede, que ser detectada automaticamente ao inicializar o Windows, basta abrir a configurao e rede no painel de controle, configurar a conexo com a Internet com os dados fornecidos pelo provedor, e em seguida habilitar o compartilhamento, acessando a aba Avanado nas propriedades da conexo.

Para habilitar o compartilhamento basta marcara opo Allow Other network users to connect thorough this computer. Voc vai encontrar tambm duas novas opes que so exclusivas do XP. A primeira permite ativar o firewall nativo do XP, que oferece uma proteo rudimentar contra acesso externos. No to eficiente quanto um firewall completo, como o Zone Alarm ou o Black ICE, mas melhor do que navegar completamente desprotegido. Existe ainda uma opo que permite que outros usurios da rede domstica possam desabilitar a conexo com a Internet, o que muito til caso voc esteja compartilhando uma conexo via modem.

ICS com IP fixo: Apesar de toda a documentao da Microsoft dizer que ao usar o ICS deve-se usar endereo IP dinmico nas estaes, isso no obrigatrio, voc pode usar endereos IP fixos nas estaes se preferir. Ao ativar o compartilhamento da conexo no servidor, o ICS configura a sua placa de rede interna com o endereo 192.168.0.1, este IP vale apenas para a sua rede interna, claro diferente do endereo usado na internet. Para que as estaes tenham IP fixo, basta configura-las com endereos dentro deste escopo: 192.168.0.2, 192.168.0.3, etc. e mascara de sub-rede 255.255.255.0. Nos campos de defaut gateway e servidor DNS preferencial coloque o endereo do servidor, no caso 192.168.0.1. Prontinho. O uso de endereos IP fixos na estaes derruba boa parte das crticas feitas ao ICS do Windows, realmente muita gente no gosta do sistema de IPs dinmicos, pois dificulta o uso da rede caso o servidor de conexo no esteja ligado para fornecer os endereos a serem usados pelas estaes. Eu tambm prefiro usar minha rede com IPs fixos. Detalhes sobre o ICS

Estou comeando a mexer com redes a pouco e estou com algumas dvidas: Com apenas uma mquina tendo speed (home) posso conectar 10 micros em rede (de Windows 98), tendo em um servidor win 98 SE? Hoje utilizamos em nossa empresa conexo Web via modem para cada micro, ainda usando pabx. Com uma rede de 10 micros, voc acha que a conexo com speed compartilhado ser mais rpida do que com modem em pabx? Compensa mudar o sistema em relao a velocidade de informaes(a rede no usada por todos a todo tempo....geralmente s utilizada para enviar backups para o servidor a cada fim de turno)?" O compartilhamento de conexo oferecido pelo Windows vem se tornando bem popular. Como muita gente vem usando este recurso, tambm surgem vrias dvidas. Vou tentar dar uma explicao cuidadosa sobre como tudo funciona. O ICS (Internet Conection Sharing, o recurso do qual estamos falando :-) do Windows na verdade um Proxy com suporte a NAT, que significa Network Address Translation. O NAT um recurso que permite converter endereos da rede interna em endereos a serem enviados. A rede interna neste caso nada mais do que a rede da sua casa ou empresa, enquanto a rede externa a Internet. Imagine uma rede simples, com 3 PCs. O PC 1 o que tem a conexo via Speedy, de 256k. Este PC precisa ter duas placas de rede, uma onde ser ligado o modem ADSL e outra para liga-lo em rede com os outros dois PCs. Ao habilitar o compartilhamento de conexo, este PC passa a ser o servidor, fornecendo acesso para os outros dois PCs. Como tem duas placas de rede, ele passar a ter dois endereos IP. O seu endereo IP na Internet, 200.183.57.176 (por exemplo) e seu endereo IP na rede, que por defaut ser 192.168.0.1. Segundo as instrues dadas pelo Windows, voc dever configurar os outros dois PCs para obterem seus endereos IP automaticamente, mas voc pode configurar os IPs manualmente se quiser. Eu pessoalmente recomendo a segunda opo, pois tornar a rede mais flexvel. Para isso, abra a configurao do protocolo TCP/IP e d endereos IP para as duas estaes, podem ser por exemplo 192.168.0.2 e

192.168.0.3. Em seguida, coloque o endereo do servidor, no caso 192.168.0.1 nos campos Defaut Gateway e DNS primrio. A mscara de sub-rede neste caso 255.255.255.0. Rode o Assistente para conexo com a Internet do Windows (Iniciar > Programas > Acessrios > comunicaes) e marque a opo de acessar atravs da rede local (creio que j expliquei isso em outros artigos) Com isto, voc configurou as duas estaes para enviarem todos os pedidos para o PC 1, que o nico que est diretamente conectado internet. Ao abrir uma pgina, baixar um e-mail, abrir o ICQ, etc. em qualquer um dos dois PCs, o pedido de conexo ser enviado para o PC 1, que por sua vez se encarregar de envia-los ao endereo correto na Internet, aguardar a resposta, e em seguida devolver os dados ao cliente. Esta justamente a funo do NAT, tornar esta troca de dados transparente. Voc no precisar configurar os programas para acessar a Internet via proxy, pois graas ao trabalho do PC 1, eles pensaro que esto diretamente conectados. Esta a grande diferena entre o ICS e outros proxys que suportam Nat (o Wingate por exemplo) e proxys manuais, como por exemplo o Analog-X A conexo com a Internet ficar disponvel para os trs PCs. Caso apenas um acesse, ter toda a conexo para si. Caso os trs acessem ao mesmo tempo, a banda ser dividida. Voc vai perceber a conexo ficar mais lenta no PC 1 se estiver baixando arquivos no segundo, etc. Mas realmente, se comparada com uma conexo via modem, e ainda por cima via PABX, mesmo compartilhando a conexo entre 10 micros o acesso dever ficar bem mais rpido. Se for o caso, pegue um Speedy de 2 megabits, provavelmente ainda vai sair mais barato que 10 contas de telefone :-). O fato de compartilhar a conexo, no vai tornar sua rede mais lenta, pois a velocidade da conexo muito pequena se comparado com os 10 ou 100 megabits que podem ser transportados atravs da rede. Uma observao que o ICS do Windows pode ser usado para compartilhar a conexo com PCs rodando outros sistemas operacionais. Basta configurar corretamente a rede, de preferencia com endereos IP fixos para que PCs com Linux, Free BSD, Windows 95, etc. acessem perfeitamente.

Compartilhamento usando o Analog-X Proxy

O Analog-X Proxy, que pode ser encontrado na sesso de download, um proxy bastante leve e fcil de usar que pode ser usado no caso de voc no estar usando uma verso do Windows que j possua o Internet Conection Sharing, ou caso voc no esteja conseguindo compartilhar a conexo atravs dele. O programa gratuto e pode ser usado para compartilhar a conexo com um nmero ilimitado de estaes. Claro que voc deve limitar esse nmero de acordo com a velocidade de conexo, mas no existe limitao por parte do programa, ao contrrio de alguns proxys comerciais. O Analog-X pode ser baixado no: http://www.analogx.com/contents/download/network/proxy.ht m O proxy deve ser instalado apenas no PC com a conexo, surgir um grupo no menu iniciar, com o atalho para inicializar o programa. Eu sugiro que voc arraste o cone para a pasta Inicializar para que voc no precise ficar abrindo-o manualmente toda vez que ligar o micro. Ao ser aberto surgir um cone verde ao lado do relgio, indicando que o proxy est ativo.

Se o cone estiver vermelho, significa que o proxy no est funcionando. Isso costuma acontecer caso voc tenha algum outro programa servidor rodando na mquina, como por exemplo um servidor de SMTP (como o ArgoSoft Mail Server), um servidor de FTP, etc. Assim como outros proxys, o AnalogX no custuma se entender muito bem com esses programas. Basta desativar o programa que estiver em conflito com ele e reinicializar o micro para que tudo volta normalidade. Com o proxy funcionando, abra a janela de configuraes. No existe muito a se configurar por aqui. voc deve basicamente escolher quais protocolos devem ficar ativos, se voc no for manaco por segurana, deixe todos ativados. Se preferir, ative tambm o log, que ser armazenado no arquivo proxy.log, dentro da pasta onde o Proxy foi instalado

Nas estaes, voc precisar configurar os programas para acessar a Internet atravs do Proxy, programa por programa. Esta a parte mais chata. Note tambm que alguns programas simplesmente no conseguiro acessar atravs do Analog-X, mesmo com configurao manual. A falha mais grave o ICQ, apesar do AIM e o MS Messager, que usam um mtodo de acesso mais simples funcionarem sem maiores problemas. Outro problema grave o acesso a e-mail via POP3. Voc poder usar Webmails, via browser, sem problema algum, mas existem vrias limitaes para baixar os e-mail apartir de um servidor de POP3. Vou explicar o que se pode fazer quanto a isso no final do tutorial. Por causa das limitaes, recomendvel usar o Analog-X se a idia for basicamente navegar atravs do Browser. Se voc realmente precisar do ICQ e de e-mail via Pop3 em todas as estaes, o mais recomendvel usar um proxy com suporte a Nat, como o Wingate, ou usar o Internet Conection Sharing do Windows. Voltando configurao nas estaes, comece configurando o Browser. No IE 5, clique em Ferramentas > Opes da Internet > Conexes > Configuraes da Lan Marque a opo Usar um servidor Proxy e clique em Avanado. Nos campos coloque o endereo IP do micro que est com a conexo, como por exemplo 10.0.0.1 e a porta a ser usada para cada protocolo. As portas usadas pelo Analog-X so as seguintes: HTTP: porta 6588 HTTP Seguro: porta 6588 SOCKS: porta 1080 FTP: porta 21

NNTP (news): porta 119 POP3: porta 110 SMTP: porta 25

Deixe o campo Gopher em branco, pois o Analog-X no suporta este protocolo. O Gopher um protocolo para buscas de arquivos, mas muito pouco usado atualmente. Creio que por isso o criador do Proxy nem se preocupou em adicionar suporte a ele. Terminada a configurao, voc j deve ser capaz de navegar normalmente atravs do Browser. Se estiver usando o Opera 5, clique em File > Preferences > Connections > Proxy Servers. Surgir uma janela parecida com a do IE. A configurao dos endereos a mesma. No Netscape clique em Edit > Preferences > Advanced > Proxys > Manual Proxy Configuration > View Estas configuraes valem caso voc prefira usar outro proxy qualquer, que tambm exija configurao manual nas estaes. Basta verificar quais so as portas usadas pelo proxy para cada protocolo. Outro comentrio importante que ao contrrio do ICS do Windows, o Analog-X pode ser usado para compartilhar a conexo com estaes rodando outros sistemas operacionais,

Linux, Free BSD, Mas OS, etc. sem problemas. Basta configurar a rede e configurar o browser para acessar atravs do proxy. Para que outros programas possam acessar a Internet, novamente voc dever procurar nas configuraes do programa a opo de acessar via proxy e configurar a porta. No FlashFXP (cliente de FTP) por exemplo, a configurao do proxy fica em: Options > Preferences > Proxy Firewall Ident. Na janela de configurao a opo Proxy Server fica como Open (Host:Port). No Babylon entre em Configurao > Conexo. Estes so apenas dois exemplos, o chato que voc precisar fazer o mesmo em todos os programas que forem acessar a Internet, em todas as estaes. Terminando a configurao, vem a parte mais complicada que configurar o recebimento de e-mails via POP3. Como disse, voc poder acessar Webmails sem problema algum, j que eles so acessados pelo Browser. No servidor, abra a janela de configurao do Analog-X e clique em configure e-mail alias. Clique em add. Preencha os campos com o endereo de e-mail que ser acessado e os servidores POP3 e SMTP:

Nas estaes, abra o programa de e-mail e nos campos dos servidores POP e SMTP, coloque o endereo IP do servidor, 10.0.0.1 por exemplo. A estao enviar o pedido ao proxy que se encarregar de baixar os e-mails nos endereos indicados nos alias. Voc pode adicionar mais de um alias, mas existe uma limitao quanto a isso que o fato de no ser possvel acessar duas contas de e-mail, como o mesmo login em servidores diferentes. Por exemplo, voc pode acessar as contas visitante@guiadohardware.net e voce@seuprovedor.com.br, mas no poder acessar voce@seuprovedor.com.br e voce@outroprovedor.com.br, a

menos que fique toda hora mudando o alias no servidor. O Analog-X bem deficitrio nesse aspecto. Comparado com outros proxys, a configurao do Analog-X bastante simples e ele tem a grande vantagem de ser gratuto. Porm, o programa tambm tem suas limitaes. Ele pode ser quase ideal para alguns usurios e ser inusvel para outros, depende do que voc precisar usar atravs da rede e do que esperar do programa.

Acessando um Servidor Windows 2000 ou NT

Alm de ser usado em redes ponto a ponto, o Windows 98 pode atuar como cliente de um servidor rodando o Windows 2000 Server, ou o Windows NT Server. Estes sistemas oferecem total compatibilidade com o Windows 98. Voc poder visualizar computadores e domnios, acessar recursos compartilhados, e se beneficiar do sistema de segurana do Windows 2000 e NT Server, usando o servidor para controlar o acesso aos recursos compartilhados pela estao rodando o Windows 98. Usando o Windows 98 como cliente de um servidor NT ou Windows 2000 (a configurao da estao a mesma para os dois), a configurao dos servios de rede e protocolos so parecidos com os de uma rede ponto a ponto, que vimos at agora, porm, temos disposio alguns recursos novos, principalmente a nvel de segurana. Vamos s configuraes: Depois de ter instalado a placa de rede, instalado o, ou os protocolos de rede, o cliente para redes Microsoft e o compartilhamento de arquivos e impressoras, volte janela de configurao da rede, selecione o cliente para redes Microsoft e clique no boto propriedades.

O campo de validao de logon, permite configurar a estao Windows 98 para efetuar logon no domnio NT, passando pelo processo de autenticao imposto pelo servidor. Para isso marque a opo efetuar logon no domnio do Windows NT, e no campo Domnio do Windows NT escreva o nome do domnio NT. Obviamente, para que a estao possa logar-se preciso antes cadastrar uma conta no servidor. preciso ativar esta opo para poder utilizar os recursos de perfis do usurio, scripts de logon e diretrizes de sistema permitidos pelo Windows NT e Windows 2000 Server. Ativando a opo de logar-se no servidor NT, a janela de logon que aparece quando o micro inicializado ter, alm dos campos Nome do usurio e senha, um terceiro campo onde dever ser escrito o nome do domnio NT no qual a estao ir logar-se No campo de opes de logon de rede, voc poder escolher entre Logon rpido e Efetuar logon e restaurar as conexes da rede. Esta opo aplica-se s unidades de rede que aprendemos a mapear no tpico anterior, e a qualquer tipo de rede. Escolhendo a Segunda opo, de restaurar as conexes de rede, o Windows tentar reestabelecer todas as unidades de rede, assim que voc logar-se na rede. Isto traz um pequeno inconveniente: caso voc tenha mapeado o CD-ROM do micro 3 por exemplo, e se por acaso quando logar-se na rede ele

estiver desligado, o Windows exibir uma mensagem de erro, que ser exibida toda vez que algum recurso mapeado esteja indisponvel, o que pode tornar-se inconveniente. Escolhendo a opo de logon rpido, o Windows tentar reestabelecer a conexo com as estaes que estiverem compartilhando as unidades de rede mapeadas apenas quando voc for acessar cada uma. Isto torna a inicializao do micro mais rpida, diminui um pouco o trfego na rede, economiza recursos de sistema e acaba com as mensagens chatas durante a inicializao. Voltando janela principal, acesse agora a guia controle de acesso. Lembra-se que usando uma rede no hierrquica podamos apenas usar a primeira opo? Pois bem, logando-se em um servidor podemos agora usar a segunda opo, Controle de acesso a nvel de usurio, que permite especificar quais usurios podero acessar os recursos compartilhados (ao invs de apenas estabelecer senhas). Ativando esta opo, o Windows abrir o banco de dados com as contas de usurios do servidor toda vez que voc compartilhar algo, permitindo que voc especifique quais usurios podero acessar o recurso. Para ativar estes recursos, basta escolher a opo de controle de acesso a nvel de usurio, e fornecer o nome do servidor que armazena o banco de dados de contas dos usurios.

Acessando um Servidor Novell NetWare

Tambm perfeitamente possvel usar estaes com o Windows 98 para acessar servidores Novell NetWare. Para isto necessrio ter instalado o protocolo IPX/SPX e tambm um cliente para redes NetWare. O cliente para redes Microsoft, que usamos at agora, permite apenas acessar outras estaes Windows 95/98 ou servidores Windows NT/2000. Para instalar o protocolo IPX/SPX basta abrir o cone de configurao da rede, clicar e Adicionar..., Protocolo, Microsoft e em seguida escolher Protocolo compatvel com IPX/SPX. Quanto ao cliente para redes NetWare, o Windows 95/98 traz um cliente de modo protegido, que permite acessar servidores NetWare verso 3, 4 ou 5. Para instal-lo, basta clicar em Adicionar..., Cliente, Microsoft e finalmente em Ciente para redes NetWare.

Apesar do cliente fornecido com o Windows 98 no ficar devendo muito em termos de recursos, prefervel usar o cliente fornecido pela prpria Novell, que traz alguns recursos nicos, alm de ser mais rpido. O programa cliente da Novell fornecido junto com o mdulo servidor, mas voc tambm poder baixa-lo gratuitamente (12 MB) do site da Novell: http://www.novell.com.br . Aps baixar o arquivo, execute-o para que ele se descompacte automaticamente e, em seguida, execute o arquivo setup.exe para instalar o cliente. O programa de instalao adicionar o Cliente NetWare da Novell e o Protocolo IPX de 32 Bits para o NetWare Client da Novell que aparecero na janela de configurao da rede, e

ficar residente (j que voc depende do programa para ter acesso ao servidor). Como no caso dos servidores NT, voc dever criar uma conta de usurio no servidor Novell e logar-se na rede informando no nome de usurio e senha estabelecidos.

LINUX

Compartilhando a conexo
Do ponto de vista da segurana e at mesmo da facilidade de configurao, sempre recomendvel usar um servidor com duas placas de rede, separando o trfego proveniente da internet do trfego da rede local. Com duas placas separadas, fica mais fcil criar as regras de firewall adequadas para bloquear acessos provenientes da internet e, ao mesmo tempo, permitir o trfego vindo da rede local. Se voc acessa via ADSL, recomendvel manter o modem configurado como bridge ao invs de configur-lo como roteador. Dessa forma, o servidor recebe todas as portas de entrada, permitindo que voc acesse o servidor remotamente via SSH (muito til para prestar suporte remoto em servidores instalados por voc) ou disponibilize um servidor web ou FTP. Embora acabe sendo mais trabalhoso, nada impede que voc configure o modem como roteador e use o servidor para novamente compartilhar a conexo recebida do modem, acrescentando os demais servios. Nesses casos, voc vai precisar configurar o modem para encaminhar ao servidor as portas que devem ficar abertas, como a porta 22, usada pelo SSH (caso voc pretenda administrar o servidor remotamente), por exemplo. Isso feito atravs da interface de administrao do modem, atravs da opo "Port Forwarding", ou similar:

Encaminhamento de portas dentro da configurao de um DLink 500G As opes de configurao variam bastante de acordo com o modelo do modem, mas (com exceo de um punhado de modelos realmente muito antigos) deve estar disponvel pelo menos a opo de criar regras estticas de encaminhamento, onde voc pode encaminhar um conjunto de portas, incluindo uma regra para cada uma. Na maioria dos casos, a interface de configurao do modem permite tambm encaminhar faixas de portas, ou criar uma DMZ (o que faz com que todas as portas sejam encaminhadas para o servidor, como se ele estivesse diretamente conectado Internet). No final, sua rede ficaria com uma topologia similar a essa, com o servidor colocado entre a rede local e o modem. Uma das interfaces do servidor receberia um endereo de rede local, de forma a receber os acessos provenientes dos clientes da rede e a segunda seria configurada para acessar a Internet atravs do modem:

Ao usar uma conexo via cabo, o layout da rede continua o mesmo, a nica diferena que no acesso via cabo a configurao da conexo mais simples, j que preciso apenas obter a configurao da rede via DHCP e no necessrio configurar o roteamento de portas, j que o cable modem funciona como um bridge. Depois de montar o cabeamento da rede, comece configurando a rede local usando uma das faixas de endereos IP reservadas como, por exemplo, a 192.168.1.x, onde o servidor fica com o IP 192.168.1.1 (ou 192.168.1.254, caso prefira) e os micros da rede interna recebem endereos dentro da mesma faixa. O endereo IP de rede local do servidor (192.168.1.1 no exemplo) passa a ser o gateway da rede, j que a ele que os clientes iro contactar quando precisarem acessar qualquer endereo externo:

No caso do servidor, o gateway padro definido apenas ao configurar a conexo com a Internet, no ao configurar a rede local. Caso voc utilize um utilitrio de configurao para

configurar as interfaces de rede no servidor, configure primeiro a interface de rede local, mantendo os campos do default gateway e dos servidores DNS em branco, deixando para configurar a interface da Internet por ltimo. Isso evita alguns erros comuns. Por exemplo, se voc configurar a conexo com a web e depois configurar a rede local, colocando um endereo qualquer no campo "default gateway", o gateway informado na configurao da rede local vai substituir o gateway do provedor (definido ao conectar na internet), fazendo com que a conexo deixe de funcionar. Aqui temos um exemplo de configurao manual da rede para distribuies derivadas do Debian, onde a interface eth0 usada como interface de rede local e a eth1 usada como placa de internet, configurada via DHCP: # /etc/network/interfaces auto lo eth0 eth1 iface lo inet loopback iface eth0 inet static address 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 iface eth1 inet dhcp Depois de configurada a rede, verifique se consegue pingar os PCs da rede interna (ex: ping 192.168.1.61) a partir do servidor. Se estiver usando Linux nas estaes, experimente ativar o servidor SSH em uma das estaes e tentar se conectar a ela a partir do servidor. Da primeira vez que configurar a rede, use endereos IP estticos para todas as estaes, pois assim mais fcil detectar problemas diversos. Depois de tudo funcionando, mude para configurao via DHCP, como veremos a seguir. Se alguma das estaes estiver inacessvel, verifique se no existe um firewall ativo, verifique o cabo de rede e experimente trocar a porta usada no switch.
Ao utilizar o Debian Sarge, Etch ou Lenny (ou outra distribuio diretamente derivada deles), importante fixar os devices das interfaces depois de configurar a rede. Isso evita um problema recorrente, onde as interfaces mudam de posio a cada reset em servidores com duas ou mais interfaces de rede. A placa eth0 passa ento a ser a eth1 e assim por diante, o que logo se torna uma grande dor de cabea ao configurar um servidor

para compartilhar a conexo, j que se as duas interfaces mudam de posio, nada funciona. O problema solucionado atravs do uso de um pequeno utilitrio chamado "ifrename", que permite fixar os devices utilizados para as placas. Utiliz-lo bem simples. Comece instalando o pacote via apt-get: # apt-get install ifrename Com as duas placas de rede configuradas, da forma como sero usadas, cheque os endereos MAC das interfaces usando o comando "ifconfig -a" e crie o arquivo "/etc/iftab", relacionando o device de cada interface com o endereo MAC correspondente, seguindo o modelo abaixo: #/etc/iftab eth0 mac 00:16:36:D1:89:1D eth1 mac 00:02:44:95:1D:88 Uma vez criado, o arquivo verificado a cada boot e a configurao se torna persistente, resolvendo o problema. Esta dica no se aplica s verses recentes do Ubuntu/Kubuntu, onde o problema foi solucionado atravs do uso de regras do udev.

No CentOS, Fedora e outras distribuies derivadas do Red Hat, usado um arquivo de configurao independente para cada interface, salvo dentro da pasta "/etc/sysconfig/networkscripts/", de forma que a configurao do exemplo anterior ficaria: # /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR= 00:16:36:D1:89:1D BOOTPROTO=static ONBOOT=yes NETMASK=255.255.255.0 IPADDR=192.168.1.1 NETWORK=192.168.1.0 #/etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 HWADDR=00:02:44:95:1D:88 BOOTPROTO=dhcp USERCTL=no As linhas "HWADDR" so configuradas com os endereos MAC das interfaces de rede. Elas no so obrigatrias, apenas servem como uma garantia adicional de que os devices das interfaces no sero alterados caso voc instale outras placas de rede no futuro. Note que ao conectar via ADSL com o modem configurado em modo bridge (onde voc usa o "pppoeconf" ou o comando

"adsl-start" para conectar), ou outra modalidade de acesso discado, a interface eth0 ou eth1 substituda pela interface virtual ppp0. Ao usar uma placa wireless, a interface pode receber vrios nomes, como "wlan0", "ath0" ou "ra0", de acordo com o chipset e o driver utilizado. importante tomar nota dos devices utilizados por cada interface, j que precisaremos especific-los nos passos seguintes. Em caso de dvidas, cheque a configurao da rede usando o comando "ifconfig".

Ativando o compartilhamento
Depois de tudo preparado, ativar o compartilhamento propriamente dito bastante simples. No Linux, o compartilhamento feito usando o Iptables, o firewall integrado ao Kernel. Na verdade, o Iptables expandido atravs de mdulos, por isso suas funes vo muito alm das de um firewall tradicional, incluindo funes avanadas de roteamento. Para ativar o compartilhamento, so necessrios apenas trs comandos: # modprobe iptable_nat # echo 1 > /proc/sys/net/ipv4/ip_forward # iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE Substitua o "eth1" pela placa da Internet. Este comando simplesmente compartilha a conexo proveniente da placa da internet com todas as demais placas de rede espetadas no servidor, por isso no necessrio especificar a placa de rede local. O primeiro comando ativa o "iptable_nat", o mdulo do Iptables responsvel por oferecer suporte ao roteamento de pacotes via NAT. O segundo ativa o "ip_forward", o mdulo responsvel pelo encaminhamento de pacotes, utilizado pelo mdulo iptable_nat. Finalmente, o terceiro cria uma regra de roteamento, que orienta o servidor a direcionar para a internet todos os pacotes (recebidos dos clientes) que se destinarem a endereos que no faam parte da rede local (ou seja, qualquer coisa fora da faixa 192.168.1.x). A partir da, o servidor passa a ser o gateway da rede.

A maioria das distribuies instalam o executvel do Iptables por padro, mas sempre existem excees. No Mandriva, por exemplo, ele
instalado ao marcar a categoria "firewall" durante a instalao. Para instal-lo posteriormente, use o comando "urpmi iptables".

Em muitas distribuies com o Kernel 2.6, necessrio usar um quarto comando ao compartilhar uma conexo ADSL. Este comando ajusta os tamanhos dos pacotes recebidos do modem ao MTU usado na rede local. Note que, apesar da diagramao do livro tornar necessrio quebrar o comando em duas linhas, trata-se de um nico comando: # iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -m \ tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-topmtu A barra invertida ("\") faz com que o shell no interprete o caractere seguinte (no caso, a quebra de linha), permitindo quebrar o comando em duas linhas, sem causar um erro. Esse um truque que permite incluir comandos longos demais para caberem na pgina, divididos em duas linhas ou mais. Na verdade, o comando forma uma nica linha. Como de praxe, importante proteger o servidor de ataques provenientes da Internet usando um firewall. Podemos ativar um firewall simples de bloqueio usando mais alguns comandos do Iptables, complementando os trs comandos anteriores: iptables -A INPUT -p icmp --icmp-type echo-request -j DROP echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter iptables -A INPUT -m state --state INVALID -j DROP iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth0 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --syn -j DROP O primeiro comando faz com que o seu servidor deixe de responder a pings, o que evita muitos ataques casuais. Os dois comandos seguintes protegem contra IP spoofing (uma tcnica usada em diversos tipos de ataques, onde o atacante envia pacotes usando um endereo IP falseado como remetente, tentando assim obter acesso a PCs da rede interna) e contra pacotes invlidos, que so comumente utilizados em ataques DoS e ataques de buffer overflow.

As duas linhas seguintes autorizam pacotes provenientes da interface de loopback (lo), juntamente com pacotes provenientes da rede local. Como pode ver, a sintaxe das regras do Iptables segue um padro lgico, onde voc especifica uma determinada condio e diz o que o firewall deve fazer com os pacotes que se enquadrarem nela. No caso da regra que autoriza os pacotes da rede local (iptables -A INPUT -i eth0 -j ACCEPT) usamos os parmetros "-A INPUT" (pacotes de entrada) e "-i eth0" (recebidos na interface eth0), seguidos da regra "-j ACCEPT", que diz que os pacotes devem ser aceitos sem checagem adicional. No se esquea de substituir o "eth0" pela interface de rede local correta, caso diferente. Continuando, a linha "iptables -A INPUT -p tcp --dport 22 -j ACCEPT" abre a porta 22, usada pelo SSH para conexes externas, permitindo que voc possa administrar o servidor remotamente. Voc pode abrir mais portas simplesmente adicionando mais linhas, com as portas desejadas. Concluindo, temos a linha "iptables -A INPUT -p tcp --syn -j DROP", que faz o trabalho pesado, bloqueando tentativas de conexo provenientes da Internet. Depois de testar o compartilhamento, falta fazer com que os comandos sejam executados durante o boot, tornando a configurao permanente. A forma mais simples de fazer isso colocar os comandos no arquivo "/etc/rc.local", um script prprio para a tarefa, que est disponvel tanto em distribuies derivadas do Debian quanto em distribuies da linhagem do Red Hat. Um exemplo de arquivo completo, incluindo os comandos para ativar o firewall seria: #!/bin/sh # /etc/rc.local modprobe iptable_nat echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE iptables -A INPUT -p icmp --icmp-type echo-request -j DROP echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter iptables -A INPUT -m state --state INVALID -j DROP iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth0 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --syn -j DROP

Esta receita genrica, deve funcionar em qualquer distribuio. Lembre-se de substituir "eth1" pela interface de internet e o "eth0" pela interface de rede local, caso diferentes. Uma segunda opo, mais elegante, porm mais complicada, criar um servio de sistema, que pode ser ativado e desativado. Neste caso, crie o arquivo de texto "/etc/init.d/compartilhar". Dentro dele vo as linhas a seguir: #!/bin/bash # Interface da Internet: ifinternet="eth1" # Interface da rede local iflocal="eth0" iniciar(){ modprobe iptable_nat echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o $ifinternet -j MASQUERADE iptables -A INPUT -p icmp --icmp-type echo-request -j DROP echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter iptables -A INPUT -m state --state INVALID -j DROP iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i $iflocal -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --syn -j DROP } parar(){ iptables -F iptables -F -t nat } case "$1" in "start") iniciar ;; "stop") parar ;; "restart") parar; iniciar ;; *) echo "Use os parmetros start ou stop" esac Este um shell script que aceita trs funes: start, stop e restart, executando dentro de cada uma os comandos que compartilham e param o compartilhamento da conexo. Esta estrutura similar usada nos demais scripts de inicializao

do sistema, como os do Apache, Samba, Squid e outros servios. Veja que em vez de especificar as interfaces de internet e de rede local dentro dos comandos, passei a usar duas variveis no incio do script, que facilitam a configurao e tornam o script mais elegante. Quando precisar usar o script em outra mquina, onde as interfaces sejam diferentes, voc precisa apenas se lembrar de alterar as duas variveis. Note tambm que os comandos a partir do "iptables -A INPUT -p icmp --icmptype echo-request -j DROP" correspondem s protees e ao firewall e podem ser removidos caso desejado. Para usar o script, transforme-o em um arquivo executvel, usando o comando: # chmod +x /etc/init.d/compartilhar A partir da, voc pode iniciar e parar o compartilhamento usando os comandos: # /etc/init.d/compartilhar start # /etc/init.d/compartilhar stop Para que o script seja executado durante o boot, voc pode adicionar o comando "/etc/init.d/compartilhar start" no arquivo "/etc/rc.local", em vez de colocar os comandos diretamente, como fizemos no exemplo anterior. Outra opo (mais elegante) criar um link para ele dentro da pasta "/etc/rc5.d", o que tambm faz com que ele seja executado durante o boot: # cd /etc/rc5.d # ln -s ../init.d/compartilhar S21compartilhar Como vimos no primeiro captulo, o "S" indica que o script deve ser executado com o parmetro "start" e o "21" indica a ordem em que deve ser executado durante o boot, em relao aos outros servios. A ordem de execuo dos servios muda de distribuio para distribuio, mas nessa posio garantimos que ele ser executado depois da ativao das interfaces de rede e de outros servios essenciais. Se voc um administrador paranico, verifique a configurao dos servios na distribuio em uso e altere a ordem de inicializao do script de firewall, de forma que ele seja carregado antes de qualquer outro servio que aceite conexes, como o Samba ou o Apache. Com isso voc garante que o firewall ser carregado primeiro e no fica com seu servidor

vulnervel nem mesmo por um curto espao de tempo durante o boot. Isso nos leva a uma terceira opo para salvar a configurao, utilizando os prprios arquivos de inicializao do sistema. Ela a mais "correta" do ponto de vista tcnico, embora menos flexvel. Nesse caso, a configurao seria feita em trs passos: A primeira parada seria o arquivo "/etc/modules", onde so listados os mdulos carregados pelo sistema durante o boot. Nele seria adicionada a linha "iptables_nat", ativando o carregamento do mdulo. Em seguida, voc adicionaria (ou descomentaria) a linha "net.ipv4.conf.default.forwarding=1" no arquivo "/etc/sysctl.conf", para ativar o roteamento de pacotes, tornando permanente o comando "echo 1 > /proc/sys/net/ipv4/ip_forward". Finalmente, depois de executar o comando "iptables -t nat -A POSTROUTING -o $placa -j MASQUERADE", que efetivamente ativa o compartilhamento, voc usaria o comando "/etc/init.d/iptables save active" (nas derivadas do Debian) ou "service iptables save" (nas derivadas do Red Hat) para salvar regra e fazer com que ela passe a ser reativada durante o boot.

Compartilhar usando uma nica placa de rede


Se voc est usando um notebook ou um barebone, com uma placa onboard e sem slots de expanso, existe a possibilidade de compartilhar a conexo usando uma nica placa de rede, criando um alias (apelido) para a placa principal. Normalmente, a topologia para compartilhar a conexo ligar o modem ADSL (ou cable modem) na placa eth0 do servidor, conectar a placa eth1 do mesmo servidor ao switch da rede, juntamente com as demais estaes. Ao compartilhar usando uma nica placa, todo mundo passa a ser conectado diretamente ao switch, inclusive o modem. O servidor configurado para ter duas placas de rede "lgicas", uma para se conectar na internet e outra para a rede local:

Uma dica que os modems ADSL geralmente utilizam um cabo de rede cross-over, j que so feitos para serem conectados diretamente a um PC e no ao hub. Nesses casos, voc precisa ligar o modem na porta up-link do hub. Note que isso no necessrio ao usar um switch ou hub-switch, pois eles so capazes de detectar o cabo cruzado e corrigir o sinal via software. Para ativar o compartilhamento, o primeiro passo se conectar normalmente internet no servidor, utilizando as configuraes de praxe. A partir do momento em que ele estiver acessando, crie o alias para a placa de rede "lgica" que o conectar aos micros da rede local, usando o comando: # ifconfig eth0:1 192.168.1.1/24 Isso far com que o servidor passe a se comportar como se tivesse duas placas de rede, uma ligada ao modem ADSL e outra ligada rede local, respondendo no endereo 192.168.1.1 (substitua por um endereo dentro da faixa usada na sua rede local). O "/24" indica a configurao da mscara de sub-rede no padro CIDR, equivale a digitar "255.255.255.0". Compartilhe a conexo da forma usual, configure os clientes da rede e eles j sero capazes de navegar. Lembre-se de que um alias para a placa de rede no o mesmo que uma placa de rede fsica espetada na placa-me. Por isso, o utilitrio para compartilhar a conexo includo na sua distribuio pode ter problemas para trabalhar desta forma. Se por acaso ele falhar, use os quatro comandos para compartilhar diretamente atravs do Iptables que j vimos. Compartilhar a conexo usando uma nica placa de rede tambm relaxa bastante a segurana da rede. Embora o modem ADSL fique conectado diretamente ao switch da rede, ningum na internet ser capaz de enxergar os micros da rede

local, pois eles utilizaro uma faixa de IPs invlida, como 192.168.1.x ou 10.0.0.x. Voc ainda pode adicionar um firewall "fecha tudo" no servidor, para que ele no responda a pings, feche todas as portas, etc. O problema que com o modem ADSL ligado diretamente ao hub, algum que consiga obter acesso configurao do modem poderia ganhar acesso aos micros da rede local atravs dele. Os modems ADSL no so apenas dispositivos burros que fazem a converso analgico/digital, eles possuem vrios recursos para rotear pacotes, criar vrios tipos de filtros e, em muitos casos, at mesmo tneis VPN. Por terem tantos recursos, sempre existe a possibilidade de surgirem bugs diversos de segurana. Pense no modem ADSL como um PC vulnervel, que nunca recebe atualizaes de segurana. Usando duas placas de rede ainda seria preciso passar pelo servidor de compartilhamento, que pode ser protegido com um bom firewall. Ao conectar o modem diretamente ao hub, esta linha de proteo perdida.

Configurando um servidor DHCP


Hoje em dia, quase todas as redes utilizam algum tipo de servidor DHCP. Em geral, eles so ativados automaticamente ao compartilhar a conexo ou junto com algum outro servio, de forma que voc acaba no aprendendo muita coisa sobre a sua configurao. De um modo geral, o trabalho de um servidor DHCP bastante simples. Ele responde aos pacotes de broadcast das estaes, enviando um pacote com um dos endereos IP disponveis e os demais dados da rede. Os pacotes de broadcast so endereados ao endereo "255.255.255.255" e so retransmitidos pelo switch da rede para todas as portas, diferente dos pacotes endereados a um endereo especfico, que so transmitidos apenas na porta relacionada a ele. Periodicamente o servidor DHCP verifica se as estaes ainda esto l, exigindo uma renovao do "aluguel" do endereo IP (opo "lease time"). Isso permite que os endereos IP sejam gastos apenas com quem realmente estiver online, evitando que os endereos disponveis se esgotem. O servidor DHCP mais usado no Linux o ISC DHCP, desenvolvido pela Internet Systems Consortium, uma organizao sem fins lucrativos dedicada a desenvolver servios

de infra-estrutura usados na Internet, incluindo o Bind e o NTPD. Caso esteja curioso, a pgina com o cdigo fonte a: http://www.isc.org/sw/dhcp/. Nas distribuies derivadas do Debian, o pacote correspondente ao servidor DHCP se chama "dhcp3-server" e pode ser instalado via apt-get: # apt-get install dhcp3-server Com o pacote instalado, voc pode ativar e desativar o servio usando os comandos: # /etc/init.d/dhcp3-server start # /etc/init.d/dhcp3-server stop Como voc pode imaginar, o "3" corresponde verso do software. Eventualmente ele ser substitudo pelo "dhcp4server", o que resultar tambm na mudana do nome da pasta onde fica o arquivo e do script de inicializao referente ao servio. No Fedora e no CentOS, o pacote se chama simplesmente "dhcp" e pode ser instalado usando o yum: # yum install dhcp Embora o pacote se chame apenas "dhcp", o script referente ao servio se chama "dhcpd", de forma que os comandos para iniciar e parar o servio so: # service dhcpd start # service dhcpd stop Diferente do Debian, o servio no ser configurado para ser inicializado durante o boot depois de instalado. Voc precisa ativ-lo manualmente usando o comando "chkconfig": # chkconfig dhcpd on O arquivo de configurao o "dhcpd.conf". Nas distribuies derivadas do Debian, o caminho completo para ele "/etc/dhcp3/dhcpd.conf", enquanto no Fedora e no CentOS apenas "/etc/dhcpd.conf", ou seja, um diretrio acima. Apesar dessas diferenas estticas, o que interessa mesmo a configurao do arquivo e esta sim igual, independentemente da distribuio. Este um exemplo de arquivo de configurao bsico: # /etc/dhcp3/dhcpd.conf

ddns-update-style none; default-lease-time 600; max-lease-time 7200; authoritative; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.199; option routers 192.168.1.1; option domain-name-servers 208.67.222.222,208.67.220.220; option broadcast-address 192.168.1.255; } A opo " default-lease-time" controla o tempo de renovao dos endereos IP. O "600" indica que o servidor verifica a cada dez minutos se as estaes ainda esto ativas. Se voc tiver mais endereos IP do que mquinas, os endereos IP das estaes raramente vo precisar mudar. Mas, no caso de uma rede congestionada, o "max-lease-time" determina o tempo mximo que uma estao pode usar um determinado endereo IP. Isso foi planejado para ambientes onde haja escassez de endereos IP, como, por exemplo, em um provedor de acesso, onde sempre existem mais clientes do que endereos IP disponveis e se trabalha contando que nem todos vo ficar conectados simultaneamente. Em condies normais, essas duas opes no so muito importantes. O que interessa mesmo o bloco que vai logo abaixo, onde ficam as configuraes da rede. A opo "range" determina a faixa de endereos IP que ser usada pelo servidor. Se voc utiliza a faixa de endereos 192.168.1.1 at 192.168.1.254, por exemplo, pode reservar os endereos de 192.168.1.1 a 192.168.1.100 para estaes configuradas com IP fixo e usar os demais para o DHCP, ou ento reservar uma faixa especfica para ele, de 192.168.1.101 a 192.168.1.201, por exemplo. O importante usar faixas separadas para o DHCP e os micros configurados com IP fixo. Na "option routers" vai o endereo do default gateway da rede, ou seja, o endereo do servidor que est compartilhando a conexo. No necessrio que o mesmo micro que est compartilhando a conexo rode tambm o servidor DHCP. Pode ser, por exemplo, que na sua rede o gateway seja o prprio modem ADSL que est compartilhando a conexo e o DHCP seja um dos PCs. A opo "option domain-name-servers" contm os servidores DNS que sero usados pelas estaes. Ao usar dois ou mais endereos, eles devem ser separados por vrgula, sem

espaos. Em geral, voc vai usar os prprios endereos DNS do provedor, a menos que voc configure um servidor DNS interno na sua rede (que pode ser instalado no prprio micro que est compartilhando a conexo e rodando o DHCP). Estes servios consomem poucos recursos da mquina. O servidor DNS mais usado no Linux o Bind. Nas distribuies derivadas do Debian voc pode instal-lo com um "apt-get install bind". O servidor DNS pode ser configurado para implementar um sistema de domnios e subdomnios na sua rede, mas o uso mais comum simplesmente fazer um "cache", onde o servidor DNS simplesmente repassa as requisies para um dos 13 root servers da internet e vai armazenando os endereos que j foram acessados. Mais adiante teremos um captulo inteiro dedicado a ele.

Voc pode substituir o arquivo de configurao padro por este modelo, ou edit-lo conforme a necessidade. Ao fazer qualquer alterao no arquivo, voc deve reiniciar o servidor DHCP usando o comando: # /etc/init.d/dhcp3-server restart ou: # service dhcpd restart Com o servidor DHCP configurado, voc pode testar a configurao em um dos clientes Linux, configurando a rede usando o "dhclient", seguido da interface a ser configurada. Ele mostra toda a negociao entre o servidor e o cliente, o que permite que voc verifique se o servidor est usando a configurao definida por voc: # dhclient eth0
Internet Systems Consortium DHCP Client V3.0.4 Copyright 2004-2006 Internet Systems Consortium. All rights reserved. For info, please visit http://www.isc.org/sw/dhcp/ Listening on LPF/eth1/00:15:00:4b:68:db Sending on LPF/eth1/00:15:00:4b:68:db Sending on Socket/fallback DHCPREQUEST on eth1 to 255.255.255.255 port 67 DHCPACK from 192.168.1.1 bound to 192.168.1.199 -- renewal in 245 seconds.

Como voc pode ver, o cliente deve receber a resposta a partir do endereo IP do servidor rodando o servidor DHCP e ser configurado com um endereo dentro da faixa definida por voc.

Uma observao importante que sempre que configurar um servidor com duas placas de rede, voc deve configurar o servidor DHCP para escutar apenas na placa da rede local. No Debian, esta configurao vai no arquivo "/etc/default/dhcp3-server". Procure pela linha: INTERFACES="" ... e adicione a placa que o servidor DHCP deve escutar, como em: INTERFACES="eth0" Para que a configurao entre em vigor, basta reiniciar o servio novamente.

DHCP com IP fixo


Mais uma opo interessante no servidor DHCP a possibilidade de relacionar um determinado endereo IP com o endereo MAC de certo micro da rede. Isso faz com que ele sempre obtenha o mesmo endereo a partir do servidor DHCP, como se tivesse sido configurado para usar IP fixo. Esse recurso usado em redes de terminais leves, para que o servidor "reconhea" os terminais e possa enviar a configurao adequada a cada um, mas pode ser usado tambm em outras situaes, como em uma pequena rede, onde alguns micros compartilham impressoras e arquivos e por isso no podem ficar mudando de endereo IP a cada reboot. Configurar o servidor DHCP para dar a eles sempre o mesmo IP pode ser mais prtico que configur-los para usar IP fixo manualmente, pois eles continuaro recebendo o mesmo IP mesmo que voc reinstale o sistema (pois, apesar da mudana de sistema operacional, a placa de rede continuar a mesma). Veja o caso de quem usa distribuies Linux live-CD, por exemplo. Para usar este recurso, adicione uma seo como esta para cada host no final do arquivo dhcpd.conf, depois de todas as linhas de configurao, mas antes de fechar a chave (}): host m5 { hardware ethernet 00:0F:B0:55:EA:13; fixed-address 192.168.1.211; }

Veja que a seo comea com o nome da mquina, "m5" no exemplo. Em seguida vo, entre chaves, o endereo MAC da placa de rede (que voc pode verificar atravs do comando "ifconfig") e o endereo IP que a estao deve usar. Um exemplo de arquivo completo, incluindo a configurao de IP fixo para duas mquinas seria: ddns-update-style none; default-lease-time 600; max-lease-time 7200; authoritative; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.199; option routers 192.168.1.1; option domain-name-servers 208.67.222.222,208.67.220.220; option broadcast-address 192.168.1.255; host m5 { hardware ethernet 00:0F:B0:55:EA:13; fixed-address 192.168.1.211; } host semprao { hardware ethernet 00:0F:B0:45:BC:17; fixed-address 192.168.1.212; } } No se esquea de reiniciar o servidor DHCP depois de configurar o arquivo para que a nova configurao seja aplicada: # /etc/init.d/dhcp3-server restart Uma pergunta recorrente sobre o uso de servidores DHCP sobre a possibilidade de manter mais de um servidor DHCP ativo. Em situaes normais, voc nunca deve manter mais de um servidor DHCP ativo ao mesmo tempo, principalmente se ambos estiverem configurados para fornecer endereos dentro da mesma faixa. Caso contrrio, comeam a surgir problemas com micros configurados com o mesmo IP (cada um dado por um DHCP diferente) e assim por diante. Entretanto, em algumas situaes, uma configurao com dois servidores DHCP pode funcionar, naturalmente depois de bem testada. O dhcp3-server usado no Linux bastante rpido, por isso (desde que a configurao no seja muito complexa) costuma

responder antes dos servidores DHCP usados nos servidores Windows e na maioria dos modems ADSL, o que pode ser usado a seu favor. Imagine um caso comum: uma rede de 10 ou 20 micros, com um ADSL de 1 megabit, compartilhado pelo prprio modem. Para melhorar o desempenho da rede, voc resolve implantar um servidor com o Squid configurado para trabalhar como um proxy transparente, alm de um servidor DNS prprio e DHCP. Como este "servidor" o seu prprio micro, que precisa ser desligado de vez em quando, voc decide manter a rede da forma que est, com o modem compartilhando a conexo e o seu micro funcionando como um segundo gateway, dentro da rede local. Voc quer que a rede continue funcionando mesmo quando seu micro precisar ser desligado por um certo tempo, por isso mantm o servidor DHCP do modem ativo, junto com o servidor DHCP instalado no seu micro, configurados para fornecerem faixas diferentes de endereos, de forma a minimizar conflitos. No seu caso, o dhcp3-server mais rpido que o DHCP do modem. Por isso, enquanto ele est ligado, os micros da rede local so configurados para acessar atravs dele, passando pelo proxy transparente. Quando ele desligado, o modem ADSL passa a responder as chamadas e os micros passam a ser configurados para acessar diretamente atravs dele ( preciso reconfigurar os clientes via DHCP para que eles obtenham a configurao a partir do modem e passem a utiliz-lo como gateway). A rede continua funcionando mesmo que seu micro seja desconectado definitivamente. Note que isso tecnicamente errado e s funciona em redes pequenas, onde todos os micros so ligados ao mesmo hub ou switch. Quanto maior a rede, mais imprevisvel se torna o comportamento dos servidores DHCP e mais importante tornase manter apenas um ativo.

IPV6
Se voc est chegando agora, o IPV6 a verso atualizada do protocolo IP, que utiliza endereos de 128 bits. Ele surgiu para solucionar o problema da escassez de endereos IP, que vem se tornando um problema cada vez mais grave.

No IPV4 so usados endereos de apenas 32 bits, o que permitem apenas 4 bilhes de combinaes de endereos. Pode parecer bastante, mas a m distribuio dos endereos e peculiaridades do protocolo, como a necessidade de reservar o primeiro e o ltimo endereo de cada faixa, fazem com que o volume de endereos realmente disponveis seja muito menor. Com o crescimento no volume de servidores e de dispositivos conectados web, apenas questo de tempo at que os endereos IPv4 se esgotem definitivamente. Pode demorar, mas uma migrao em massa para o IPV6 vai acontecer mais cedo ou mais tarde. No IPV6 os endereos so escritos usando caracteres em hexa, conjunto que alm dos nmeros de 0 a 9, inclui tambm as letras A, B, C, D, E e F, totalizando 16 caracteres, cada um usado para representar um grupo de 4 bits. Como so utilizados endereos de 128 bits, so necessrios nada menos do que oito quartetos de caracteres em hexa, separados por ":", como em: 2001:bce4:5641:3412:341:45ae:fe32:65. Um atenuante que os endereos IPV6 podem ser abreviados de diversas formas. Em primeiro lugar, todos os zeros esquerda dentro dos quartetos podem ser omitidos. Por exemplo, em vez de escrever "0341", voc pode escrever apenas "341"; em vez de "0001" apenas "1" e, em vez de "0000" apenas "0", sem que o significado seja alterado. por isso que muitos quartetos dentro dos endereos IPV6 podem ter apenas 3, 2 ou mesmo um nico dgito. Os demais so zeros esquerda, que foram omitidos. muito comum que os endereos IPV6 incluam seqncias de nmeros 0, j que atualmente poucos endereos so usados, de forma que os donos preferem simplificar as coisas. Graas a isso, o endereo "2001:bce4:0:0:0:0:0:1" pode ser abreviado para apenas "2001:bce4::1", onde omitimos todo o trecho central "0:0:0:0:0". Assim como no IPV4, os endereos IPV6 so divididos em dois blocos. Os primeiros 64 bits (os 4 primeiros quartetos) identificam a rede, enquanto os ltimos 64 bits identificam o host. No endereo "2001:bce4:0:0:0:0:0:1", por exemplo, temos a rede "2001:bce4:0:0" e o host "0:0:0:0:1" dentro dela. No existem mais mscaras de tamanho varivel como no IPV4. Para simplificar a configurao, a parte do endereo referente ao host definida automaticamente a partir do endereo MAC da placa de rede. Como os endereos MAC possuem apenas 12 dgitos (enquanto no IPV6 a parte do host contm 16 dgitos),

so adicionados os dgitos "ffff" entre o sexto e stimo dgito do endereo. O endereo "00:16:F2:FE:34:E1", por exemplo, viraria ento "0016:f2ff:fffe:34e1". A atribuio de endereos em uma rede IPV6 segue um processo diferente (e at mais simples) do que em uma rede IPV4, onde os endereos so atribudos automaticamente, sem necessidade de utilizar um servidor DHCP especializado. Os roteadores IPV6 enviam constantemente pacotes especiais, chamados "RAs" (router advertisements). Como o nome sugere, estes pacotes divulgam a existncia do roteador e o endereo de rede utilizado por ele (os 64 bits iniciais do endereo). Ao receberem estes pacotes, os clientes geram seus endereos IPV6 automaticamente, combinando os 64 bits do endereo fornecidos pelo roteador com os 64 bits "pessoais", gerados a partir do endereo MAC da placa de rede. Como o endereo MAC s muda quando voc substituiu a placa de rede, o cliente continuar utilizando o mesmo endereo, reboot aps reboot. No Linux, o servio responsvel por enviar os router advertisements o radvd (router-advertising daemon). A configurao bastante simples; comece instalando o pacote, como em: # apt-get install radvd ou: # yum install radvd Em seguida, crie o arquivo "/etc/radvd.conf" especificando a interface de rede local e o prefixo, ou seja, a parte do endereo referente rede, como em: interface eth0 { AdvSendAdvert on; prefix fee::/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; }; Nesse exemplo, estou utilizando o "fee::" como prefixo, que uma faixa de endereos fcil de lembrar. Naturalmente, voc deve utilizar um endereo IPV6 iniciado com o prefixo na configurao do servidor. Para especificar um

endereo manualmente, use o comando "ifconfig interface add endereo", como em: # ifconfig eth0 add fee::0015:f2ff:ffa1:d9cc Para tornar a configurao definitiva, adicione as linhas abaixo no arquivo "/etc/network/interfaces", especificando a interface e o endereo IPV6 utilizado: iface eth0 inet6 static address fee::0015:f2ff:ffa1:d9c netmask 64 Terminada a configurao, reinicie o servio "radvd" e o servidor passar a divulgar o prefixo da rede, permitindo que os clientes configurem seus endereos IPV6 automaticamente, combinando o prefixo da rede com os 16 dgitos gerados a partir do endereo MAC da placa de rede: # /etc/init.d/radvd restart Quase todas as distribuies Linux atuais e tambm o Windows Vista trazem o protocolo IPV6 ativado por padro, de forma que um roteador configurado para enviar os pacotes RA uma boa adio para a sua rede local. O radvd no conflita com dhcp3-server e os hosts da rede podem utilizar endereos IPV4 e IPV6 simultaneamente (sem problema algum), de forma que voc pode simplesmente adicionar o IPV6 sua rede IPV4 j configurada, sem contraindicaes. Dessa forma, voc pode tanto continuar acessando os outros micros da rede utilizando os endereos IPV4 tradicionais quanto atravs dos endereos IPV6.

Configurando um servidor proxy com o Squid


O Squid permite compartilhar a conexo entre vrios micros, servindo como um intermedirio entre eles e a internet. Usar um proxy diferente de simplesmente compartilhar a conexo diretamente, via NAT. Ao compartilhar via NAT, os micros da rede acessam a internet diretamente, sem restries. O servidor apenas repassa as requisies recebidas, como um garoto de recados. O proxy como um burocrata que no se limita a repassar as requisies: ele analisa todo o trfego de

dados, separando o que pode ou no pode passar e guardando informaes para uso posterior. Compartilhar a conexo via NAT mais simples do que usar um proxy como o Squid sob vrios aspectos. Voc compartilha a conexo no servidor, configura os clientes para o utilizarem como gateway e pronto. Ao usar um proxy, alm da configurao da rede, necessrio configurar o navegador e cada outro programa que for acessar a Internet (em cada um dos clientes da rede) para usar o proxy. Esta uma tarefa tediosa e que acaba aumentando bastante seu volume de trabalho, pois toda vez que um micro novo for colocado na rede ou for preciso reinstalar o sistema, ser preciso fazer a configurao novamente. A configurao do proxy muda de navegador para navegador. No Firefox, por exemplo, voc a encontra em "Editar > Preferncias > Avanado > Rede > Configuraes". No IE, a configurao est em "Opes da Internet > Opes > Configuraes da Lan > Usar um servidor Proxy":

Alm do navegador, outros programas podem ser configurados para trabalhar atravs do proxy: clientes de MSN, VoIP e at mesmo programas P2P. As vantagens de usar um proxy so basicamente trs: 1- possvel impor restries de acesso com base no horrio, login, endereo IP da mquina e outras informaes, alm de bloquear pginas com contedo indesejado. por isso que quase todos os softwares de filtro de contedo envolvem o uso de algum tipo de proxy, muitas vezes o prprio Squid (j que, como o software aberto, voc pode inclu-lo dentro de outros aplicativos, desde que respeitando os termos da GPL).

Mais adiante estudaremos sobre a configurao do SquidGuard e do DansGuardian. 2- O proxy funciona como um cache de pginas e arquivos, armazenando informaes j acessadas. Quando algum acessa uma pgina que j foi carregada, o proxy envia os dados que guardou no cache, sem precisar acessar a mesma pgina repetidamente. Isso acaba economizando bastante banda, tornando o acesso mais rpido. Hoje em dia, os sites costumam usar pginas dinmicas, onde o contedo muda a cada visita, mas, mesmo nesses casos, o proxy d uma boa ajuda, pois embora o html seja diferente a cada visita e realmente precise ser baixado de novo, muitos componentes da pgina, como ilustraes, banners e animaes em flash, podem ser aproveitados do cache, diminuindo o tempo total de carregamento.

Dependendo da configurao, o proxy pode apenas acelerar o acesso s pginas ou servir como um verdadeiro cache de arquivos, armazenando atualizaes do Windows Update, downloads diversos e pacotes instalados atravs do apt-get, por exemplo. Em vez de ter que baixar o ltimo Service Pack do Windows ou a ltima atualizao do Firefox nos 10 micros da rede, voc vai precisar baixar apenas no primeiro, pois os outros 9 vo baixar a partir do cache do Squid. 3- Uma terceira vantagem de usar um proxy que ele loga todos os acessos realizados atravs dele. Voc pode visualizar os acessos posteriormente usando o Sarg, um gerador de relatrios que transforma as longas listas de acessos dos logs em arquivos html bem organizados.

Mesmo assim, voc pode estar achando que as vantagens no vo compensar o trabalho de sair configurando micro por micro, programa por programa para usar o proxy, e que mais fcil simplesmente compartilhar via NAT. Entretanto, existe a possibilidade de juntar as vantagens das duas formas de compartilhamento, configurando um proxy transparente como veremos adiante. Ao usar um proxy transparente, voc tem basicamente uma conexo compartilhada via NAT, com a mesma configurao bsica nos clientes. O proxy entra na histria como um adicional. Uma regra de firewall envia as requisies recebidas na porta 80 do servidor para o proxy, que se encarrega de responder aos clientes. Toda a navegao passa a ser feita automaticamente atravs do proxy (incluindo o cache dos arquivos do Windows update, downloads diversos e os pacotes instalados atravs do apt-get), sem que voc precise fazer nenhuma configurao adicional nos clientes.

Instalando o Squid
O Squid composto de um nico pacote, por isso a instalao simples. Instale o pacote "squid" usando o apt-get, yum ou urpmi, como em: # apt-get install squid Toda a configurao do Squid feita em um nico arquivo, o "/etc/squid/squid.conf". Caso voc esteja usando uma verso antiga do Squid, como a includa no Debian Woody, por

exemplo, o arquivo pode ser o "/etc/squid.conf". Apesar da mudana na localizao do arquivo de configurao, as opes descritas aqui vo funcionar sem maiores problemas. O arquivo original, instalado junto com o pacote, realmente enorme, contm comentrios e exemplos para quase todas as opes disponveis. Ele pode ser uma leitura interessante se voc j tem uma boa familiaridade com o Squid e quer aprender mais sobre cada opo, mas, de incio, melhor comear com um arquivo de configurao mais simples, apenas com as opes mais usadas. Em geral, cada distribuio inclui uma ferramenta diferente para a configurao do proxy. Uma das mais usadas o Webmin, disponvel em vrias distribuies. A funo dessas ferramentas disponibilizar as opes atravs de uma interface grfica e gerar o arquivo de configurao com base nas opes escolhidas. Em alguns casos, essas ferramentas ajudam bastante, mas, como elas mudam de distribuio para distribuio, acaba sendo mais produtivo aprender a trabalhar direto no arquivo de configurao, que, afinal, no to complicado assim. Assim como em outros tpicos do livro, vamos aprender a configurar o Squid "no muque", sem depender de utilitrios de configurao. Comece renomeando o arquivo padro, de forma a conserv-lo para fins de pesquisa: # mv /etc/squid/squid.conf /etc/squid/squid.conf.orig Em seguida, crie um novo arquivo "/etc/squid/squid.conf", contendo apenas as quatro linhas abaixo: http_port 3128 visible_hostname gdh acl all src 0.0.0.0/0.0.0.0 http_access allow all Estas linhas so o suficiente para que o Squid "funcione". Como viu, aquele arquivo de configurao gigante tem mais uma funo informativa, citando e explicando as centenas de opes disponveis. Apenas um punhado das opes so realmente necessrias, pois, ao omit-las, o Squid simplesmente utiliza os valores default. por isso que acaba sendo mais simples comear com um arquivo vazio e ir inserindo apenas as opes que voc conhece e deseja alterar. As quatro linhas dizem o seguinte:

http_port 3128: A porta onde o servidor Squid vai ficar disponvel. A porta 3128 o default, mas muitos administradores preferem utilizar a porta 8080, que soa mais familiar a muitos usurios. visible_hostname gdh: O nome do servidor, o mesmo que foi definido na configurao da rede. Ao usar os modelos desse captulo, no se esquea de substituir o "gdh" pelo nome correto do seu servidor, como informado pelo comando "hostname". acl all src 0.0.0.0/0.0.0.0 e http_access allow all: Estas duas linhas criam uma acl (uma poltica de acesso) chamada "all" (todos), incluindo todos os endereos IP possveis. Ela permite que qualquer um dentro desta lista use o proxy, ou seja, permite que qualquer um use o proxy, sem limitaes. Para testar a configurao, reinicie o servidor Squid com o comando: # /etc/init.d/squid restart Se estiver no CentOS, Fedora ou Mandriva, pode utilizar o comando "service", que economiza alguns toques no teclado: # service squid restart No Slackware, o comando ser "/etc/rc.d/rc.squid restart", seguindo a lgica do sistema em colocar os scripts referentes aos servios na pasta /etc/rc.d/ e inicializ-los automaticamente durante o boot, desde que marcada a permisso de execuo. Para testar o proxy, configure um navegador (no prprio servidor) para usar o proxy, atravs do endereo 127.0.0.1 (o localhost), porta 3128. Se no houver nenhum firewall pelo caminho, voc conseguir acessar o proxy tambm atravs dos outros micros da rede local, basta configurar os navegadores para usarem o proxy, fornecendo o endereo do servidor na rede local. Caso necessrio, abra a porta 3128 na configurao do firewall, para que o Squid possa receber as conexes. Um exemplo de regra manual do Iptables para abrir a porta do Squid apenas para a rede local (a interface eth0 no exemplo) : iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT

Criando uma configurao bsica


O problema com o modelo de configurao minimalista que acabamos de ver que com apenas estas quatro linhas o proxy ficar muito aberto. Se voc deixar o servidor proxy ativo no prprio servidor que compartilha a conexo e no houver nenhum firewall ativo, qualquer um na internet poderia usar o seu proxy, o que naturalmente no desejado. O proxy deve ficar ativo apenas para a rede local. Vamos gerar, ento, um arquivo mais completo, permitindo que apenas os micros da rede local possam usar o proxy e definindo mais algumas polticas de segurana. Neste segundo exemplo j aproveitei algumas linhas do arquivo original, criando regras que permitem o acesso a apenas algumas portas especficas e no mais a qualquer coisa, como na configurao anterior: http_port 3128 visible_hostname gdh acl acl acl acl acl acl acl acl acl acl acl acl acl acl acl acl acl all src 0.0.0.0/0.0.0.0 manager proto cache_object localhost src 127.0.0.1/255.255.255.255 SSL_ports port 443 563 Safe_ports port 80 # http Safe_ports port 21 # ftp Safe_ports port 443 563 # https, snews Safe_ports port 70 # gopher Safe_ports port 210 # wais Safe_ports port 280 # http-mgmt Safe_ports port 488 # gss-http Safe_ports port 591 # filemaker Safe_ports port 777 # multiling http Safe_ports port 901 # swat Safe_ports port 1025-65535 # portas altas purge method PURGE CONNECT method CONNECT allow manager localhost deny manager allow purge localhost deny purge deny !Safe_ports deny CONNECT !SSL_ports

http_access http_access http_access http_access http_access http_access

acl redelocal src 192.168.1.0/24 http_access allow localhost http_access allow redelocal

http_access deny all As acl's "SSL_ports" e a "Safe_ports" so as responsveis por limitar as portas que podem ser usadas atravs do proxy. Neste exemplo, usei a configurao-modelo indicada na documentao do Squid, que prev o uso de diversos protocolos conhecidos e tambm o uso de portas altas, acima da 1024. Ela to extensa porque cada porta especificada em uma linha diferente. Podemos simplificar isso agrupando as portas na mesma linha, o que resulta em um arquivo de configurao muito menor, mas que faz exatamente a mesma coisa: http_port 3128 visible_hostname gdh 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 21 80 443 563 70 210 280 488 59 777 901 1025-65535 acl purge method PURGE acl CONNECT method CONNECT http_access http_access http_access http_access http_access http_access allow manager localhost deny manager allow purge localhost deny purge deny !Safe_ports deny CONNECT !SSL_ports

acl redelocal src 192.168.1.0/24 http_access allow localhost http_access allow redelocal http_access deny all Veja que em ambos os exemplos adicionei duas novas acl's. A acl "localhost" contm o endereo 127.0.0.1, que voc utiliza ao usar o proxy localmente (ao navegar usando o prprio servidor), e a acl "rede local", que inclui os demais micros da rede local. Substitua o "192.168.1.0/24" pela faixa de endereos IP e a mscara de sub-rede usada na sua rede local (o 24 equivale mascara 255.255.255.0). Depois de criadas as duas polticas de acesso, vo duas linhas no final do arquivo que especificam que os micros que se enquadrarem nelas podero usar o proxy:

http_access allow localhost http_access allow redelocal Lembra-se da acl "all", que contm todo mundo? Vamos us-la para especificar que os clientes que no se enquadrarem nas duas regras acima (ou seja, clientes no-autorizados, vindos da Internet) no podero usar o proxy: http_access deny all Esta linha deve ir no final do arquivo, depois das outras duas. A ordem importante, pois o Squid interpreta as regras na ordem em que so colocadas no arquivo. Se voc permite que o micro X acesse o proxy, ele acessa, mesmo que uma regra mais abaixo diga que no. Se voc adicionasse algo como: acl redelocal src 192.168.1.0/24 http_access allow redelocal http_access deny redelocal ... os micros da rede local continuariam acessando, pois a regra que permite vem antes da que probe. Existem alguns casos de sites que no funcionam bem quando acessados atravs de proxies, um exemplo comum o "Conectividade Social", da Caixa. Normalmente nesses casos o problema est em algum recurso fora do padro usado pelo sistema do site e no no servidor proxy propriamente dito, mas, de qualquer forma, voc pode solucionar o problema de forma muito simples orientando o servidor proxy a repassar as requisies destinadas ao site diretamente. Para isso, adicionamos uma ACL na configurao, especificando a URL do site e usando a opo "always_direct": acl site dstdomain siteproblematico.com always_direct allow site Esta regra deve vir antes da regra que libera os acessos provenientes da rede local, como em: acl site dstdomain siteproblematico.com always_direct allow site acl redelocal src 192.168.1.0/24 http_access allow localhost http_access allow redelocal http_access deny all

Depois de configurar o arquivo, no se esquea de reiniciar o servio para que a configurao entre em vigor: # /etc/init.d/squid restart Nesse ponto o seu proxy j est completamente funcional. Voc pode comear a configurar os navegadores nos PCs da rede local para utiliz-lo e acompanhar o desempenho da rede. Agora que j vimos o arroz com feijo, vamos aos detalhes mais avanados da configurao:

Configurando o cache de pginas e arquivos


Uma das configuraes mais importantes com relao ao desempenho do proxy e otimizao do trfego da rede a configurao dos caches, onde o Squid guarda as pginas e arquivos j acessados de forma a fornec-los rapidamente quando solicitados novamente. O Squid trabalha com dois tipos de cache: 1- Cache rpido, feito usando parte da memria RAM do servidor; 2- Cache um pouco mais lento porm maior, feito no HD. O cache na memria RAM ideal para armazenar arquivos pequenos, como pginas html e imagens, que sero entregues instantaneamente para os clientes. O cache no HD usado para armazenar arquivos maiores, como downloads, arquivos do Windows Update e pacotes baixados via apt-get. O cache na memria RAM sempre relativamente pequeno, j que o volume de memria RAM no servidor sempre muito menor do que o espao em disco. O cache no HD pode ser mais generoso, afinal a idia que ele guarde todo tipo de arquivos, principalmente os downloads grandes, que demoram para serem baixados. A configurao do cache feita adicionando mais algumas linhas no arquivo de configurao: 1- A configurao da quantidade de memria RAM dedicada ao cache feita adicionando a opo "cache_mem", que contm a quantidade de memria que ser dedicada ao cache. Para reservar 64 MB, por exemplo, a linha ficaria: cache_mem 64 MB

Como regra geral, voc pode reservar 32 ou 64 MB para o cache em um servidor no dedicado, que atende a apenas alguns micros (como o servidor de uma pequena rede local) e at 1/3 da memria RAM total em um servidor proxy dedicado, que atende a um volume maior de usurios (veja mais detalhes a seguir). Em um servidor com 1 GB de RAM, por exemplo, voc poderia reservar at 350 MB para o cache na memria. 2- Logo depois vai a opo "maximum_object_size_in_memory", que determina o tamanho mximo dos arquivos que sero guardados no cache feito na memria RAM (o resto vai para o cache feito no HD). O cache na memria muito mais rpido, mas como a quantidade de RAM muito limitada, melhor deix-la disponvel para pginas web, figuras e arquivos pequenos em geral. Para que o cache na memria armazene arquivos de at 64 KB, por exemplo, adicione a linha: maximum_object_size_in_memory 64 KB 3- Em seguida vem a configurao do cache em disco, que armazenar o grosso dos arquivos. Por default, o mximo so downloads de at 16 MB e o mnimo zero, o que faz com que mesmo imagens e arquivos pequenos sejam armazenados no cache. Quase sempre mais rpido ler a partir do cache do que baixar de novo da web, mesmo que o arquivo seja pequeno. Se voc faz download de arquivos grandes com freqncia e deseja que eles fiquem armazenados no cache, aumente o valor da opo "maximum_object_size". Isso especialmente til para quem precisa baixar muitos arquivos atravs do aptget ou Windows Update em muitos micros da rede. Se voc quiser que o cache armazene arquivos de at 512 MB, por exemplo, as linhas ficariam: maximum_object_size 512 MB minimum_object_size 0 KB Voc pode definir ainda a percentagem de uso do cache que far o Squid comear a descartar os arquivos mais antigos. Por padro, sempre que o cache atingir 95% de uso, sero descartados arquivos antigos at que a percentagem volte para um nmero abaixo de 90%: cache_swap_low 90 cache_swap_high 95 4- Depois vem a opo "cache_dir", que composta por quatro valores. O primeiro, (/var/spool/squid) indica a pasta onde o

Squid armazena os arquivos do cache, enquanto o segundo (2048) indica a quantidade de espao no HD (em MB) que ser usada para o cache. Aumente o valor se voc tem muito espao no HD do servidor e quer que o Squid guarde os downloads por muito tempo. Continuando, os nmeros 16 e 256 indicam a quantidade de subpastas que sero criadas dentro do diretrio. Por padro, temos 16 pastas com 256 subpastas cada uma. O nmero "ideal" de pastas e subpastas para um melhor desempenho varia de acordo com o sistema de arquivos usado, mas esta configurao padro adequada para a maioria das situaes. Combinando as quatro opes, a linha ficaria: cache_dir ufs /var/spool/squid 2048 16 256 Assim como na maioria das opes do Squid, se a linha "cache_dir" for omitida, usada a configurao default para a opo, que usar o diretrio "/var/spool/squid" e fazer um cache em disco de 100 MB. 5- Voc pode definir ainda o arquivo onde so guardados os logs de acesso do Squid. Por padro, o Squid guarda o log de acesso no arquivo "/var/log/squid/access.log". Este arquivo usado pelo Sarg para gerar as pginas com as estatsticas de acesso: cache_access_log /var/log/squid/access.log Mais uma configurao que voc pode querer alterar o padro de atualizao do cache. Estas trs linhas precisam sempre ser usadas em conjunto, ou seja, voc pode alter-las, mas sempre as trs precisam estar presentes no arquivo. Eliminando uma, o Squid ignora as outras duas e usa o default. Os nmeros indicam o intervalo (em minutos) que o Squid ir aguardar antes de verificar se um item do cache (uma pgina, por exemplo) foi atualizado, para cada um dos trs protocolos. O primeiro nmero (o 15) indica que o Squid verificar (a cada acesso) se as pginas e arquivos com mais de 15 minutos foram atualizados. Ele faz uma verificao rpida, checando o tamanho do arquivo e, se o arquivo no mudou, ele continua fornecendo aos clientes o arquivo que est no cache, economizando banda da conexo O terceiro nmero (o 2280, equivalente a dois dias) indica o tempo mximo, depois do qual o objeto sempre verificado. Alm do http e ftp, o Squid suporta o protocolo gopher, que era

muito usado nos primrdios da internet para localizar documentos de texto, mas perdeu a relevncia hoje em dia: refresh_pattern ^ftp: 15 20% 2280 refresh_pattern ^gopher: 15 0% 2280 refresh_pattern . 15 20% 2280 Depois de adicionar todas estas configuraes, o nosso arquivo de configurao j ficar bem maior: http_port 3128 visible_hostname gdh cache_mem 64 MB maximum_object_size_in_memory 64 KB maximum_object_size 512 MB minimum_object_size 0 KB cache_swap_low 90 cache_swap_high 95 cache_dir ufs /var/spool/squid 2048 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 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 21 80 443 563 70 210 280 488 59 777 901 1025-65535 acl purge method PURGE acl CONNECT method CONNECT http_access http_access http_access http_access http_access http_access allow manager localhost deny manager allow purge localhost deny purge deny !Safe_ports deny CONNECT !SSL_ports

acl redelocal src 192.168.1.0/24 http_access allow localhost http_access allow redelocal http_access deny all Aqui j temos uma configurao mais completa, incluindo um conjunto de regras de segurana (para que o proxy seja usado apenas a partir da rede local) e a configurao do cache. Esta

uma configurao adequada para uso em uma rede domstica ou em um pequeno escritrio. A acl "Safe_ports", alimentada com um conjunto de portas (80, 21 e outras) usada para restringir as portas de sada do servidor proxy, evitando, por exemplo, que ele seja usado para enviar e-mails (porta 25). Isso evita um conjunto de abusos comuns e uma configurao importante em qualquer servidor que precise ser configurado de forma minimamente segura. Naturalmente, voc pode adicionar outras portas lista, conforme necessrio. Em uma rede maior, voc provavelmente iria querer adicionar algumas limitaes de acesso, limitando o acesso a algumas pginas, criando um sistema de autenticao ou limitando o uso com base no horrio, entre outras possibilidades. Vamos a elas.

Adicionando restries de acesso


Em um ambiente de trabalho, a idia que os funcionrios usem a internet para comunicao, pesquisa e outras funes relacionadas ao que esto fazendo. Muitas empresas permitem que sejam acessados os e-mails pessoais e coisas do gnero, mas sempre at um certo limite. Seu chefe no vai gostar se comearem a passar a maior parte do tempo no Orkut, por exemplo. Chegamos ento s regras para restrio de acesso, que so uma necessidade em muitas redes.

Bloqueando por domnios ou palavras


O Squid permite bloquear sites indesejados de forma bastante simples usando o parmetro "dstdomain". Ele permite que voc crie acl's contendo endereos de sites que devem ser bloqueados (ou permitidos). Isso feito em duas etapas. Primeiro voc cria a acl, especificando os endereos e, em seguida, usa o parmetro "http_access" para bloquear ou liberar o acesso a eles. Veja um exemplo: acl bloqueados dstdomain orkut.com playboy.abril.com.br http_access deny bloqueados

Aqui eu criei uma acl chamada "bloqueados", que contm os endereos "orkut.com" e "playboy.abril.com.br" e em seguida usei o parmetro "http_access deny" para bloquear o acesso a eles. Voc pode incluir diversas acls diferentes dentro da configurao do Squid, desde que use um nome diferente para cada uma. De certa forma, elas so similares s variveis, que usamos ao programar em qualquer linguagem. Ao aplicar a regra, o Squid faz a resoluo do domnio e passa a bloquear todas sub-pginas que estiverem hospedadas dentro dele. Existe uma ressalva: muitos sites podem ser acessados tanto com o "www" quanto sem. Se os dois estiverem hospedados em servidores diferentes, o Squid considerar que tratam-se de dois sites diferentes, de forma que ao bloquear apenas o "www.orkut.com" os usurios ainda conseguiro acessar o site atravs do "orkut.com" e vice-versa. Nesses casos, para bloquear ambos, preciso incluir as duas possibilidades dentro da regra, como em: acl bloqueados dstdomain orkut.com www.orkut.com playboy.abril.com.br http_access deny bloqueados Voc pode incluir quantos domnios quiser dentro da acl, basta separ-los por espao e deixar tudo na mesma linha. Se a regra comear a ficar muito grande, voc tem a opo de transferir as entradas para um arquivo. Nesse caso, crie um arquivo de texto simples, com todos os domnios desejados (um por linha), como em: orkut.com www.orkut.com playboy.abril.com.br www.myspace.com ... e use a regra abaixo na configurao do Squid para que ele seja processado e os domnios sejam includos na acl. No exemplo, estou usando o arquivo "/etc/squid/bloqueados": acl bloqueados url_regex -i "/etc/squid/bloqueados" http_access deny bloqueados Naturalmente, no seria vivel tentar bloquear manualmente todos os sites pornogrficos, chats, comunidades online, e todos os outros tipos de sites que no so teis em um ambiente de trabalho. A idia seria logar os acessos (com a ajuda do Sarg, que veremos mais adiante) e bloquear os sites mais acessados, conforme tomar conhecimento deles. sempre

uma corrida de gato e rato, mas, em se tratando de pessoas adultas, no h nada que uma boa conversa com o chefe no possa resolver. ;) De qualquer forma, em alguns ambientes pode ser mais fcil bloquear inicialmente o acesso a todos os sites e ir abrindo o acesso a apenas alguns sites especficos, conforme a necessidade. Neste caso, invertemos a lgica da regra. Criamos um arquivo com sites permitidos, adicionamos a regra que permite o acesso a eles e em seguida bloqueamos o acesso a todos os demais, como neste exemplo: acl permitidos url_regex -i "/etc/squid/permitidos" http_access allow permitidos http_access deny all Nas verses recentes do Squid, ao bloquear um domnio automaticamente bloqueado tambm o endereo IP do servidor correspondente. Isso evita que os usurios da rede consigam burlar o proxy, acessando os sites diretamente pelo IP. De qualquer forma, voc pode criar diretamente regras que bloqueiem determinados endereos IP, o que til em casos de servidores sem domnio registrado, ou que respondam por vrios domnios. Nesse caso, a regra ficaria: acl ips-bloqueados dst 200.234.21.23 200.212.15.45 http_access deny ips-bloqueados Voc pode descobrir rapidamente o endereo IP de um determinado domnio usando o comando "host", como em: $ host google.com google.com A 72.14.207.99 google.com A 64.233.187.99 google.com A 64.233.167.99 Depois de adicionar as novas regras, nosso arquivo de configurao ficaria assim: http_port 3128 visible_hostname gdh error_directory /usr/share/squid/errors/Portuguese/ cache_mem 64 MB maximum_object_size_in_memory 64 KB maximum_object_size 512 MB minimum_object_size 0 KB cache_swap_low 90

cache_swap_high 95 cache_dir ufs /var/spool/squid 2048 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 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 21 80 443 563 70 210 280 488 59 777 901 1025-65535 acl purge method PURGE acl CONNECT method CONNECT http_access http_access http_access http_access http_access http_access allow manager localhost deny manager allow purge localhost deny purge deny !Safe_ports deny CONNECT !SSL_ports

acl bloqueados url_regex -i "/etc/squid/bloqueados" http_access deny bloqueados acl redelocal src 192.168.1.0/24 http_access allow localhost http_access allow redelocal http_access deny all Veja que coloquei as duas regras antes do "http_access allow redelocal", que abre tudo para a rede local. Como o Squid processa as regras seqencialmente, as pginas que forem bloqueadas pela acl "bloqueados" no chegam a passar pela regra que autoriza os acessos provenientes da rede local. Uma segunda possibilidade usar o parmetro "dstdom_regex", que permite bloquear sites de uma forma mais geral, com base em palavras includas na URL de acesso. Voc pode bloquear todas as pginas cujo endereo inclua a palavra "sexo" ou "orkut", por exemplo. Note que, ao usar esta regra, o Squid verifica a existncia das palavras apenas na URL do site e no no contedo da pgina. Para criar filtros baseados no contedo, voc pode utilizar o DansGuardian, que veremos mais adiante.

Crie mais um arquivo de texto, contendo as palavras que devem ser bloqueadas, uma por linha, como em: orkut xxx sexo teens warez ... e adicione a regra abaixo, contendo a localizao do arquivo: acl palavrasproibidas dstdom_regex "/etc/squid/palavrasproibidas" http_access deny palavrasproibidas O uso desta regra um pouco mais problemtico, pois bloquear todas pginas que contenham qualquer uma das palavras listadas na URL. Esta opo sempre levar a alguns falsos positivos e por isso deve ser usada com mais cuidado. Uma vantagem que ela permite bloquear facilmente pginas dinmicas, onde a palavra passada como parmetro da URL. Um exemplo o Orkut, onde, depois da transferncia para o Google, os domnios principais passaram a encaminhar para URLs dinmicas dentro do domnio do Google, como em: https://www.google.com/accounts/ServiceLogin? service=orkut&continue=http%3A%2F %2Fwww.orkut.com %2FRedirLogin.aspx%3Fmsg%3D0%26page%3Dhttp %253A%252F%252F www.orkut.com%252FHome.aspx&hl=ptBR&rm=false&passive=true Voc no poderia simplesmente bloquear o domnio "google.com" usando uma regra url_regex, mas poderia muito bem usar o dstdom_regex para bloquear a palavra "orkut" e assim bloquear o acesso ao site sem bloquear o acesso a outros servios do Google. No existe problema em combinar o bloqueio de domnios e de palavras dentro da URL, voc pode lanar mo de uma combinao das duas coisas, de acordo com a situao. Para isso, basta usar as duas regras simultaneamente, como em: acl bloqueados url_regex -i "/etc/squid/bloqueados" http_access deny bloqueados

acl palavrasproibidas dstdom_regex "/etc/squid/palavrasproibidas" http_access deny palavrasproibidas acl redelocal src 192.168.1.0/24 http_access allow localhost http_access allow redelocal http_access deny all Includas as regras, os clientes passam a ver uma mensagem de erro ao tentar acessar pginas que se enquadrem nos bloqueios:

Por padro, as mensagens de erro aparecerem em ingls. No nosso caso elas esto aparecendo em portugus devido linha "error_directory /usr/share/squid/errors/Portuguese/" que inclu no modelo de configurao anterior. Voc pode personalizar as pginas de erro editando os arquivos dentro da pasta "/usr/share/squid/errors/Portuguese" ou "/usr/share/squid/errors/English" (de acordo com a lngua definida na configurao). A pasta contm vrias pginas html, uma para cada tipo de erro indicado.

Bloqueando por horrio


As regras a seguir fazem com que o proxy aceite ou recuse conexes feitas dentro de determinados horrios. Voc pode definir regras para perodos especficos e combin-las para

bloquear todos os horrios em que voc no quer que o proxy seja usado ou vice-versa. Para que o proxy bloqueie acessos feitos entre meia-noite e 6:00 da manh e no horrio de almoo, por exemplo, voc usaria as regras: acl madrugada time 00:00-06:00 http_access deny madrugada acl almoco time 12:00-14:00 http_access deny almoco Estas regras iriam, novamente, antes da regra "http_access allow redelocal" no arquivo de configurao. Agora, imagine que voc quer fazer diferente. Ao invs de bloquear o acesso na hora de almoo, voc quer deixar o proxy aberto, para que aqueles que queiram acessar o Orkut ou acessar os e-mails possam fazer isso fora do horrio de trabalho. Neste caso, voc usaria uma regra como: acl almoco time 12:00-14:00 http_access allow almoco Esta regra entraria no arquivo de configurao antes das regras "http_access deny bloqueados" e outras restries. Assim, os acessos que forem aceitos pela regra do almoo no passaro pelas regras que fazem o bloqueio, como em: acl almoco time 12:00-14:00 http_access allow almoco acl bloqueados url_regex -i "/etc/squid/bloqueados" http_access deny bloqueados acl extban url_regex -i "/etc/squid/extban" http_access deny extban acl redelocal src 192.168.1.0/24 http_access allow localhost http_access allow redelocal http_access deny all Voc pode tambm combinar o bloqueio de palavras ou domnio com as regras de bloqueio por horrio, permitindo que os usurios acessem um determinado site apenas no horrio de almoo, por exemplo. Neste caso, a regra seria: acl almoco time 12:00-14:00 acl orkut dstdomain orkut.com www.orkut.com http_access allow orkut almoco http_access deny orkut

Fazendo isso, o Squid entende que os endereos includos dentro da acl "orkut" devem ser permitidos, mas apenas dentro do horrio especificado na acl "almoco". Em seguida includa mais uma regra, que bloqueia o acesso ao site em outros horrios.

Gerenciando o uso da banda


O Squid oferece uma forma simples de limitar o uso da banda disponvel e definir o quanto cada usurio pode usar (mantendo parte do link livre para os demais), utilizando um recurso chamado "delay pools". Imagine, por exemplo, que voc tem um link de 1 megabit para uma rede com 20 usurios. Se cada um puder ficar baixando o que quiser, provvel que a rede fique saturada em determinados horrios, deixando a navegao lenta para todo mundo. Voc pode evitar isso limitando a banda que cada usurio pode usar e a banda total, que todos os usurios somados podero usar simultaneamente. recomendvel, neste caso, que o servidor proxy (que combina todos os acessos via http) consuma um pouco menos que o total de banda disponvel, de forma a sempre deixar um pouco reservado para outros protocolos. Um link de 1 megabit (1024 kbits) corresponde a 131.072 bytes por segundo. Nas regras do Squid, sempre usamos bytes, por isso lembre-se de fazer a converso, dividindo o valor em kbits por 8 e multiplicando por 1024 para ter o valor em bytes. Podemos, por exemplo, limitar a banda total usada pelo Squid a 114.688 bytes por segundo, deixando 128 kbits do link livres para outros protocolos e limitar cada usurio a no mximo 16.384 bytes por segundo, que correspondem a 128 kbits. Nem todos os usurios vo ficar baixando arquivos a todo momento, por isso o valor ideal reservado a cada usurio vai variar muito de acordo com a rede. Voc pode acompanhar o uso do link e ir ajustando o valor conforme a utilizao. Neste caso, a parte final do arquivo de configurao ficaria: acl redelocal src 192.168.1.0/24 delay_pools 1 delay_class 1 2 delay_parameters 1 114688/114688 16384/16348 delay_access 1 allow redelocal

http_access allow localhost http_access allow redelocal http_access deny all A acl "redelocal" est agora condicionada a trs novas regras, que aplicam o uso do limite de banda. O acesso continua sendo permitido, mas agora dentro das condies especificadas na linha "delay_parameters 1 114688/114688 16384/16384", onde vo (respectivamente) os valores com a banda total disponvel para o Squid e a banda disponvel para cada usurio. Veja que nessa regra limitamos a banda apenas para a acl "redelocal" e no para o "localhost". Isso significa que voc continua conseguindo fazer downloads na velocidade mxima permitida pelo link ao acessar a partir do prprio servidor; a regra se aplica apenas s estaes. possvel tambm criar regras de exceo para endereos IP especficos, que podero fazer downloads sem passar pelo filtro. Nesse caso, criamos uma acl contendo o endereo IP da estao que deve ter o acesso liberado usando o parmetro "src" e a colocamos antes da regra que limita a velocidade, como em: acl chefe src 192.168.1.2 http_access allow chefe acl redelocal src 192.168.1.0/24 delay_pools 1 delay_class 1 2 delay_parameters 1 114688/114688 16384/16348 delay_access 1 allow redelocal http_access allow localhost http_access allow redelocal http_access deny all Esta regra de exceo pode der usada tambm em conjunto com as demais regras de restrio de acesso que vimos anteriormente. Basta que a acl com o IP liberado seja colocada antes das acls com as restries de acesso, como em: acl chefe src 192.168.1.2 http_access allow chefe acl bloqueados url_regex -i "/etc/squid/bloqueados" http_access deny bloqueados acl palavrasproibidas dstdom_regex "/etc/squid/palavrasproibidas" http_access deny palavrasproibidas

acl redelocal src 192.168.1.0/24 http_access allow localhost http_access allow redelocal http_access deny all Concluindo, mais um tipo de bloqueio til em muitas situaes com relao a formatos de arquivos. Voc pode querer bloquear o download de arquivos .exe ou .sh para dificultar a instalao de programas nas estaes, ou bloquear arquivos .avi ou .wmv para economizar banda da rede, por exemplo. Neste caso, voc pode usar a regra a seguir, especificando as extenses de arquivo desejadas. Ela utiliza o parmetro "url_regex" (o mesmo que utilizamos para criar o bloqueio de domnios), dessa vez procurando pelas extenses de arquivos especificadas: acl extban url_regex -i \.avi \.exe \.mp3 \.torrent http_access deny extban Esta regra aceita tambm o uso de um arquivo externo, de forma que se a lista comear a ficar muito grande, voc pode migr-la para dentro de um arquivo de texto e especificar sua localizao dentro da acl, como em: acl extban url_regex -i "/etc/squid/extban" http_access deny extban Dentro do arquivo, voc inclui as extenses desejadas (sem esquecer da barra invertida antes do ponto), uma por linha, como em: \.avi \.exe \.mp3 \.torrent Uma observao que bloquear arquivos .torrent usando essa regra no impede que os usurios da rede utilizem o bittorrent, mas apenas que baixem os arquivos .torrent para iniciarem o download (o que acaba sendo o suficiente para fazer os usurios menos tcnicos desistirem de baixar o arquivo). Para realmente bloquear o download de arquivos via bittorrent, necessrio bloquear diretamente os endereos dos trackers. Continuando, sempre que fizer alteraes na configurao, voc pode aplicar as mudanas usando o comando: # /etc/init.d/squid reload

Evite usar o "/etc/init.d/squid restart" em ambientes de produo, pois ele fora um reincio completo do Squid, onde o proxy precisa finalizar todas as conexes abertas, finalizar todos os processos e desativar o cache, para s ento ler a configurao e carregar todos os componentes novamente. Isso faz com que o proxy fique vrios segundos (ou at minutos, de acordo com o nmero de clientes conectados a ele) sem responder conexes, fazendo com que o acesso fique fora do ar: # /etc/init.d/squid restart Restarting Squid HTTP proxy: squid Waiting.....................done. O parmetro "reload" permite que o Squid continue respondendo aos clientes e aplique a nova configurao apenas s novas requisies. Ele suportado por diversos outros servios onde o "restart" causa interrupo no servio, como no caso do Apache.

Proxy com autenticao


Voc pode adicionar uma camada extra de segurana exigindo autenticao no proxy. Este recurso pode ser usado para controlar quem tem acesso internet e auditar os acessos em caso de necessidade. Quase todos os navegadores oferecem a opo de salvar a senha, de modo que o usurio precisa digitla apenas uma vez a cada sesso:

A forma mais simples de implementar autenticao no Squid usando o mdulo "ncsa_auth", que faz parte do pacote principal. Ele utiliza um sistema simples, baseado em um arquivo de senhas, onde voc pode cadastrar e bloquear os usurios rapidamente.

Para criar o arquivo de senhas, precisamos do script "htpasswd". Nas distribuies derivadas do Debian ele faz parte do pacote apache2-utils, que voc pode instalar via aptget: # apt-get install apache2-utils No CentOS e no Fedora ele faz parte do pacote principal do apache (o pacote "httpd"), que pode ser instalado atravs do yum. Em seguida, crie o arquivo que ser usado para armazenar as senhas, usando o comando "touch" (que simplesmente cria um arquivo de texto vazio): # touch /etc/squid/squid_passwd O prximo passo cadastrar os logins usando o htpasswd, especificando o arquivo que acabou de criar e o login que ser cadastrado, como em: # htpasswd /etc/squid/squid_passwd gdh Depois de terminar de cadastrar os usurios, adicione as linhas que ativam a autenticao no squid.conf: auth_param basic realm Squid auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd acl autenticados proxy_auth REQUIRED http_access allow autenticados O "auth_param basic realm Squid" indica o nome do servidor, da forma como ele aparecer na janela de autenticao dos clientes; esta na verdade uma opo meramente esttica. O "/usr/lib/squid/ncsa_auth" a localizao da biblioteca responsvel pela autenticao. Eventualmente, ela pode estar em uma pasta diferente dentro da distribuio que estiver usando; nesse caso, use o comando "locate" ou a busca do sistema para encontrar o arquivo e altere a linha indicando a localizao correta. Finalmente, o "/etc/squid/squid_passwd" indica a localizao do arquivo de senhas que criamos no passo anterior. Estas quatro linhas criam uma acl chamada "autenticados" (poderia ser outro nome), que contm os usurios que se autenticarem usando um login vlido. Estas linhas devem ser colocadas antes de qualquer outra regra que libere o acesso, j que, se o acesso aceito por uma regra anterior, ele no passa pela regra que exige autenticao.

Entretanto, se voc usar uma configurao similar a essa: auth_param basic realm Squid auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd acl autenticados proxy_auth REQUIRED http_access allow autenticados acl redelocal src 192.168.1.0/24 http_access allow localhost http_access allow redelocal http_access deny all ... vai notar que a regra de autenticao essencialmente desativa a regra que bloqueia o acesso de usurios fora da rede local. Todos os usurios tem acesso ao prompt de autenticao e todos que se autenticam ganham acesso, mesmo que estejam utilizando endereos fora da faixa usada na rede. Para evitar isso, necessrio restringir o acesso de usurios fora da rede local antes da regra de autenticao. Veja um exemplo: # Bloqueia acessos de fora da rede local antes de passar pela autenticao: acl redelocal src 192.168.1.0/24 http_access deny !redelocal # Outras regras de restrio vo aqui, de forma que o acesso seja negado # antes mesmo de passar pela autenticao: acl bloqueados url_regex -i "/etc/squid/bloqueados" http_access deny bloqueados # Autentica o usurio: auth_param basic realm Squid auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd acl autenticados proxy_auth REQUIRED http_access allow autenticados # Libera o acesso da rede local e do localhost para os autenticados, # bloqueia os demais: http_access allow localhost http_access allow redelocal http_access deny all Veja que agora usamos a regra "http_access deny !redelocal" no incio da cadeia. A exclamao inverte a lgica da regra,

fazendo com que ela bloqueie todos os endereos que no fizerem parte da acl "redelocal". Ao implementar a autenticao, voc passa a poder criar regras de acesso com base nos logins dos usurios e no mais apenas com base nos endereos IP. Imagine, por exemplo, que voc queira que apenas dois usurios da rede tenham acesso irrestrito ao proxy. Os demais (mesmo depois de autenticados), podero acessar apenas no horrio do almoo, e quem no tiver login e senha vlidos no acessa em horrio nenhum. Neste caso, voc poderia usar esta configurao: auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd acl autenticados proxy_auth REQUIRED acl permitidos proxy_auth gdh tux acl almoco time 12:00-13:00 http_access allow permitidos http_access allow autenticados almoco Aqui temos os usurios que passaram pela autenticao divididos em duas regras. A acl "autenticados" inclui todos os usurios, enquanto a acl "permitidos" contm apenas os usurios gdh e tux. Graas regra "http_access allow permitidos", os dois podem acessar em qualquer horrio, enquanto os demais caem na regra "http_access allow autenticados almoco", que cruza o contedo das acls "autenticados" e "almoo", permitindo que eles acessem, mas apenas das 12:00 s 13:00. Alm do mdulo ncsa_auth que, como vimos, permite usar um arquivo de senhas separado, vlido apenas para o proxy, o Squid suporta tambm um conjunto de mdulos que permitem fazer com que o Squid se autentique em um servidor externo, integrando o proxy a um sistema de autenticao j existente. O mais simples o mdulo smb_auth, que permite que o Squid autentique os usurios em um servidor Samba, configurado como PDC. Com isso, os usurios passam a utilizar o mesmo login e senha que utilizam para fazer logon. Para usar o smb_auth, voc usaria a configurao a seguir, especificando o domnio (na opo -W) e o endereo do servidor PDC (na opo -U): auth_param basic realm Squid authenticate_ip_ttl 5 minutes

auth_param basic program /usr/lib/squid/smb_auth -W dominio -U 192.168.1.254 acl autenticados proxy_auth REQUIRED http_access allow autenticados Com o mdulo smb_auth, o Squid simplesmente repassa o login e senha fornecido pelo usurio ao servidor PDC e autoriza o acesso caso o PDC retorne uma resposta positiva. No necessrio que o servidor com o Squid faa parte do domnio, nem que exista uma cpia do Samba rodando localmente (so necessrios apenas os pacotes "samba-client" e "sambacommon", que correspondem ao cliente Samba), por isso a configurao bastante simples. Naturalmente, para utilizar esta configurao voc deve ter um servidor PDC na sua rede, como aprenderemos a configurar em detalhes no captulo sobre o Samba. Outros mdulos que podem ser usados so o "squid_ldap_auth", que permite que o servidor autentique os usurios em um servidor LDAP e o "ntlm_auth", que permite integrar o servidor Squid ao Active Directory.

You might also like