Você está na página 1de 117

Portas TCP e UDP Ao conectar na Internet, seu micro recebe um nico endereo IP vlido.

Apesar disso, mantemos vrios programas ou servios abertos simultaneamente. Em um desktop normal ter um programa de e-mail, um cliente de FTP ou SSH, o navegador, um cliente de ICQ ou MSN, dois ou trs downloads via bittorrent e vrios outros programas que enviam e recebem informaes, enquanto um nico servidor pode manter ativos servidores web, FTP, SSH, DNS, LDAP e muitos outros servios, atendendo a centenas de clientes simultaneamente. Se temos apenas um endereo IP, como todos estes servios podem funcionar ao mesmo tempo sem entrar em conflito? Imagine que as duas partes do endereo IP (a parte referente rede e a parte referente ao host) correspondem ao CEP da rua e ao nmero do prdio. Um carteiro s precisa destas duas informaes para entregar uma carta. Mas, dentro do prdio moram vrias pessoas. O CEP e nmero do prdio s vo fazer a carta chegar at a portaria. Da em diante preciso saber o nmero do apartamento. aqui que entram as famosas portas TCP. Existem 65.536 portas TCP, numeradas de 0 a 65535. Cada porta pode ser usada por um programa ou servio diferente, de forma que em teoria poderamos ter at 65536 servios diferentes ativos simultaneamente em um mesmo servidor, com um nico endereo IP vlido. O endereo IP contm o CEP da rua e o nmero do prdio, enquanto a porta TCP determina a que sala dentro do prdio a carta se destina.

As portas TCP mais usadas (tambm chamadas de "well known ports") so as portas de 0 a 1023, que so reservadas para servios mais conhecidos e utilizados, como servidores web, FTP, servidores de e-mail, compartilhamento de arquivos, etc. A porta 80, por exemplo, reservada para uso de servidores web, enquanto a porta 21 a porta padro para

servidores FTP. A porta "0" reservada, por isso no entra realmente na lista. Alm do endereo IP, qualquer pacote que circula na Internet precisa conter tambm a porta TCP a que se destina. isso que faz com que um pacote chegue at o servidor web e no ao servidor FTP instalado na mesma mquina. Alm das 65.536 portas TCP, temos o mesmo nmero de portas UDP, seu protocolo irmo. Embora seja um protocolo menos usado que o TCP, o UDP continua presente nas redes atuais pois oferece uma forma alternativa de envio de dados, onde em vez da confiabilidade privilegiada a velocidade e a simplicidade. Vale lembrar que tanto o TCP quanto o UDP trabalham na camada 4 do modelo OSI. Ambos trabalham em conjunto com o IP, que cuida do endereamento. No TCP, os dados so transmitidos atravs de conexes. Tudo comea com o cliente enviando o pacote "SYN", que solicita a abertura da conexo. Caso a porta esteja fechada, o servidor responde com um pacote "RST" e a conversa pra por a. Caso, por outro lado, exista algum servidor disponvel na porta solicitada (um servidor http, por exemplo), ento ele responde com outro pacote "SYN", seguido de um um pacote "ACK", avisando que a porta est disponvel e prosseguindo com a abertura da conexo. O cliente responde ento com outro pacote "ACK", o que abre oficialmente a conexo. Comea ento a transferncia dos dados, que so organizados em pacotes. O protocolo TCP/IP permite o uso de pacotes com at 64 kbytes, mas normalmente so usados pacotes com at 1500 bytes, que o tamanho mximo de um frame Ethernet. Pacotes maiores podem ser transmitidos normalmente atravs da rede, mas precisam ser fragmentados, ou seja, divididos em pedaos menores, com at 1500 bytes. Para cada pacote recebido, a estao envia um pacote de confirmao e, caso algum pacote se perca, ela solicita a retransmisso. Cada pacote inclui 4 bytes adicionais com um cdigo de CRC, que permite verificar a integridade do pacote. atravs dele que o cliente sabe quais pacotes chegaram danificados. Depois que todos os dados so transmitidos, o servidor envia um pacote "FYN" que avisa que no tem mais nada a transmitir. O cliente responde com outro pacote "FYN" e a conexo oficialmente encerrada. Graas a tudo isso, a confiabilidade muito boa. Quando a conexo est ruim, normal ocorrerem mais perdas de pacotes e retransmisses, mas as corrupes so geralmente causadas pelo prprio programa que est baixando o arquivo e no pelo protocolo. O problema que toda esta formalidade torna as transferncias um pouco mais lentas. Imagine que, para transmitir uma mensagem de texto com 300 bytes, via TCP, seria necessrio transmitir um total de 9 pacotes! Veja um exemplo de como a transmisso funcionaria:

Estao: SYN (solicita a abertura da conexo) Servidor: SYN (confirma o recebimento e avisa que a porta est disponvel) Servidor: ACK (inicia a conexo) Estao: ACK (confirma) Estao: DATA ( enviado o pacote com a mensagem de texto) Servidor: OK (a confirmao, depois de verificar a integridade do pacote) Estao: FYN (solicita o fechamento da conexo) Servidor: FYN (confirma) Estao: FYN (confirma que recebeu a confirmao) No UDP, as coisas so mais simples. Nele no existe abertura de conexo, os pacotes so transmitidos diretamente. A estao solicita alguma informao e o servidor envia a resposta. Assim como no TCP, so usados pacotes de at 1500 bytes (o protocolo permite o uso de pacotes com at 64 kbytes, mas, assim como no caso do TCP eles so raramente usados devido ao limite de tamanho dos frames Ethernet), contendo os bits adicionais de verificao. A estao pode verificar a integridade dos pacotes, mas no tem como perceber se algum pacote se perdeu, ou solicitar a retransmisso de um pacote corrompido. Se um pacote se perde, fica por isso mesmo. Um exemplo tpico de uso do UDP o streaming de vdeo e audio via web, uma situao onde o que vale a velocidade e no a confiabilidade. Voc no gostaria nada se o navegador parasse a exibio do vdeo para solicitar uma retransmisso cada vez que um pacote se perdesse ou chegasse corrompido. prefervel que ele pule o quadro e continue exibindo o restante do vdeo. Outra aplicao comum so os servidores DNS. Sempre que voc acessa um site, a solicitao do endereo IP referente ao domnio do site e a resposta do servidor so enviadas via UDP, para ganhar tempo. Na prtica, bem raro encontrar algum programa que utilize unicamente pacotes UDP para qualquer coisa alm do envio de mensagens curtas. Mesmo no caso do streaming de vdeo, quase sempre usada uma porta TCP para estabelecer a conexo e enviar informaes de controle, deixando o UDP apenas para o envio dos dados. As portas mais usadas so: 21 TCP: FTP O FTP um dos protocolos de transferncia de arquivos mais antigos e ainda assim um dos mais usados. O ponto fraco do FTP a questo da segurana: todas as informaes, incluindo as senhas trafegam em texto puro e podem ser capturadas por qualquer um que tenha acesso transmisso. O FTP possui dois modos de operao: passivo e ativo. No modo ativo, o cliente contata o servidor usando uma porta vaga aleatria, como, por exemplo, a porta 1026, endereando o pacote porta 21 do servidor. O servidor imediatamente contata o cliente de volta, usando a porta seguinte (do cliente) para enviar os dados. Se o cliente usou a porta 1026 para abrir a conexo, ento o servidor enviar os dados na porta 1027. O problema que o modo ativo no funciona quando o cliente acessa atravs de uma

conexo compartilhada. Ao tentar responder, o servidor cairia na porta 1027 do gateway da rede, sem conseguir chegar ao cliente. No modo passivo, o cliente tambm abre a conexo contatando a porta 21 do servidor; entretanto, ao invs de iniciar a conexo imediatamente, o servidor responde avisando que o cliente pode contat-lo em uma segunda porta, escolhida aleatoriamente (a 2026, por exemplo). O cliente inicia, ento, uma nova conexo na porta especificada e o servidor responde enviando os dados (a porta fica reservada ao cliente durante o tempo que durar a transferncia). Em teoria, isto seria um limite ao nmero de clientes que poderiam se conectar simultaneamente, mas, na prtica, seriam necessrias mais de 64.000 conexes simultneas ao mesmo servidor FTP para esgotar as portas disponveis. Praticamente todos os clientes de FTP atuais utilizam o modo passivo por padro, mas isso pode ser modificado dentro da configurao. Alguns poucos servidores de FTP no podem ser acessados em modo passivo, pois para isso necessrio que o administrador faa uma configurao de firewall mais cuidadosa, mantendo abertas um conjunto de portas altas.

Em resumo, no modo ativo o servidor precisa ter aberta apenas a porta 21, mas em compensao o cliente precisa acessar a web diretamente e ter um conjunto de portas altas abertas no firewall. No modo passivo, os papis se invertem: o cliente no precisa ter portas abertas, mas o servidor sim.

22 TCP: SSH O SSH o canivete suo da administrao remota em servidores Linux. Inicialmente o SSH permitia executar apenas comandos de texto remotamente; depois passou a permitir executar tambm aplicativos grficos e, em seguida, ganhou tambm um mdulo para transferncia de arquivos, o SFTP. A vantagem do SSH sobre o Telnet e o FTP que tudo feito atravs de um canal encriptado, com uma excelente segurana. O SSH pode ser usado tambm para encapsular outros protocolos, criando um tnel seguro para a passagem dos dados. Criando tneis, possvel acessar servidores de FTP, proxy, e-mail, rsync, etc. de forma segura. Graas a isso, o SSH usado como meio de transporte por diversos programas, como o NX Server. O sistema de encriptao utilizado pelo SSH, assim como os tneis encriptados, trabalham no nvel 6 do modelo OSI, acima da camada de sesso, do protocolo TCP/IP, e de toda a parte fsica da rede. Ao contrrio do FTP, o SSH no precisa de portas adicionais: tudo feito atravs da porta 22, que a nica que precisa ficar aberta no firewall do servidor. O cliente no precisa ter porta alguma aberta e pode acessar atravs de uma conexo compartilhada via NAT. 23 TCP: Telnet O Telnet provavelmente o protocolo de acesso remoto mais antigo. A primeira demonstrao foi feita em 1969, com o acesso de um servidor Unix remoto (ainda na fase inicial de implantao da Arpanet), muito antes de ser inventado o padro Ethernet e antes mesmo da primeira verso do TCP/IP. O Telnet foi muito usado durante as dcadas de 1980 e 1990, mas depois caiu em desuso, sendo rapidamente substitudo pelo SSH. Alm de no possuir nenhum dos recursos mais sofisticados suportados pelo SSH, o Telnet um protocolo completamente aberto (no sentido pejorativo), que transmite login, senha e todos os comandos em texto puro. Isso torna ridiculamente simples capturar a transmisso (usando, por exemplo, o Wireshark, que veremos no captulo 5) e assim "invadir" o servidor, usando a senha roubada. Uma curiosidade, que o sistema usado pelo Telnet para a transmisso de comandos usado como base para diversos outros protocolos, como o SMTP e o HTTP. De fato, voc pode usar um cliente Telnet para mandar um e-mail (se souber usar os comandos corretos), ou mesmo acessar um servidor web, desde que consiga simular uma conexo HTTP vlida, como faria um navegador. 25 TCP: SMTP O SMTP o protocolo padro para o envio de e-mails. Ele usado tanto para o envio da mensagem original, do seu micro at o servidor SMTP do provedor, quanto para transferir a mensagem para outros servidores, at que ela chegue ao servidor destino. Tradicionalmente, o Sendmail o servidor de e-mails mais usado, mas, devido aos problemas de segurana, ele vem perdendo espao para o Qmail e o Postfix.

53 UDP: DNS Os servidores DNS so contatados pelos clientes atravs da porta 53, UDP. Eles so responsveis por converter nomes de domnios como "guiadohardware.net" nos endereos IP dos servidores. Existem no mundo 13 servidores DNS principais, chamados "root servers". Cada um deles armazena uma cpia completa de toda a base de endereos. Estes servidores esto instalados em pases diferentes e ligados a links independentes. A maior parte deles roda o Bind, mas pelo menos um deles roda um servidor diferente, de forma que, mesmo que uma brecha grave de segurana seja descoberta e seja usada em um cyberataque, pelo menos um dos servidores continue no ar, mantendo a Internet operacional. Para acessar qualquer endereo, preciso primeiro consultar um servidor DNS e obter o endereo IP real do servidor. Em geral, uma consulta a um dos root servers demora alguns segundos, por isso os provedores de acesso e os responsveis por grandes redes sempre configuram servidores DNS locais, que criam um cache das consultas anteriores, de forma a agilizar o acesso. Voc mesmo pode configurar um servidor DNS para a sua rede usando o Bind. 67 e 68 TCP: Bootps e Bootpc Estes dois protocolos podem ser usados em sistemas de boot remoto, onde os clientes no possuem HD nem CDROM e acessam todos os arquivos de que precisam a partir do servidor. Entretanto, os servidores DHCP atuais incorporam as funes que eram antigamente desempenhadas pelos servidores Bootps, e Bootpc, o que acabou tornando-os obsoletos. Nas verses atuais do LTSP, por exemplo, os clientes do boot atravs da rede utilizando uma combinao de servidores DHCP, TFTP, NFS e XDMCP. 69 UDP: TFTP O TFTP uma verso simplificada do FTP, que utiliza portas UDP para a transferncia dos dados e no inclui suporte correo de erros. Ele pode ser usado para transferncia de arquivos em geral, mas mais freqentemente usado em sistemas de boot remoto, como no caso do LTSP. A principal vantagem nesses casos que o protocolo muito mais simples, de forma que o cliente TFTP pode ser includo diretamente no BIOS da placa de rede, permitindo que o sistema operacional seja carregado diretamente atravs da rede, sem precisar de um HD ou outra unidade de armazenamento. 80 TCP: HTTP O HTTP o principal protocolo da Internet, usado para acesso s paginas web. Embora a porta 80 seja a porta padro dos servidores web, possvel configurar um servidor web para usar qualquer outra porta TCP. Neste caso, voc precisa especificar a porta ao acessar o site, como em: http://200.234.34.12:8080. 110 TCP: POP3 Servidores de e-mail, como o Postfix, armazenam os emails recebidos em uma pasta local. Se voc tiver acesso ao servidor via SSH, pode ler estes e-mails localmente, usando Mutt (no Linux). Entretanto, para transferir os e-mails para sua mquina, necessrio um servidor

adicional. a que entra o protocolo POP3, representado no Linux pelo courier-pop e outros servidores. Programas como o Thunderbird e o Outlook contatam o servidor POP3 atravs da porta 110 e baixam as mensagens utilizando um conjunto de comandos de texto, derivados do Telnet. Originalmente, o POP3 um protocolo to inseguro quanto o Telnet, mas os servidores atuais suportam encriptao via SSL (o mesmo sistema de encriptao usado para acessar pginas seguras, via HTTPs), o que garante um bom nvel de segurana. 123 UDP: NTP O NTP (Network Time Protocol) o protocolo usado para sincronizar o relgio em relao a outras mquinas da rede ou da Internet. Manter os relgios das mquinas sincronizados uma necessidade em grandes redes, com grande uso de arquivos compartilhados, j que fica difcil acompanhar os horrios de atualizao dos arquivos se cada mquina utiliza um horrio diferente. O protocolo NTP leva em conta o ping entre as mquinas e outros fatores para fazer as atualizaes de forma extremamente precisa, de forma que diferenas de sincronismo entre as mquinas so sempre da ordem de poucos milsimos de segundo. Existem diversos servidores NTP pblicos, disponveis via web. Para facilitar as coisas, existe o servidor "pool.ntp.org", que serve como um load balancer, encaminhando as requisies para um servidor geograficamente prximo de voc. Ao invs de ficar caando servidores pblicos no Google, voc pode sincronizar diretamente a partir dele. No Windows XP, por exemplo, a opo de usar o NTP est disponvel no "Painel de Controle > Data e hora > Horrio da Internet":

137 UDP, 138 UDP e 139 TCP: NetBIOS Estas trs portas so usadas pelo protocolo de compartilhamento de arquivos e impressoras em redes Microsoft. Cada uma das portas tem uma funo especfica: a porta 137 UDP usada para a navegao, incluindo a visualizao dos compartilhamentos disponveis, a porta 138 UDP para a resoluo dos

nomes da rede e a porta 139 TCP usada para a transferncia de dados. necessrio que as trs estejam abertas no firewall para que a visualizao dos compartilhamentos e acesso aos arquivos funcione corretamente. A partir do Windows 2000, passou a ser usado o protocolo CIFS (veja a seguir), mas o NetBIOS continua disponvel para manter compatibilidade com as verses anteriores do sistema. 143 TCP: IMAP O IMAP mais um protocolo para recebimento de emails, assim como o POP3. A diferena entre os dois que, ao receber os emails via POP3, eles so apagados do servidor assim que baixados, liberando o espao usado na caixa postal. No IMAP, os e-mails continuam no servidor at serem deletados manualmente. Embora oferecer contas de e-mail com acesso via IMAP seja muito mais oneroso do que via POP3 (j que o nmero de requisies maior, e os usurios podem conservar mensagens antigas por muito tempo), ele vem "roubando a cena" com a popularizao dos webmails, que so justamente clientes IMAP, que rodam no prprio servidor (atravs do Apache ou outro servidor web), e so acessados no cliente usando o navegador. 177 TCP: XDMCP O XDMCP um protocolo de acesso remoto, suportado nativamente pelo X (o ambiente grfico usado no Linux e em outros sistemas Unix). Ele permite rodar aplicativos remotamente e a base para o LTSP e outros sistemas de acesso remoto, onde usado um servidor central e terminais leves. O XDMCP pode ser tambm usado no dia-a-dia, para simplesmente rodar programas instalados em outra mquina da rede. A vantagem do XDMCP que ele um protocolo bastante simples e rpido, que oferece um bom desempenho via rede local e consome poucos recursos, tanto no servidor, quanto no cliente. Ele tambm um recurso nativo do X, de forma que voc no precisa instalar nenhum software adicional, basta ativar o recurso na configurao do KDM ou GDM (os gerenciadores de login usados nas distribuies Linux atuais). A desvantagem que o XDMCP um protocolo "da velha guarda", que no inclui suporte a encriptao, e utiliza um conjunto de portas altas para enviar dados aos clientes. Alm da porta 177, onde o servidor recebe conexes, necessrio que estejam abertas as portas de 6010 6099 (no servidor) e as portas de 5000 a 5200 nos clientes, o que complica um pouco as coisas ao manter um firewall ativo. 389 TCP: LDAP O LDAP muito usado atualmente para criar servidores de autenticao e definir permisses de acesso para os diferentes usurios da rede. Existem vrios padres de LDAP, um dos mais usados o OpenLDAP, suportado pela maioria das distribuies Linux atualmente em uso. 443 TCP: HTTPS O HTTPS permite transmitir dados de forma segura, encriptados usando o SSL. Ele usado por bancos e todo tipo de site de comrcio eletrnico ou que armazene informaes confidenciais.

445 TCP: CIFS - O protocolo CIFS uma verso atualizada do antigo protocolo NetBIOS, usado para a navegao e acesso a compartilhamentos em redes Windows. O protocolo CIFS utilizado por padro pelos clientes rodando o Windows 2000, XP e Vista, alm de ser usado pelas verses recentes do Samba. Ao contrrio do NetBIOS, que utiliza um conjunto de 3 portas, o CIFS utiliza apenas a porta 445 TCP. Naturalmente, esta uma lista rpida, contendo apenas as portas mais usadas. Voc pode ver uma lista longa e completa, com todos os servios conhecidos e as portas utilizadas por cada um no: http://www.iana.org/assignments/port-numbers. ICMP Alm do TCP e do UDP, temos o ICMP (Internet Control Message Protocol), um protocolo de controle, que opera no nvel 3 do modelo OSI (junto com o protocolo IP). Ao contrrio do TCP e do UDP, o ICMP no usado para a transmisso de dados, mas nem por isso deixa de desempenhar diversas funes importantes. A mais trivial delas o ping, que usamos para verificar se uma determinada mquina est online, como em: $ ping -c 3 guiadohardware.net PING guiadohardware.net (64.246.6.25) 56(84) bytes of data. 64 bytes from gdhs.guiadohardware.net (64.246.6.25): icmp_seq=1 ttl=53 time=8.72 ms 64 bytes from gdhs.guiadohardware.net (64.246.6.25): icmp_seq=2 ttl=53 time=8.62 ms 64 bytes from gdhs.guiadohardware.net (64.246.6.25): icmp_seq=3 ttl=53 time=8.37 ms --- guiadohardware.net ping statistics --3 packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev = 8.373/8.576/8.728/0.183 ms O "-c" indica o nmero de repeties, neste caso 3. Sem ele, o ping fica enviando pacotes indefinidamente (no Linux), at que voc aborte o programa pressionando Ctrl+C. Assim como outros comandos bsicos, o ping tambm est disponvel no Windows, atravs do prompt do MS-DOS. Normalmente, os pings para qualquer servidor na Internet (com exceo dos servidores do seu provedor de acesso, ou outros servidores muito prximos), voltam com pelo menos 100 milessegundos de atraso. Quanto mais distante geograficamente estiver o servidor, ou quanto mais saturado estiverem os roteadores e links at ele, maior ser o tempo de resposta. Um ping muito alto faz com que o carregamento de pginas seja mais demorado (pois o ping determina o tempo necessrio para cada requisio do navegador chegar at o servidor) e atrapalha principalmente quem joga online, ou usa programas de administrao remota, como o SSH.

No meu caso, consegui pings de apenas 8 ms at o servidor do Guia do Hardware, pois "trapaceei", acessando via SSH um outro servidor ligado ao mesmo backbone que ele e rodando o ping a partir dele :). A resposta a pings pode ser desativada na configurao do sistema. No Linux, voc pode usar o comando abaixo: # echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all possvel tambm desativar a resposta a pings na configurao do firewall, de forma que, o fato de um micro da Internet, ou mesmo dentro da sua rede local no responder a pings no significa muita coisa. Se ele responder, significa que est online; se no responder, significa que pode estar online tambm, porm configurado para no responder aos seus chamados. Outra funo importante do ICMP o controle do TTL (time to live) de cada pacote TCP ou UDP. Os pacotes tem vida curta e sua nica funo carregar os dados at o destino. Eles so transmitidos de um roteador a outro e, uma vez que chegam ao destino, so desmontados e destrudos. Mas, o que acontece em casos onde no existe uma rota possvel at o destino, seja porque a mquina est desligada, por erro no endereamento, ou por um problema em algum dos links? Existem duas possibilidades. A primeira um roteador prximo perceber que a mquina est fora do ar e destruir o pacote. Neste caso, ele responde ao emissor com um pacote ICMP "Destination Unreachable", avisando do ocorrido. Caso isso no acontea, o pacote fica circulando pela rede, passando de um roteador a outro, sem que consiga chegar ao destino final. O TTL existe para evitar que estes pacotes fiquem em loop eterno, sendo retransmitidos indefinidamente e assim consumindo banda de forma desnecessria. Graas a ele, os pacotes tm "vida til". O TTL default varia de acordo com o sistema operacional usado. No Windows XP o default so 128 hops, enquanto nas verses atuais do Linux os pacotes so criados com um TTL de 64 hops. Cada vez que o pacote passa por um roteador, o nmero reduzido em um. Se o nmero chegar a zero, o roteador destri o pacote e avisa o emissor enviando um pacote ICMP "Time Exceeded". No Linux, o TTL padro configurvel atravs do arquivo "/proc/sys/net/ipv4/ip_default_ttl". Voc pode brincar com isso alterando o valor padro por um nmero mais baixo, como em: # echo 8 > /proc/sys/net/ipv4/ip_default_ttl Com um valor to baixo, os pacotes gerados pela sua mquina tero vida curta, e no conseguiro atingir hosts muito distantes. Voc vai continuar conseguindo acessar a pgina do seu provedor, por exemplo, mas no conseguir acessar servidores geograficamente distantes. Para retornar o valor padro, use o comando: # echo 64 > /proc/sys/net/ipv4/ip_default_ttl

Os pacotes ICMP "Time Exceeded" so usados pelo comando "traceroute" (no Linux) para criar um mapa do caminho percorrido pelos pacotes at chegarem a um determinado endereo. Ele comea enviando um pacote com um TTL de apenas 1 hop, o que faz com que ele seja descartado logo pelo primeiro roteador. Ao receber a mensagem de erro, o traceroute envia um segundo pacote, desta vez com TTL de 2 hops, que descartado no roteador seguinte. Ele continua, enviando vrios pacotes, aumentando o TTL em 1 hop a cada tentativa. Isso permite mapear cada roteador por onde o pacote passa at chegar ao destino, como em: $ traceroute gdhn.com.br 1 10.62.0.1 (10.62.0.1) 7.812 ms 6.262 ms 9.966 ms 2 poaguswh01.poa.virtua.com.br (200.213.50.90) 9.738 ms 8.206 ms 7.761 ms 3 poagu-ebt-01.poa.virtua.com.br (200.213.50.31) 7.893 ms 7.318 ms 8.033 ms 4 embratel-F3-7-gacc07.rjo.embratel.net.br (200.248.95.253) 8.590 ms 8.315 ms 7.960 ms 5 embratel-G2-3-gacc01.pae.embratel.net.br (200.248.175.1) 7.788 ms 8.602 ms 7.934 ms 6 ebt-G1-0-dist04.pae.embratel.net.br (200.230.221.8) 31.656 ms 31.444 ms 31.783 ms 7 ebt-P12-2-core01.spo.embratel.net.br (200.244.40.162) 32.034 ms 30.805 ms 32.053 ms 8 ebt-P6-0-intl03.spo.embratel.net.br (200.230.0.13) 32.061 ms 32.436 ms 34.022 ms 9 ebt-SO-2-0-1-intl02.mia6.embratel.net.br (200.230.3.10) 298.051 ms 151.195 ms 306.732 ms 10 peer-SO-2-1-0intl02.mia6.embratel.net.br (200.167.0.22) 269.818 ms peer-SO-1-1-0intl02.mia6.embratel.net.br (200.167.0.18) 144.997 ms * 11 0.so-1-0-0.XL1.MIA4.ALTER.NET (152.63.7.190) 240.564 ms 147.723 ms 150.322 ms 12 0.so-1-3-0.XL1.ATL5.ALTER.NET (152.63.86.190) 438.603 ms 162.790 ms 172.188 ms 13 POS6-0.BR2.ATL5.ALTER.NET (152.63.82.197) 164.539 ms 337.959 ms 162.612 ms 14 204.255.168.106 (204.255.168.106) 337.589 ms 337.358 ms 164.038 ms

15 dcr2-so-2-0-0.dallas.savvis.net (204.70.192.70) 212.376 ms 366.212 ms 211.948 ms 16 dcr1-so-6-0-0.dallas.savvis.net (204.70.192.49) 396.090 ms bhr2-pos4-0.fortworthda1.savvis.net (208.172.131.86) 189.068 ms dcr1-so-6-00.dallas.savvis.net (204.70.192.49) 186.161 ms 17 216.39.64.26 (216.39.64.26) 185.749 ms 191.218 ms bhr1-pos-120.fortworthda1.savvis.net (208.172.131.82) 361.970 ms 18 216.39.81.34 (216.39.81.34) 186.453 ms 216.39.64.3 (216.39.64.3) 245.389 ms 216.39.81.34 (216.39.81.34) 184.444 ms 19 216.39.81.34 (216.39.81.34) 182.473 ms * 182.424 ms 20 * gdhn.com.br (72.232.35.167) 185.689 ms * Nesse exemplo, o pacote comea passando pelos links da Net (Virtua), passa em seguida por vrios roteadores da Embratel, passando por So Paulo e Miami (j nos EUA), para ento passar por roteadores da Alter.net e Savvis, at chegar ao destino final. O Windows inclui o comando "tracert", que atua de forma similar, porm enviando um ping para cada host. O resultado acaba sendo similar, com exceo de casos em que o servidor configurado para no responder a pings. Existem ainda vrios exemplos de programas grficos, como o Neotrace (para Windows), que voc encontra em qualquer site de downloads e o Xtraceroute (para Linux). Eles exibem as mesmas informaes, porm de uma forma bem mais agradvel. Este um exemplo do Neotrace mostrando uma conexo especialmente ruim com um servidor hospedado no exterior, a partir de um link ADSL da Brasil Telecom. Veja que o problema comea em um roteador congestionado, da prpria operadora (com tempo de resposta de mais de 1200 ms!) e continua em uma seqncia de links lentos da wcg.net:

Na Internet, os roteadores so espertos o suficiente para conhecerem os roteadores vizinhos e escolherem a melhor rota para cada destino. Sempre que um roteador fica congestionado, os demais passam a evit-lo, escolhendo rotas alternativas. Essa comunicao feita atravs de pacotes ICMP "Redirect", que avisam o emissor que uma rota mais rpida est disponvel e os pacotes seguintes devem ser encaminhados atravs dela. Naturalmente, este sistema no infalvel. Corrupes nas tabelas de roteamento, bugs nos softwares de controle, panes e defeitos em geral podem comprometer o trabalho dos roteadores, fazendo com que alguns pontos da rede fiquem inacessveis. Surge ento o clssico problema de um determinado endereo ou faixa de endereos ficar inacessvel para usurios de um determinado provedor, muito embora continue disponvel para o resto da rede. Em vez de procurar algum amigo no MSN e perguntar "est funcionando da?", voc pode lanar um traceroute a partir de um servidor localizado em outro ponto da rede e assim checar se o endereo realmente est indisponvel, ou se o problema relacionado sua conexo. Existem diversos servidores na web que oferecem este servio como cortesia. Estes "servidores de traceroute" so chamados de "looking glasses" e so bastante numerosos. Alguns exemplos so: http://registro.br/cgi-bin/nicbr/trt (aqui no Brasil) http://easynews.com/trace/ (EUA) http://216.234.161.11/cgi-bin/nph-trace (Canad) https://cadiweb.idkom.de//lookingglass.php (Alemanha)

http://www.bilink.net/cgi-bin/trace.cgi (Itlia) http://www.kawaijibika.gr.jp/trace.shtml (Japo) Atravs deles voc pode checar a conectividade do endereo com hosts em diversas partes do mundo e o tempo de resposta para cada um. Voc encontra uma lista com vrios outros servidores pblicos no http://traceroute.org/. Diagnosticar o problema de conectividade permite indicar o culpado, mas no resolve nosso problema imediato. O que fazer se voc precisa acessar o servidor do seu site para fazer uma atualizao importante e ele est inacessvel a partir da sua conexo atual? A soluo usar uma terceira mquina, que tenha conectividade com as duas, para intermediar a conexo. Se voc administra dois servidores diferentes, por exemplo, poderia usar o segundo servidor para conseguir se conectar ao primeiro. Voc poderia tambm usar a mquina de algum amigo (que acesse atravs de outra operadora) que confie em voc e lhe d um login de acesso. Voc pode ento se logar na mquina dele (via SSH, VNC ou outro protocolo de acesso remoto) e fazer o acesso a partir dela. possvel tambm usar o SSH para criar um tnel, fazendo com que os pacotes destinados a uma determinada porta do servidor inacessvel sejam encaminhados at ele atravs do segundo servidor. O comando um pouco complicado, mas um exerccio interessante. Imagine que quero acessar o servidor "gdhn.com.br", que est inacessvel a partir da minha conexo atual, usando o servidor guiadohardware.net como intermedirio. Estou logado na minha mquina local como "morimoto", que o mesmo login que uso no "gdhn.com.br" e uso a conta "gdh" no servidor "guiadohardware.net. Poderia ento usar o seguinte comando: # ssh -f -N -L2222:gdhn.com.br:22 -l gdh guiadohardware.net Isso criaria um tnel entre a porta 2222 da minha mquina e a porta 22 do servidor gdhn.com.br, com o servidor guiadohardware.net servindo como intermedirio. Com o tnel criado, posso acessar o gdhn.com.br via SSH usando a porta 2222 da minha prpria mquina, veja s: # ssh -p 2222 127.0.0.1 Naturalmente, para fazer isso necessrio ter contas de acesso nos dois servidores e fazer com que ambos tenham o servidor SSH instalado, mas uma dica que pode lhe salvar na hora do aperto. Falarei mais um pouco sobre o SSH no captulo 6 e voc tambm encontra um captulo dedicado a ele no livro Servidores Linux, guia prtico. Concluindo, os pacotes ICMP so usados (durante as transferncias de dados) tambm para regular a velocidade da transmisso, fazendo com que o servidor envie pacotes na maior velocidade possvel permitida pelo link, sem entretanto sobrecarregar o link do cliente. Sempre que um dos roteadores pelo caminho, percebe que o link est saturado, envia um pacote

ICMP "Source Quench", que faz o servidor reduzir a velocidade da transmisso. Sem isso, os pacotes excedentes seriam descartados, causando um grande desperdcio de banda. ARP Dentro da rede local, os pacotes so transformados em frames, onde so endereados ao endereo MAC da placa de rede destino e no ao endereo IP. Acontece que, inicialmente, o sistema no sabe quais so os endereos MAC das placas dos outros micros da rede local, sabe apenas os endereos IP que deve acessar. O ARP (Address Resolution Protocol) faz compania ao IP e ao ICMP na camada 3 do modelo OSI, oferecendo justamente uma forma simples de descobrir o endereo MAC de um determinado host, a partir do seu endereo IP. A estao manda um pacote de broadcast (chamado "ARP Request"), contendo o endereo IP do host destino e ele responde com seu endereo MAC. Como os pacotes de broadcast so custosos em termos de banda da rede, cada estao mantm um cache com os endereos conhecidos. Naturalmente, isso feito de forma transparente. mais um detalhe tcnico com o qual voc no precisa se preocupar se quer apenas usar a rede, mas que interessante estudar quando est interessado em entender seu funcionamento. Voc pode verificar o cache de endereos ARP do seu micro (no Linux) usando o comando "arp": $ arp Address HWtype HWaddress Flags Mask Iface 192.168.1.254 ether 00:30:CD:03:CD:D2 C eth0 192.168.1.23 ether 00:11:D8:56:62:76 C eth0 192.168.1.56 ether 00:11:D8:57:45:C3 C eth0 Existe tambm o "RARP" (reverse ARP), que tem a funo oposta: contatar um host da rede quando o endereo MAC conhecido, mas o endereo IP no. Embora menos usado, o RARP tambm importante, pois ele usado quando uma estao precisa obter sua configurao de rede via DHCP. Ao receber o pacote de broadcast enviado pela estao, o servidor DHCP sabe apenas o endereo MAC da estao e no seu endereo IP (que afinal ainda no foi definido). Ele capaz de responder solicitao graas ao RARP. Sem ele, no teramos DHCP. Muitas distribuies Linux incluem o "arping", um pequeno utilitrio que utiliza o ARP ao invs do ping para descobrir se outras mquinas da rede local esto online. A vantagem que mesmo mquinas protegidas por firewall, ou configuradas para no responder pings respondem a pacotes ARP, fazendo com que ele seja mais uma ferramenta interessante na hora de diagnosticar problemas na rede.

Nas distribuies derivadas do Debian, voc pode instal-lo via apt-get (aptget install arping). Para usar, basta informar o endereo IP ou endereo MAC da mquina alvo, como em: $ arping 192.168.1.110 ARPING 192.168.1.110 60 bytes from 00:11:d8:21:52:76 (192.168.1.110): index=0 time=112.057 usec 60 bytes from 00:11:d8:21:52:76 (192.168.1.110): index=1 time=101.089 usec 60 bytes from 00:11:d8:21:52:76 (192.168.1.110): index=2 time=99.897 usec Uma observao importante que o ARP usado apenas dentro da rede local, o nico local onde so usados endereos MAC. Quando o pacote passa pelo gateway e encaminhado para a Internet, os campos com os endereos MAC so removidos, o que faz com que o arping e outros utilitrios baseados em pacotes ARP deixem de funcionar. Se voc tiver a curiosidade de disparar o arping contra um host da Internet, vai perceber que, embora o comando seja executado sem erros, ele fica parado indefinidamente aguardando por uma resposta que nunca vem: $ arping google.com ARPING 64.233.167.99 (espera infinita...) Isso acontece pois o pacote de broadcast enviado pelo arping no encaminhado pelo gateway da rede, ele s seria respondido se, por acaso, existisse um micro dentro da rede local utilizando o endereo "64.233.167.99". Mesmo que o pacote fosse incorretamente encaminhado para a Internet, ele no iria muito longe, pois seria descartado no primeiro roteador por onde passasse. Uma curiosidade sobre os endereos MAC que eles podem ser usados para descobrir o fabricante da placa de rede. Para isso, acesse o http://standards.ieee.org/regauth/oui/ e faa uma busca pelos 6 primeiros dgitos do endereo MAC. Ele retornar os dados da empresa responsvel pela faixa, como em: 00-15-00 (hex) Intel Corporate 001500 (base 16) Intel Corporate Lot 8, Jalan Hi-Tech 2/3

Kulim Hi-Tech Park Kulim Kedah 09000 MALAYSIA O endereo MAC composto por duas informaes. Os 6 primeiros dgitos so um cdigo atribudo empresa pelo IEEE e usado em todas as suas placas, enquanto os outros 6 dgitos so um cdigo sequencial, usado para identificar cada placa. Como cada fabricante pode usar apenas seus prprios cdigos ao produzir as placas, a busca permite descobrir com uma boa dose de certeza quem o fabricante real. Ao fazer a busca pelo cdigo da placa de rede onboard de uma placa me, ou de um notebook, voc quase sempre descobre o fabricante. Por exemplo, o cdigo da Asus o "00:15:F2", enquanto o cdigo da Compal (que a real fabricante de um grande nmero de notebooks revendidos por outros integradores) o "00:16:D4". Frames e Pacotes Podemos dizer que a funo de qualquer rede simplesmente transportar informaes de um ponto a outro. Pode ser entre dois micros ligados atravs de um simples cabo cross-over, ou pode ser entre dois servidores situados em dois continentes diferentes. Do ponto de vista do sistema operacional e dos aplicativos, no faz muita diferena. No nvel mais baixo temos os cabos de rede, que so enquadrados no primeiro nvel do modelo OSI (camada fsica) e se destinam unicamente a transportar os impulsos eltricos de um micro a outro. Ao utilizar uma rede wireless ou cabos de fibra ptica, os sinais so transmitidos (respectivamente) na forma de sinais de rdio ou luz, mas a funo bsica (transportar dados de um ponto a outro) continua a mesma, independentemente da mdia utilizada. Em seguida temos os switches ou hub-switches que utilizamos para interligar os micros da rede local. Na verdade, o termo "hub-switch" foi inventado pelos fabricantes para diferenciar os switches mais baratos, que carecem de funes mais avanadas dos switches "de verdade", que possuem mais portas e incluem interfaces de administrao elaboradas. O termo "switch" est mais relacionado ao modo de funcionamento do aparelho e no ao seu custo ou funes. Um switch capaz de encaminhar os frames Ethernet para o destinatrio correto, fechando "circuitos" entre as duas portas envolvidas, enquanto um hub antigo simplesmente repete os sinais recebidos em todas as portas.

Assim como as placas de rede, os switches trabalham no nvel 2 do modelo OSI (link de dados), enviando frames Ethernet e endereando os outros dispositivos da rede usando endereos MAC ao invs de endereos IP. S para efeito de comparao, os hubs "burros" trabalham no nvel 1, assim como os cabos de rede. Eles so meros dispositivos de transmisso, que no realizam processamento. Os frames Ethernet so "envelopes" para os pacotes TCP/IP. O aplicativo (um navegador, um servidor web, ou qualquer outro aplicativo transmitindo dados pela rede) envia os dados ao sistema operacional, que divide o stream em pacotes TCP/IP e os envia placa de rede. As placas de rede (que no entendem o protocolo TCP/IP) tratam os pacotes como um fluxo de dados qualquer e adicionam mais uma camada de endereamento, desta vez baseada nos endereos MAC dos dispositivos da rede, gerando o frame Ethernet que finalmente transmitido. Ao chegar do outro lado, o "envelope" removido e o pacote TCP/IP entregue. O uso dos frames adiciona alguns bytes adicionais a cada pacote transmitido, reduzindo sutilmente o desempenho da rede. Veja o diagrama de um frame Ethernet:

A transmisso de cada frame comea com o envio de 8 bytes, contendo um prembulo e uma sequncia de inicializao. Ele serve para avisar outros micros da rede de que uma transmisso est prestes a comear. Estes 8 bytes iniciais no fazem parte do frame e so descartados pelas placas de rede depois de recebidos, por isso no aparecem no relatrio mostrado por sniffers de rede, como o wireshark.

O pacote TCP/IP includo dentro do campo de dados, que pode incluir at 1500 bytes por frame. Pacotes maiores do que este valor precisam ser divididos em fragmentos com at 1500 bytes e enviados usando vrios frames. Junto com os dados transmitido o cabealho do frame (14 bytes no total), que inclui o endereo MAC de destino, endereo MAC de origem e um campo para o tipo de dados e mais 4 bytes finais, que contm cdigos de CRC, usados (pelas placas de rede) para verificar a integridade do frame recebido. Este cabealho tambm chamado de "MAC Header". Ao receber cada frame, a placa de rede usa os 4 bytes (32 bits) de CRC para verificar a integridade do frame recebido e, caso ele esteja corrompido ou incompleto, ela o descarta e solicita sua retransmisso. Dentro do pacote TCP/IP temos novos headers, que contm o endereo IP de origem, endereo IP de destino, porta de origem, porta de destino, cdigos de verificaes, nmero do pacote, campo para incluso de opes e assim por diante. No total, temos 20 bytes para os headers do protocolo TCP e mais 20 bytes para os headers do protocolo IP, totalizando 40 bytes de headers por pacote. Desta forma, temos 1460 bytes de dados em um pacote de 1500 bytes e 536 bytes de dados em um pacote de 576 bytes:

primeira vista, pode parecer estranho que sejam includos headers separados para o TCP e o IP, mas a verdade que os dois so complementares e por isso no podem ser dissociados. por isso que usamos o termo "TCP/IP", como se os dois protocolos fossem uma coisa s. Os headers do protocolo IP incluem o endereo IP de origem e de destino, enquanto os headers do TCP incluem a porta de origem e de destino, por exemplo. Em resumo, podemos dizer que o IP se encarrega da entrega dos pacotes, enquanto o TCP se encarrega da verificao de erros, numerao de portas e tudo mais. Como vimos anteriormente, o TCP/IP permite o uso de pacotes com at 64 kbytes, mas o tamanho de pacote mais usado de 1500 bytes, que equivalem ao volume de dados que podem ser transmitidos em um nico frame Ethernet. Em um pacote de 1500 bytes, temos at 1460 bytes de dados e 40 bytes referentes aos headers IP e TCP. Arquivos e outros tipos de informaes so transmitidas na forma de sequncias de vrios pacotes. Um arquivo de 15 KB, por exemplo, seria dividido em um total de 11 pacotes; os 10 primeiros contendo 1460 bytes cada um e o ltimo contendo os ltimos 760 bytes.

graas aos cdigos de verificao e numerao dos pacotes que arquivos grandes podem ser transmitidos de forma ntegra mesmo atravs de conexes via modem ou links wireless, onde diversos pacotes so corrompidos ou perdidos. Basta retransmitir os pacotes extraviados ou danificados quantas vezes for necessrio. :) O tamanho dos pacotes pode variar tambm de acordo com o meio de transmisso usado. No ADSL PPPoE, por exemplo, so utilizados pacotes de 1492 bytes, pois o protocolo usado demanda o uso de 8 bytes adicionais para o header. Nas conexes discadas, onde a conexo mais lenta e a perda de pacotes mais comum, so geralmente utilizados pacotes de apenas 576 bytes. Existem ainda casos de pacotes maiores, utilizados em situaes especficas. Dentro da rede local, temos um total de 1518 bytes transmitidos para cada pacote TCP/IP de 1500 bytes, incluindo os 14 bytes do header e os 4 bytes de CRC. Se formos incluir tambm os 8 bytes iniciais, que contm o prembulo e a sequncia de inicializao, o nmero sobe para 1526 bytes. Considerando que cada pacote contm apenas 1460 bytes de dados, temos 66 bytes de overhead no total, o que corresponde a quase 5% do volume de dados transmitidos. Em uma rede local, que trabalha a 100 ou 1000 megabits, isso no faz muita diferena, mas na Internet isso seria um grande desperdcio. Por isso, os roteadores se encarregam de eliminar estas informaes desnecessrias, retransmitindo apenas os pacotes TCP/IP propriamente ditos. por isso que no possvel criar regras de firewall baseadas em endereos MAC para pacotes vindos da Internet: os endereos MAC fazem parte das informaes includas no frame Ethernet, que so descartadas pelos roteadores. Por trabalharem diretamente com endereos IP, os roteadores so enquadrados na camada 3 do modelo OSI (camada de rede). Basicamente, so roteadores que cuidam de todo o trafego de dados na Internet. Voc pode utilizar um hub ou switch dentro da sua rede local, mas ao acessar a Internet voc sempre utiliza um roteador, seja um roteador Cisco de grande porte, seja um modem ADSL ou um micro com duas placas de rede compartilhando a conexo. Jumbo Frames O limite de 1500 bytes para o contedo dos frames foi criado originalmente como parte das especificaes do padro 10BASE-5, o padro Ethernet original, de 10 megabits. A idia era que frames muito grandes agravariam o problema das colises, permitindo que uma nica estao utilizasse o cabo durante um tempo muito longo. Alm disso, frames maiores demorariam mais tempo para serem retransmitidos em caso de corrupo do contedo, de forma que os 1500 bytes foram aceitos como o melhor custo-benefcio. O problema que, de l pra c muita muita coisa mudou. O cabeamento evoluiu, a velocidade das redes aumentou para 100, 1000 e agora para 10000 megabits (1000 vezes a velocidade do padro original!) e, com a

substituio dos hubs burros por switches, as colises de pacotes deixaram de ser um problema. Em uma rede de 10 megabits, possvel transmitir 819 frames com 1500 bytes de dados por segundo (lembre-se de que cada frame precisa de 26 bytes adicionais, que incluem os endereos, cdigos de CRC e os demais componentes), o que faz com que cada frame demore 1221 nanosegundos para ser transmitido. Em uma rede Gigabit Ethernet, onde a velocidade 100 vezes maior, o tempo de transmisso de cada frame cai para apenas 12 nanosegundos. Como o processo de verificao do contedo dos frames consome processamento, trabalho que aumenta proporcionalmente conforme aumenta o volume de frames transmitidos, a velocidade das transferncias acaba sendo limitada no apenas pelo desempenho das placas, mas tambm pelo desempenho do processador principal. De uma forma geral, transferir 80 mil frames (que equivale a cerca de 1 segundo de transferncia em uma rede gigabit) consome cerca de 1 GHz de ciclos de processamento, aos quais se soma o trabalho necessrio para processar os pacotes TCP/IP resultantes. Isso acaba limitando severamente a taxa de transferncia de dispositivos com pouco processamento, como no caso de um NAS ou de um PC antigo, alm de aumentarem a utilizao do processador mesmo nas mquinas mais parrudas. Nas redes de 10 e 100 megabits isso no chegava a ser um grande problema, mas a popularizao das redes Gigabit Ethernet trouxe o assunto tona. Percebendo a possibilidade de melhorarem o desempenho de seus produtos, muitos fabricantes passaram a desenvolver extenses proprietrias, que permitem utilizar frames maiores e assim reduzir o overhead. Estes frames gigantes so chamados de jumbo frames. Inicialmente, estes diferentes padres eram incompatveis, mas, com o passar do tempo, os fabricantes concordaram em padronizar o tamanho em 9000 bytes, o que permitiu a interoperabilidade entre produtos de diferentes fabricantes. A idia que o processamento necessrio para verificar o CRC de um frame de 1500 bytes de dados no muito diferente do para verificar um de 9000 bytes, de forma que o uso do processador decai brutalmente com a reduo no nmero de frames transmitidos. Outra vantagem que recheando cada frame com mais dados, a perda causada pelos 26 bytes adicionais decai proporcionalmente, melhorando o desempenho da rede. O grande problema dos jumbo frames que eles no fazem parte dos padres Ethernet. Como aumentar o tamanho dos frames quebra a compatibilidade com os padres de rede anteriores, o que uma das grandes prioridades do IEEE, a situao no deve mudar a curto prazo. Os jumbo frames so essencialmente um hack no suportado, implementado de forma independente pelos fabricantes. Para utiliz-los necessrio tomar um conjunto de cuidados:

a) Apenas placas e switches Gigabit Ethernet suportam o uso de jumbo frames, de forma que eles so utilizveis apenas em redes baseadas em equipamentos recentes. b) Nem todas as placas e switches oferecem suporte ao recurso, de forma que necessrio cuidado na hora da compra. Equipamentos que no suportam jumbo frames fazem com que os frames precisem ser retransmitidos ou fragmentados para atender ao limite de 1500 bytes. Com isso, forar o uso de jumbo frames em uma rede mista acaba reduzindo o desempenho da rede em vez de aumentar. c) Como no existe um padro oficial, problemas de compatibilidade entre produtos de diferentes fabricantes so comuns. d) O uso dos jumbo frames s oferece ganhos prticos durante as transferncias de grandes arquivos. Se a rede predominantemente usada para compartilhamento da conexo, jogos em rede, streaming de vdeo e audio, impresso e transferncia de pequenos arquivos, voc no vai perceber diferena alguma. Para usar o recurso, procure pela opo nas propriedades do driver da placa de rede. Quase todas as placas atuais oferecem suporte ao recurso, mas ele vem desativado por padro, de forma que voc precisa ativar a opo em todos os micros:

No Linux, a configurao feita usando o ifconfig, atravs do comando abaixo. No esquea de adicion-lo a algum dos scripts de inicializao do sistema para que ele passe a ser executado automaticamente durante o boot: # ifconfig eth0 mtu 9000 up Caso voc esteja usando um switch gerencivel, verifique tambm se a opo est ativada na configurao do switch, como no exemplo abaixo. No caso dos switches unmanaged (que no possuem interface de configurao), os jumbo frames so automaticamente usados, quando suportados.

Ao utilizar um switch com suporte a VLANS, possvel tambm criar redes virtuais separadas para os dispositivos com suporte a jumbo frames e para os demais, permitindo assim que eles convivam de forma pacfica. Entendendo o IPV6 A massiva popularizao da Internet trouxe um problema grave, que a escassez de endereos disponveis. Parte disso se deve m distribuio dos endereos IPs atuais, onde algumas empresas possuem faixas de endereos classe A inteiras, fazendo com que grande parte dos endereos disponveis simplesmente no sejam aproveitados. Para incio de conversa, 32 bits equivalem a nada menos do que 4.294.967.296 combinaes. Destes, pouco mais de 3.7 bilhes de endereos so aproveitveis, j que (entre outros) os endereos iniciados com 0, 10, 127 e de 224 em diante so reservados. Alm disso, a maior parte das faixas de endereos de classe A, que englobam as faixas iniciadas com de 1 a 126 so propriedade de grandes empresas, que acabam utilizando apenas uma pequena faixa deles. Por exemplo, apenas a HP, sozinha, tem direito a duas faixas inteiras, uma ganha durante a distribuio inicial das faixas de endereos IP classe A e a segunda herdada com a compra da DEC. Muitas destas faixas esto sendo reatribudas pela IANA e o uso do CIDR tem melhorado o aproveitamento dos endereos ainda disponveis mas, apesar dos esforos, no incio de 2007 j restavam apenas 1.3 bilhes de endereos disponveis. Se a procura se mantiver nos nveis atuais, teremos o esgotamento dos endereos disponveis em 2014. Caso ela cresa, impulsionada pela popularizao das conexes 3G, aumento do nmero de

servidores web, popularizao do ADSL nos pases mais pobres e assim por diante, podemos chegar a uma situao catica ainda em 2012! Um dos fatores que vem reduzindo a presso sobre os escassos endereos disponveis o uso do NAT. Graas a ele, voc pode compartilhar uma nica conexo (e, consequentemente, um nico endereo IP), entre vrios micros. possvel at mesmo adicionar um segundo, terceiro, quarto, ou mesmo quinto nvel de compartilhamento, recompartilhando uma conexo j compartilhada. muito comum, por exemplo, que um provedor de acesso via rdio use um nico IP para um prdio inteiro, dando endereos de rede interna para os assinantes. Muitos destes criam redes domsticas e compartilham novamente a conexo, adicionando uma segunda camada de NAT, e assim por diante. Apesar disso, o NAT no a soluo para tudo. Voc no pode usar NAT em um datacenter, por exemplo, precisa de um endereo "real" para cada servidor disponvel para o mundo exterior. Chegamos ento ao IPV6, que promete colocar ordem na casa, oferecendo um volume brutalmente maior de endereos e uma migrao suave a partir do padro atual (IPV4). Embora s recentemente o tema tenha ganhado popularidade, o IPV6 no exatamente um projeto novo. O padro vem sendo desenvolvido desde 1995, quando a Internet ainda engatinhava. Entre os dois existiu o "IPV5", que era uma padro de streaming que nunca chegou realmente a ser usado. Endereamento No IPV6 so usados endereos com nada menos do que 128 bits. Prevendo o tamanho do problema que seria ter que futuramente migrar novamente para um novo padro, o IEFT (o rgo responsvel) resolveu no correr riscos. O nmero de endereos disponveis simplesmente absurdo. Seria o nmero 340.282.366.920 seguido por mais 27 casas decimais. ponto pacfico que o IPV6 vai ser adotado mais cedo ou mais tarde. J existem projetos de uso em larga escala em pases como o Japo, China e Coria do Sul e a adoo tende a se acelerar rapidamente no decorrer dos prximos anos. A princpio, o novo sistema de endereamento adotado pelo IPV6 parece algo extico, e at catico, mas as coisas se tornam mais simples se voc tiver em mente que ele apenas um novo sistema de endereamento. Nada muda com relao ao cabeamento da rede; voc continua utilizando os mesmos cabos de par tranado, fibra tica e links wireless e os mesmos hubs, switches, pontos de acesso e roteadores. A rede continua funcionando exatamente da mesma forma, os endereos TCP/IP continuam contendo informaes sobre o endereo da rede e o endereo do host dentro dela, as portas TCP e UDP continuam sendo utilizadas da mesma forma e continuamos utilizando basicamente os mesmos aplicativos de rede. Muda apenas o sistema de endereamento propriamente dito, uma simples questo de alterar a configurao da rede e atualizar os programas para verses compatveis com ele.

Tendo isso em mente, respire fundo e vamos l. Nos endereos IPV4, dividimos os endereos em 4 grupos de 8 bits, cada um representado por um nmero de 0 a 255, como em "206.45.32.234". Usar esta mesma nomenclatura seria invivel para o IPV6, pois teramos nada menos do que 16 octetos, criando endereos-mostro, como "232.234.12.43.45.65.132.54.45.43.232.121.45.154.34.78". Ao invs disso, os endereos IPV6 utilizam uma notao diferente, onde temos oito quartetos de caracteres em hexa, separados por ":". No conjunto hexadecimal, cada caracter representa 4 bits (16 combinaes). Devido a isso, temos, alm dos nmeros de 0 a 9, tambm os caracteres A, B, C, D, E e F, que representariam (respectivamente), os nmeros 10, 11, 12, 13, 14 e 15. Um exemplo de endereo IPV6, vlido na Internet, seria: 2001:bce4:5641:3412:341:45ae:fe32:65. Como voc pode ver, a idia de usar os caracteres em hexa reduz o nmero de caracteres necessrios, mas em compensao complica um pouco as coisas em relao notao do IPV4, com a qual estamos acostumados. Uma forma de compreender melhor, seria imaginar que cada quarteto de nmeros hexa equivale a 16 bits, que poderiam ser representados por um nmero de 0 a 65.535. Voc pode usar uma calculadora que suporte a exibio de nmeros em hexa para converter nmeros decimais. No KCalc, por exemplo, clique no "Configuraes > Botes lgicos". Digite um nmero decimal qualquer, entre 0 e 65.535 e marque a opo "Hex" para v-lo em hexa (e vice-versa):

Fazendo a converso, o endereo "2001:bce4:5641:3412:341:45ae:fe32:65" que coloquei acima, equivaleria aos nmeros decimais "8193 48356 22081 13330 833 17835 65034 101".

Um atenuante para esta complexidade dos endereos IPV6 que eles podem ser abreviados de diversas formas. Graas a isso, os endereos IPV6 podem acabar sendo incrivelmente compactos, como "::1" ou "fee::1".

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". Ao usar o endereo, o sistema sabe que entre o "2001:bce4:" e o ":1" existem apenas zeros e faz a converso internamente, sem problema algum. A diviso rede/host 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. Ao configurar endereos dentro de uma mesma rede, existem duas opes. A primeira seria simplesmente usar endereos seqenciais, como " 2001:bce4::1", " 2001:bce4::2", "2001:bce4::3" e assim por diante. Nada de errado com isso.

A segunda seria seguir a sugesto do IEFT e usar os endereos MAC das placas de rede para atribuir os endereos dos hosts. justamente isso que feito ao utilizar a atribuio automtica de endereos no IPV6. Digamos que o endereo da rede "2001:bce4:0:0:" e o endereo MAC do micro "00:16:F2:FE:34:E1". Como voc pode ver, o endereo MAC contm apenas 12 dgitos hexa, enquanto no IPV6 a parte do host contm 16 dgitos. Est em estudo uma expanso dos endereos MAC das placas de rede, que passariam a ter 16 dgitos, mas, enquanto isso no colocado em prtica, usamos uma regra simples para converter os endereos de 12 dgitos atuais em endereos de 16 dgitos, adicionando os dgitos "ffff" entre o sexto e stimo dgito do endereo. O endereo "00:16:F2:FE:34:E1", viraria ento "0016:f2ff:fffe:34e1". Como viu, os 12 dgitos originais continuam os mesmos (apenas converti para minsculas). So apenas adicionados os 4 dgitos no meio. Adicionando o endereo da rede, o endereo IPV6 completo deste micro seria "2001:bce4:0:0:0016:f2ff:fffe:34e1", o que poderia ser abreviado para apenas "2001:bce4::0016:f2ff:fffe:34e1". Compatibilidade O IPV6 tambm oferece um recurso de compatibilidade com endereos IPV4, permitindo que voc continue utilizando os mesmos endereos ao migrar para ele. Neste caso, voc usaria o endereo "::FFFF:" seguido pelo endereo IPV4 usado atualmente, como em: ::FFFF:192.168.0.1 Por estranho que possa parecer, este um endereo IPV6 completamente vlido, que voc pode usar para todos os fins. Outra mudana que no IPV6 voc pode atribuir diversos endereos para o mesmo micro. Isto tambm era possvel no IPV4 utilizando alises para a placa de rede, mas no caso do IPV6, este passou a ser um recurso nativo. Graas a isso, o mesmo micro pode ser acessado tanto atravs do endereo "2001:bce4:5641:3412:341:45ae:fe32:65" (por exemplo), quanto pelo ::FFFF:192.168.0.1 (pelos micros da rede local), sem que voc precise usar duas placas de rede. possvel tambm adicionar um endereo IPV6 a um micro j configurado com um endereo IPV4, na maioria dos casos sem nem mesmo precisar desativar temporariamente a placa de rede. Neste caso, ele continua respondendo de forma normal no endereo IPV4 antigo, mas passa a responder tambm no endereo IPV6. Um dos objetivos do novo sistema justamente manter compatibilidade com o antigo, j que muitos sistemas provavelmente nunca sero atualizados.

Imagine, por exemplo, que uma migrao em larga escala para o IPV6 est ocorrendo. A maior parte da Internet j utiliza o novo sistema, mas seu provedor de acesso ainda oferece suporte apenas a endereos IPV4. Prevendo situaes assim, o IPV6 oferece suporte ao tunelamento de pacotes IPV6 atravs de redes IPV4. Ao perceber que os pacotes IPV6 precisaro passar por uma rede IPV4, o roteador empacota os pacotes IPV6, colocando-os dentro de pacotes IPV4, de forma que eles sejam roteados normalmente atravs da rede IPV4. Do outro lado da conexo teramos outro roteador IPV6, que se encarregaria de remover o cabealho IPV4 dos pacotes, obtendo novamente os pacotes IPV6 originais. Esse sistema permite tambm que estaes configuradas com endereos IPV4 continuem acessando a Internet normalmente, mesmo depois que a migrao ocorrer. Imagine o caso de micros rodando o Windows 95/98, por exemplo. As faixas de endereos reservadas Assim como no IPV4, existem alguns endereos e faixas de endereos reservadas. Os endereos iniciados com "2001:" so reservados para provedores de acesso e carriers e podem ser registrados, da mesma forma que as faixas de endereo IPV4 atuais. Os endereos iniciados com "3fff:ffff:" e "2001:0DB8:" so reservados para uso em documentao, exemplos e testes e por isso eles no so roteveis. Inicialmente, os endereos iniciados com "fec", "fed", "fee" ou "fef" eram reservados ao uso em redes locais, assim como as faixas "10.x.x.x" e "192.168.x.x" do IPV4. Esta norma foi derrubada pelo RFC 3879, mas as faixas ainda continuam sendo usadas em muitas redes. Ou seja, embora este no seja mais um padro oficial, voc pode continuar usando estas faixas na sua rede se desejar. Talvez o melhor exemplo de endereo reservado o endereo da interface de loopback. No IPV4, o endereo de loopback o "127.0.0.1", enquanto no IPV6 foi escolhido o endereo "0:0:0:0:0:0:0:1", que pode ser abreviado para apenas "::1"! :) Em um micro Linux com o suporte a IPV6 ativado, voc pode usar o comando "ping6 ::1" para testar isso: $ ping6 ::1 PING ::1(::1) 56 data bytes 64 bytes from ::1: icmp_seq=1 ttl=64 time=0.041 ms 64 bytes from ::1: icmp_seq=2 ttl=64 time=0.045 ms 64 bytes from ::1: icmp_seq=3 ttl=64 time=0.045 ms 64 bytes from ::1: icmp_seq=4 ttl=64 time=0.040 ms

Pela resposta, sei que meu micro est conseguindo se comunicar com ele mesmo via IPV6 :). No caso do Windows, usado o comando "ping" normal, especificando diretamente o endereo IPV6 desejado. Um exemplo prtico O suporte a IPV6 est presente em todas as distribuies Linux atuais, assim como no Windows XP SP2. No Windows Vista ele inclusive j vem habilitado por padro. Uma vez que voc entende como os endereos IPV6 so estruturados e que uma mesma interface de rede pode ter ao mesmo tempo um endereo IPV4 e um IPV6 (respondendo em ambos), no existe nada de exotrico em atribuir endereos IPV6 para os micros da sua rede e comear a testar o novo sistema. No Linux, voc pode usar este mini-script para verificar se o suporte a IPV6 est ativo: # test -f /proc/net/if_inet6 && echo "IPV6 ativo" || echo "IPV6 desativado" Em algumas distribuies ele vem desativado por padro. Nesse caso, ativeo carregando o mdulo "ipv6" do Kernel: # modprobe ipv6 A partir da, voc pode atribuir um endereo IPV6 usando o comando "ifconfig eth0 add", onde o "eth0" a interface de rede. Graas s abreviaes, os endereos IPV6 podem ser bastante curtos. Experimente por exemplo adicionar o endereo "fee::1": # ifconfig eth0 add fee::1 Faa o mesmo em outro micro da rede, atribuindo agora o endereo "fee::2": # ifconfig eth0 add fee::2 Para testar a conectividade entre os dois, voc pode utilizar o comando "ping6", que a verso atualizada do ping, que trabalha com endereos IPV6. Caso ele no esteja disponvel, experimente instalar o pacote "iputilsping": # ping6 fee::1 PING fee::1(fee::1) 56 data bytes 64 bytes from fee::1: icmp_seq=1 ttl=64 time=5.82 ms 64 bytes from fee::1: icmp_seq=2 ttl=64 time=1.10 ms

64 bytes from fee::1: icmp_seq=3 ttl=64 time=1.09 ms 64 bytes from fee::1: icmp_seq=4 ttl=64 time=1.06 ms Junto com o ping6, foi desenvolvida toda uma nova gerao de programas compatveis com o IPV6. Muitos foram atualizados de forma transparente, como o ifconfig, enquanto outros ganharam verses separadas, como o traceroute6, o tracepath6 e o ip6tables. Com os dois hosts conversando, experimente utilizar outros programas e servidores para testar a conectividade entre eles. Para se conectar via SSH, por exemplo, voc usaria o comando: # ssh fee::1 The authenticity of host 'fee::1 (fee::1)' can't be established. RSA key fingerprint is 8c:cb:17:ed:0d:2b:3c:9f:40:8e:74:d0:cf:3f:b5:bf. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'fee::1' (RSA) to the list of known hosts. Password: Como pode ver, a conexo estabelecida normalmente. Voc poderia ainda se conectar ao mesmo micro usando o endereo IPV4 antigo, como em: # ssh 192.168.0.1 ... e o resultado seria o mesmo. Como disse, o fato de adicionar um endereo IPV6, no faz com que o micro perca a conectividade com os hosts IPV4 da rede, faz apenas com que ele passe a responder em ambos. Se voc instalar o Apache (que na maioria das distribuies Linux pode ser instalado atravs do pacote "apache2" ou "httpd"), ou qualquer outro servidor web, poder tambm acess-lo atravs do outro micro usando o endereo IPV6. A nica observao que voc deve colocar o endereo entre colchetes, como em "http://[fee::1]/" ao acess-lo atravs do Firefox:

Naturalmente, nem todos os programas suportam IPV6 e alguns podem apresentar problemas diversos. A migrao para IPV6 ainda est em curso, por isso no espere que todos os programas funcionem de forma perfeita.

justamente por isso que foi feito tanto esforo no sentido de manter o IPV6 compatvel com o sistema antigo, em primeiro lugar. :) Para ativar o IPV6 no Windows XP SP2, acesse as propriedades da placa de rede, dentro do painel de controle e clique no "Instalar > Protocolo > Microsoft TCP/IP verso 6". No caso do XP SP1, existe uma verso de desenvolvimento do protocolo, que pode ser instalada da mesma forma, mas o XP original no inclui suporte nativo ao IPV6, assim como o Windows 2000. Como comentei, o IPV6 j vem ativado por padro a partir do Vista. Voc perceber que, mesmo depois de instalado o IPV6, voc no tem a opo de atribuir um endereo manualmente. A idia no caso que o endereo seja atribudo automaticamente por um roteador IPV6 disponvel na rede. De qualquer forma, possvel atribuir um endereo manualmente, de forma a continuar nossa rodada de testes usando o netsh. Para isso, clique no "Iniciar > Executar" e rode o comando "netsh". Ele um utilitrio de linha de comando, que roda dentro de uma janela do prompt do MS-DOS. Para atribuir o endereo, use os comandos: interface ipv6 > add address interface="Conexo de rede sem fio" address="fee::5" ... substituindo o "Conexo de rede sem fio" pelo nome da interface (escrito da mesma forma como aparece no Painel de Controle > Redes) e o endereo IPV6 desejado:

Voc pode testar a conectividade com os outros micros da rede usando o bom e velho ping atravs do prompt do DOS. Note que no caso do Windows o comando continua sendo "ping" e no "ping6" como no Linux. Se quiser testar a conectividade com um dos micros Linux via SSH, voc pode baixar o putty (http://putty.nl), que nas verses recentes j oferece suporte a IPV6. Mais detalhes Essa configurao manual permite "quebrar o gelo", criando uma conexo IPV6 de forma simples. Mas, em uma rede real, esta configurao manual no seria necessria. 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. Caso existam diversos roteadores na rede, os clientes simplesmente geraro diversos endereos, uma para cada faixa de endereos divulgada por eles e ficaro acessveis atravs de qualquer um destes endereos gerados. Como disse a pouco, uma das idias centrais do IPV6 permitir que um mesmo cliente possa ser configurado com vrios endereos diferentes, conforme a necessidade, assim como uma pessoa que utiliza diversos endereos de email . Graas a esta peculiaridade, os servidores DHCP so bem menos necessrios em uma rede IPV6, j que a funo central deles (atribuir os endereos) desempenhada pelos prprios roteadores. Atualmente, o DHCP ainda necessrio para atribuir os endereos DNS, mas j existe um projeto para incorporar mais esta funo aos roteadores, o que em breve far com que os servidores DHCP IPV6 fiquem relegados funo de fornecer informaes adicionais, como no caso de uma rede de terminais que do boot atravs da rede. O brutal aumento no nmero de endereos disponveis inclui um benefcio adicional que um pequeno aumento na segurana. Ao idia que, como atualmente quase todos os endereos IP possuem dono, muito fcil fazer uma varredura, escaneando faixas inteiras de endereos em busca de micros vulnerveis. Esta a idia central dos worms que se propagam de forma espontnea. No caso do IPV6, a "densidade" dos endereos em uso ser muito menor, fazendo com que este tipo de varredura torne-se invivel. Imagine o caso de um pequeno provedor de acesso com 200 usurios, por exemplo. Atualmente, ele teria uma faixa de endereos classe C, como "200.234.23."

e todos os usurios estariam dentro dela. Escaneando apenas 254 endereos, voc detecta vulnerabilidades nos micros destes 200 usurios. Ao migrar para o IPV6, este provedor passaria a utilizar uma faixa como "2001:bce4:cdfe:6547" e os usurios utilizariam endereos definidos com base nos endereos MAC da placa de rede. Os 200 usurios ficam agora espalhados dentro de uma faixa de endereos que permite 18.446.744.073.709.551.616 combinaes. Ou seja, um nmero simplesmente absurdo. Tentar escanear todos os endereos possveis demoraria anos e ainda assim permitiria descobrir apenas os 200 usurios! Seria mais rpido escanear a Internet inteira (dentro da organizao atual) do que escanear uma nica faixa de endereos IPV6. Naturalmente, isso no ajuda muito em casos onde o seu endereo IPV6 conhecido (como no caso dos servidores web), por isso o uso de firewall e sistemas de encriptao (como o SSH) continua sendo uma necessidade. Outros protocolos O TCP/IP tornou-se um protocolo onipresente. Ele usado desde servidores de grande porte at palmtops e celulares, permitindo que dispositivos de plataformas completamente diferentes possam conversar entre si. Mas, antes do TCP/IP, os protocolos mais usados eram o NetBEUI e o IPX/SPX. Eles ainda so utilizados em algumas redes, por isso interessante saber um pouco sobre eles:

NetBEUI O NetBEUI uma espcie de "vov protocolo", pois foi lanado pela IBM no incio da dcada de 1980, para ser usado junto com o IBM PC Network, um micro com configurao semelhante do PC XT, mas que podia ser ligado em rede. Naquela poca, o protocolo possua bem menos recursos e era chamado de NetBIOS. O nome NetBEUI passou a ser usado quando a IBM estendeu os recursos do NetBIOS, formando a verso final do protocolo. No jargo tcnico atual, usamos o termo "NetBEUI" quando nos referimos ao protocolo de rede em si e o termo "NetBIOS" quando queremos nos referir aos comandos deste mesmo protocolo usado pelos programas para acessar a rede. Ao contrrio do IPX/SPX e do TPC/IP, o NetBEUI foi concebido para ser usado apenas em pequenas redes e por isso sempre foi um protocolo extremamente simples. Para ter uma idia, no NetBEUI no existe configurao de endereos, pois os micros conversam diretamente usando os endereos MAC. Por um lado, isto fez que ele se tornasse bastante rpido e fosse considerado o mais rpido protocolo de rede durante muito tempo. Para voc ter uma idia, apenas as verses mais recentes do IPX/SPX e TCP/IP conseguiram superar o NetBEUI em velocidade. Mas, esta simplicidade toda tem um custo: devido ao mtodo simples de endereamento usado pelo NetBEUI, podemos us-lo em redes de no mximo 255 micros. Alm disso, o NetBEUI no suporta enumerao de redes (para ele todos os micros esto ligados na mesma rede). Isto significa que, se voc tiver uma grande Intranet, composta por vrias redes interligadas por roteadores, os micros que usarem o NetBEUI simplesmente no sero capazes de enxergar micros conectados s outras redes, enxergaro apenas os micros a que estiverem conectados diretamente. Devido a esta limitao, dizemos que o NetBEUI um protocolo "norotevel". Apesar de suas limitaes, o NetBEUI ainda usado em algumas redes Windows, por ser rpido, fcil de instalar e usar. Voc no pode us-lo para acessar a Internet, acessar outras mquinas da rede via SSH nem nenhum outro dos servios que vimos at aqui, mas ele permite que as mquinas Windows compartilhem arquivos entre si. Outra limitao que o Samba no compatvel com o NetBEUI (apenas com o TPC/IP), por isso uma estao que tivesse apenas o protocolo NetBEUI ativo, no seria capaz de acessar compartilhamentos em um servidor Samba, mesmo que as demais configuraes estivessem corretas. Verses antigas do Windows, incluindo o Windows 95 e o Windows NT 4.0 utilizavam o NetBEUI como protocolo padro. Nelas, era necessrio ativar o TCP/IP manualmente na configurao da rede para acessar a web ou utilizar outros recursos de rede no suportados pelo NetBEUI, o que fazia com que a maioria simplesmente deixasse os dois protocolos ativos, o que prejudicava a navegao entre os compartilhamentos da rede, j que o

sistema era obrigado a fazer as pesquisas utilizando os dois protocolos. Eram comuns delays de at 30 segundos ao abrir o ambiente de redes ou tentar visualizar os compartilhamentos disponveis em uma mquina da rede, problema que era resolvido ao migrar completamente a rede para o TCP/IP e desinstalar o NetBEUI em todas as mquinas. Devido s suas muitas limitaes, no recomendvel utilizar o NetBEUI nos dias de hoje, de forma que a prpria Microsoft descontinuou o suporte ao NetBEUI a partir do Windows XP. Apesar disso, foi preservado um mtodo de instalao manual, com o propsito de manter compatibilidade com redes antigas, onde ele ainda seja usado. No Windows XP original, os arquivos necessrios podem ser encontrados no CD de instalao do Windows XP, na pasta "D:\VALUEADD\MSFT\NET\NETBEUI" e no XP SP2 na pasta "D:\VALUEADD\MSFT\NET\NETBEUI". Uma vez dentro da pasta, copie o arquivo "NBF.SYS" para a pasta "C:\WINDOWS\system32\drivers" e o NETNBF.INF para a pasta "C:\WINDOWS\inf". Isso faz com que o protocolo fique disponvel para instalao nas propriedades da rede. Em seguida, acesse o menu de configurao da rede e use a opo "Instalar > Protocolo > Microsoft > Protocolo NetBEUI" para que ele seja finalmente instalado. Outra opo usar a opo "Com disco" e indicar a localizao dos arquivos dentro do CD-ROM:

Instalao manual do NetBEUI no Windows XP Ao instalar uma estao de trabalho com o XP em uma rede antiga, baseada em micros com o Windows 95/98, pode ser necessrio ativar o NetBEUI para que ele consiga conversar com as outras mquinas, j que

antigamente, antes da popularizao do acesso Internet, era comum configurar redes locais usando apenas o NetBEUI, sem TCP/IP. IPX/SPX O IPX/SPX o protocolo desenvolvido pela Novell para uso no Novell NetWare. Ele foi o protocolo usado por padro at o NetWare 5.0, quando deu lugar ao TCP/IP como protocolo default. Apesar disso, o IPX/SPX j foi um protocolo bastante popular e ainda continua sendo usado at os dias de hoje em algumas redes. O NetWare no um sistema operacional dentro do conceito tradicional, mas sim um NOS (Network Operating System). Ele roda sobre outro sistema operacional (Windows ou DOS, dependendo da verso), utilizando as rotinas de acesso ao hardware, drivers e outros componentes do sistema hospedeiro e oferecendo a estrutura de rede, incluindo compartilhamento de arquivos e impressoras, autenticao, controle de acesso e outros recursos. No incio da dcada de 1990, o NetWare chegou a dominar o mercado, mas passou a perder espao para os servidores Windows e em seguida tambm para o Linux. Como o NetWare era uma soluo cara, muitas empresas optavam por utilizar os prprios recursos de compartilhamento de arquivos e impressoras includos no Windows 95/98 ou utilizavam servidores Windows NT, cuja implantao era mais barata (sobretudo pela questo da mo de obra, que era muito mais cara no caso do NetWare). Com o lanamento do Windows 2000 Server e do 2003 Server e a popularizao dos servidores Linux, o movimento se intensificou, fazendo com que o NetWare ficasse restrito a nichos cada vez menores. Atualmente muito comum utilizar servidores Linux, rodando o Samba, substituindo servidores Windows NT, 2000 ou 2003 Server. No incio de 2003, a Novell comprou a SuSE, uma das maiores distribuies Linux na Europa e, em seguida, a Ximian (que entre outras coisas desenvolve solues de interoperabilidade entre servidores Linux e Windows) e passou a investir pesado em solues baseadas em Linux, tentando reconquistar o terreno perdido. Voltando a questo do protocolo, assim como o TCP/IP, o IPX/SPX composto por dois protocolos, da o nome. O IPX o responsvel pelo endereamento e transmisso dos pacotes (como o IP), enquanto o SPX o responsvel por criar e encerrar as conexes, verificar o recebimento dos pacotes (retransmitindo pacotes extraviados) e outras funes de controle (como o TCP). Cada estao possui um endereo nico, mas a forma como eles so criados muda radicalmente em relao ao IPV4. Ao invs de especificar manualmente um endereo para cada estao, ou utilizar um servidor DHCP, os endereos so definidos automaticamente, atravs da combinao dos endereos MAC das placas de rede (48 bits) e um endereo de 32 bits para a rede, que voc define como parte da configurao do servidor, resultando em um endereo de 80 bits. No NetWare, alm do mdulo principal (instalado no servidor), fornecido um mdulo cliente, que deve ser instalado em todas as estaes de trabalho. Alm da verso principal do NetWare, existe a verso Personal,

um sistema de rede ponto a ponto, que novamente roda sobre o sistema operacional. Esta verso do NetWare bem fcil de usar, porm nunca foi muito popular, pois o Windows sozinho j permite a criao de redes ponto a ponto muito facilmente, desde o 3.11. possvel usar tanto estaes Windows quanto estaes Linux como clientes de um servidor Novell. No caso do Windows, necessrio ter instalado o protocolo IPX/SPX e tambm um cliente para redes NetWare. No Windows XP, a compatibilidade com o IPX fornecida pelo protocolo "NWLink/IPX/SPX/NetBIOS Protocolo de transporte Compatvel", combinado com o cliente "Servio de cliente para NetWare", que podem ser instalados atravs do menu de propriedades da rede:

Instalao manual do cliente NetWare no Windows XP Para instalar o protocolo IPX/SPX no Windows 95/98 (a maioria das instalaes do NetWare ainda em uso so em redes antigas, por isso clientes com verses antigas do Windows acabam sendo bem mais comuns do que com o XP ou Vista), abra o menu de configurao da rede e use a opo "Adicionar > Protocolo > Microsoft > Protocolo compatvel com IPX/SPX". Para instalar o cliente para redes Novell no Windows 98, clique em "Adicionar > Cliente > Microsoft > Cliente para redes NetWare". Apesar do cliente fornecido com o Windows 98 no ficar devendo muito em termos de recursos, prefervel usar o cliente da prpria Novell, que traz alguns recursos nicos, alm de ser mais rpido. O programa cliente da Novell acompanha o mdulo servidor, mas voc tambm pode baix-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. O cliente ficar residente na forma de um cone ao lado do relgio, 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 o nome de usurio e senha estabelecidos.

Cliente Novell e o protocolo IPX/SPX na configurao de rede de um micro com o Windows 98 Ao usar clientes Linux, voc pode utilizar o NovelClient (com um L s), que pode ser baixado no: http://novelclient.sourceforge.net/: Captulo 5: Segurana e utilitrios A questo da segurana tem se tornado cada vez mais importante medida que a Internet torna-se um ambiente cada vez mais hostil e as ferramentas para capturar trfego, quebrar sistemas de encriptao, capturar senhas e explorar vulnerabilidades diversas tornam-se cada vez mais sofisticadas. Outra questo importante que usamos cada vez mais tecnologias diferentes de acesso e transmisso de dados, o que torna manter sua rede segura uma tarefa mais complicada. Por exemplo, sua rede pode ser bastante segura contra invases "diretas", via Internet, graas ao firewall ativo no gateway da rede, mas ser ao mesmo tempo muito fcil de invadir atravs da rede wireless, caso voc utilize o WEP ou simplesmente deixe a rede aberta, sem encriptao. Ao usar clientes Windows, existe ainda o problema dos vrus, trojans e worms. Os vrus se espalham atravs de arquivos infectados, pginas que exploram vulnerabilidades no navegador, e-mails e assim por diante,

geralmente utilizando alguma tcnica de engenharia social que leve o usurio a clicar em um link ou executar um arquivo. Assim como na vida real, os vrus variam muito em termos de potencial nocivo. Existem desde vrus extremamente perigosos, que destroem os dados do HD, subscrevendo os arquivos com dados aleatrios (de forma que seja impossvel recuper-los), algumas vezes at mesmo danificando o BIOS da placa me; at vrus relativamente inofensivos, que no fazem muita coisa alm de se replicarem por diversos meios, tentando infectar o maior nmero de PCs possveis. Os vrus moderadamente inofensivos so normalmente os que conseguem se espalhar mais rpido e se manter ativos durante mais tempo, j que so os menos notados e os menos combatidos. Com isso, os criadores de vrus lentamente foram mudando de foco, deixando de produzir vrus espetaculares, que apagam todos os dados do HD, para produzirem vrus mais discretos, capazes de se replicarem rapidamente, usando tcnicas criativas, como enviar mensagens para a lista de contatos do MSN ou postar mensagens usando seu login em redes sociais. Como resultado disso, os vrus passaram a atingir cada vez mais mquinas, embora com danos menores. Os trojans so, de certa forma, similares aos vrus, mas o objetivo principal abrir portas e oferecer alguma forma de acesso remoto mquina infectada. Eles so quase sempre muito discretos, desenvolvidos com o objetivo de fazer com que o usurio no perceba que sua mquina est infectada. Isso permite que o invasor roube senhas, use a conexo para enviar spam, procure por informaes valiosas nos arquivos do HD, ou mesmo use as mquinas sob seu controle para lanar ataques diversos contra outras mquinas. Os worms se diferenciam dos vrus e dos trojans pela forma como infectam as mquinas. Em vez de dependerem do usurio para executar o arquivo infectado, os worms se replicam diretamente, explorando vulnerabilidades de segurana nas mquinas da rede. Os mais complexos so capazes de explorar diversas brechas diferentes, de acordo com a situao. Um worm poderia comear invadindo um servidor web com uma verso vulnervel do IIS, infectar outras mquinas da rede local a partir dele, acessando compartilhamentos de rede com permisso de escrita e, a partir delas, se replicar via e-mail, enviando mensagens infectadas para e-mails encontrados no catlogo de endereos; tudo isso sem interveno humana. Os worms podem ser bloqueados por um firewall bem configurado, que bloqueie as portas de entrada (e, se possvel, tambm portas de sada) usadas por ele. possvel tambm bloquear parte dos vrus e trojans adicionando restries com base em extenso de arquivos no servidor proxy, ou adicionando um antivrus como o Clamav no servidor de e-mails, por exemplo, mas a principal linha de defesa acaba sempre sendo o antivrus ativo em cada mquina Windows. No Linux, as coisas so um pouco mais tranqilas neste ponto. Os vrus so quase que inexistentes e as vulnerabilidades em servidores muito utilizados, como o Apache, SSH, etc. so muito menos comuns. O problema que

todos estes prognsticos favorveis do uma falsa sensao de segurana, que acabam levando muitos usurios a assumirem um comportamento de risco, deixando vrios servios ativados, usando senhas fracas ou usando a conta de root no dia-a-dia. Tambm muito comum que os novos usurios fiquem impressionados com os recursos de conectividade disponveis no Linux e acabem abrindo brechas de segurana ao deixar servidores XDMCP, NFS, Squid, etc. abertos para a Internet. Muitos usurios do Windows sequer sabem que possvel manter um servidor FTP aberto no micro de casa, enquanto muitas distribuies Linux instalam servidores Apache ou SSH por default. Muitos usurios Linux mantm servidores diversos habilitados em suas mquinas, algo muito menos comum no mundo Windows. No final das contas, a segurana do sistema depende muito mais do comportamento do usurio do que do sistema operacional em si. Um usurio iniciante que use o Windows XP, sem nenhum firewall ou qualquer cuidado especial, mas que tenha o cuidado de manter o sistema atualizado e no executar qualquer porcaria que chegue por e-mail provavelmente estar mais seguro do que um usurio Linux sem noes de segurana, que use o sistema como root e mantenha um batalho de servidores desatualizados ativos na mquina. Voc poderia perguntar porque algum teria interesse em invadir mquinas de usurios domsticos, que no possuem arquivos valiosos, ou mesmo estaes de trabalho que so usadas apenas para editar textos e enviar emails. A questo principal no o que est armazenado do HD, mas sim a banda e o poder de processamento das mquinas. Ter vrios PCs sob seu controle, principalmente se eles possurem conexes de alta velocidade, significa poder. possvel us-los para alimentar redes P2P como o Kazaa e outros, fundar uma rede de distribuio de warez ou moviez, us-los como servidores complementares para um site porn, enviar spam, us-los para rodar portscans e lanar ataques contra outras mquinas ou at mesmo us-los em um ataque coordenado para tirar um grande portal do ar. As dicas gerais Em um servidor, uma boa poltica de segurana inclui reduzir o nmero de servios ativos, mantendo apenas os servios realmente necessrios operao do servidor, fechar todas as portas no utilizadas no firewall, restringir as permisses de acesso dos usurios que tem acesso ao servidor ao mnimo necessrio para que executem suas tarefas e manter as atualizaes de segurana em dia, sobretudo nos servios diretamente expostos a conexes externas. Um servidor web, por exemplo, poderia ter abertas apenas as portas 22 TCP (SSH, para acesso remoto), 53 UDP (DNS), 80 TCP (HTTP) e 443 TCP (HTTPS), o que deixaria apenas trs pontos de ataque: o servidor web propriamente dito, o servidor DNS e o servidor SSH. No possvel fechar todas as portas (j que, por definio, o servidor precisa receber conexes

dos clientes e desempenhar suas funes), de forma que importante manter os servios disponveis religiosamente atualizados com relao a brechas de segurana. Em um desktop domstico possvel manter todas as portas de entrada fechadas no firewall (ou no gateway da rede), permitindo apenas trfego de sada e trfego de respostas a conexes iniciadas por voc, o que praticamente eliminaria o problema dos ataques diretos. Entretanto, comum que voc precise manter algumas portas abertas (como as usadas por jogos e por programas P2P), o que cria pontos de ataque, tornando necessrio manter os programas atualizados, assim como no caso dos servidores. Outro problema so as formas indiretas de ataque, como vrus e trojans enviados por e-mail, arquivos temperados com malwares, distribudos atravs de redes P2P e sites de download, pginas web que exploram vulnerabilidades do Internet Explorer para executar controles ActiveX, ou mesmo links para trojans enviados por e-mail ou postados em redes sociais. Mesmo que seu PC ou notebook esteja seguro, existe a possibilidade de que os seus dados sejam capturados ao utilizar o micro de algum ou, principalmente, ao utilizar um Cybercaf. Evite digitar qualquer tipo de senha ou dados confidenciais em qualquer micro que no seja seu. Em situaes onde isso realmente necessrio, uma opo dar boot usando uma distribuio linux live-CD. A questo das senhas outro tema importante, j que elas so o ponto fraco de qualquer sistema. Utilize sempre boas senhas, misturando letras e nmeros e com pelo menos 8 (de preferncia 12) caracteres, jamais utilize palavras como senha e troque-as freqentemente. O ideal que ningum alm de voc tenha acesso fsico ao seu PC. Mesmo que voc deixe o micro desligado, ou protegido por uma proteo de tela, possvel instalar programas dando boot atravs de um CD-ROM ou disquete. Se voc administra um servidor ou permite que outros usurios acessem sua mquina remotamente, exija que todos utilizem boas senhas. Muitas brechas de segurana permitem obter acesso de root partindo de um simples login de usurio. Por isso, alm de exigir o uso de boas senhas, voc deve dar logins de usurio apenas pessoas de confiana. Outra boa idia "esconder" seus servidores, alterando suas portas default. Por exemplo, um servidor de FTP escutando na porta 21 (a default) seria facilmente descoberto pelo atacante, que, a partir da, poderia tentar explorar algum tipo de vulnerabilidade no programa para obter acesso. Mas, se voc configur-lo para operar na porta 44756, por exemplo, j seria muito mais complicado que algum o descobrisse. Seria preciso fazer uma varredura de portas completa, que demora vrias horas para perceber que a porta 44756 est aberta e mais algum tempo para descobrir que ela est sendo usada por um servidor de FTP. Quanto mais dificuldade melhor, no mesmo?

Caso voc esteja usando um programa de deteco de intruses, como o Snort, a varredura de portas iria disparar o alarme, fazendo com que voc tivesse conhecimento do ataque antes mesmo do atacante descobrir quais portas esto abertas para tentar fazer qualquer coisa. Mais um erro comum deixar servidores de FTP, web, SSH, etc. disponveis para toda a Internet enquanto voc s precisa deles dentro da sua rede interna. Se voc tem duas placas de rede, ou mesmo uma placa de rede e um modem, fcil filtrar o trfego permitindo que apenas os acessos vindos dos clientes locais sejam aceitos. Isso pode tanto ser feito na configurao do servidor (como no caso do Samba e do Apache) quanto na configurao do firewall. O ideal em termos de segurana no acessar a web diretamente nos desktops. Sempre que possvel, acesse por trs de uma conexo compartilhada, atravs de um servidor Linux com o firewall ativo, ou atravs de um modem ADSL configurado como roteador. Direcione apenas as portas realmente necessrias para os clientes. Todas essas medidas representam a chamada segurana passiva. As brechas de segurana so como balas perdidas, ningum pode dizer onde surgir a prxima. Mesmo um sistema com um excelente histrico de segurana pode revelar um bug monstruoso a qualquer momento. A idia impedir ou pelo menos dificultar a explorao de qualquer eventual brecha. Imagine que amanh algum descubra uma brecha grave no SSH, por exemplo. Se voc deixa o servio ativo no seu servidor e ainda por cima aberto ao mundo, voc estaria com srios problemas. Mas, se voc mantm o servio desativado, ou disponvel apenas para a sua rede interna, a brecha no afetaria diretamente o seu sistema, pois seria preciso passar primeiro pelo firewall para ter acesso a ele. ATAQUES COMUNS EXPLOITS Este um termo genrico para descrever pequenos utilitrios ou exemplos de cdigo que podem ser usados para explorar vulnerabilidades especficas. Eles podem ser tanto usados de forma "stand alone", ou seja, serem usados diretamente, quanto serem incorporados em vrus, cavalos de tria, ferramentas de deteco de vulnerabilidades e outros tipos de programas. Utilitrios de deteco de vulnerabilidades como o Nessus, por exemplo, incorporam um grande nmero de exploits para brechas conhecidas. Durante o teste, ele verifica se o servio ou programa vulnervel est ativo e, caso esteja, simula um ataque contra ele, usando o exploit correspondente. Com isso, possvel verificar se a verso utilizada vulnervel a ele. TROJANS Os trojans (cavalos de tria) so uma forma de invadir "de dentro pra fora",

fazendo com que o prprio usurio execute um programa, ou acesse uma pgina web que se aproveite de vulnerabilidades do navegador. Eles so a forma mais usada para obter o controle de micros domsticos, j que no dependem da existncia de portas abertas ou do uso de servios vulnerveis. O trojan pode instalar uma backdoor (que permite que o micro seja acessado remotamente), instalar um keytrap (para capturar senhas e outras informaes digitadas no teclado) ou mesmo instalar um vrus que passe a se replicar dentro da rede local. Muitos backdoors so capazes de abrir conexes reversas, onde o PC dentro da rede local que estabelece a conexo com um servidor remoto. Como a maioria dos firewalls so configurados para bloquear apenas trfego de entrada, e no trfego de sada, a conexo reversa permite que o PC dentro da rede local seja acessado remotamente. Uma vez dentro do permetro da rede, o atacante ter muito mais facilidade para atacar outras mquinas, j que dentro da rede local a segurana ser muito mais fraca. O prprio VNC suporta o uso de conexes reversas, como veremos em detalhes no captulo 6. Embora os trojans sejam mais comuns no Windows, existem tambm trojans para Linux e outros sistemas. No caso do Linux, o tipo mais perigoso so os rootkits, softwares que exploram um conjunto de vulnerabilidades conhecidas para tentar obter privilgios de root na mquina afetada. Caso alguma delas esteja presente, o software pode assumir o controle da mquina mesmo se executado usando uma conta normal de usurio. Uma vez instalado, o rootkit vai alterar binrios do sistema, instalar novos mdulos no Kernel e alterar o comportamento do sistema de vrias formas para que no seja facilmente detectvel. O processo do rootkit no aparecer ao rodar o "ps -aux", o mdulo que ele inseriu no Kernel para alterar o comportamento do sistema no vai aparecer ao rodar o "lsmod", e assim por diante. Eavesdropping Em conexes no encriptadas, ou encriptadas usando algoritmos fracos, possvel que um atacante consiga capturar os dados transmitidos atravs da rede caso tenha acesso mdia de transmisso (possa plugar um cabo no hub da rede, ou esteja dentro da rea de alcance da rede wireless, por exemplo). Com isso, possvel obter senhas, contedo de mensagens enviadas e outras informaes confidenciais, que podem ser usadas mais tarde para propsitos diversos. Redes locais baseadas em hubs burros ou redes wireless sem encriptao ou que ainda utilizam o WEP so alvos fceis, j que bastaria plugar um notebook no hub, ou coloc-lo dentro da rea de alcance do ponto de acesso para capturar todas as transmisses. Ao usar um switch o risco menor, j que eles transmitem os frames apenas para os destinatrios corretos (e no em todas as portas como os hubs). Entretanto, os switches mais baratos so vulnerveis a ataques de MAC Flooding e de ARP Spoofing, que consistem em, respectivamente, "inundar" o switch com um grande volume de frames com endereos MAC falseados, de forma a esgotar a

memria disponvel e fazer com que ele passe a enviar o trfego para todas as portas e a induzir o switch a enviar o trfego para a mquina do atacante, em vez de envi-los mquina correta. Redes wireless que utilizam o WAP e o WPA2 tambm so muito mais seguras que redes abertas, j que embora seja possvel capturar o trfego da rede, quebrar o algoritmo de encriptao bastante demorado. Existe tambm a possibilidade de capturar os dados em qualquer outro ponto da rede, como, por exemplo, quando eles passam pelo roteador do provedor de acesso, mas isso muito mais raro, pois exigiria que o atacante tivesse acesso rede interna do provedor. De qualquer forma, a melhor soluo para evitar a captura dos dados utilizar protocolos encriptados de transmisso, como o SSH e o HTTPS. O SSH utiliza por default o algoritmo 3DES, que consiste no uso de trs chaves independentes com 64 bits cada uma (que combinado com um sistema mais forte de encriptao, com at 4096 bits, usado durante o login), enquanto o SSL (usado no HTTPS) utiliza um algoritmo de encriptao de 128 bits. Phishing Diferente dos ataques baseados na explorao de brechas de segurana, os ataques de phishing utilizam engenharia social para tentar levar o usurio a revelar informaes confidenciais, tais como senhas de banco, nmeros de carto de crdito, ou mesmo transferir fundos diretamente. Para isso, so usados e-mails e pginas web forjadas, que se fazem passar por pginas de bancos e lojas, entre outras artimanhas. Por serem fceis de aplicar e resultarem em um ganho financeiro direto, os ataques de phishing tem se tornado assustadoramente comuns. Um dos truques mais antigos enviar e-mails simulando um contato do banco ou de alguma loja da qual o usurio seja cliente, simulando algum tipo de recadastramento. O e-mail pode pedir que seja enviada senha atual, juntamente com a nova, por exemplo. Muitas vezes, informaes coletadas em redes sociais ou em pesquisas podem ser usadas para tornar os e-mails mais realsticos, aumentando o ndice de sucesso. Outros tipos de ataques consistem em alterar links em sites e redes sociais, de forma a encaminhar os visitantes a sites forjados. Uma cpia da pgina de um banco pode solicitar o login e senha e depois exibir uma mensagem dizendo que o sistema est em manuteno e pedindo para o usurio tentar novamente depois de alguns minutos, por exemplo (tempo que o falsrio pode usar para acessar a conta real e transferir fundos, utilizando as senhas fornecidas pelo usurio). Normalmente, as transferncias so feitas usando uma mula, ou seja, um laranja que recebe o dinheiro ilegalmente transferido, ou recebe produtos comprados usando nmeros de carto de crdito roubados e os repassa ao fraudador, ficando com uma comisso. Isso permite que uma nica pessoa aplique golpes em diversos pases diferentes, ficando impune na maioria das vezes.

Denial of Service (DoS) Os ataques DoS, ou ataques de negao de servio so feitos no com o objetivo de invadir o sistema, mas sim com o propsito de torn-lo indisponvel. O que os torna preocupantes que eles podem ser lanados contra qualquer host conectado Internet. No necessrio que servios com vulnerabilidades de segurana estejam ativos. Por exemplo, possvel tornar um servidor web indisponvel enviando um grande volume de requisies, aparentemente vlidas, para acesso s pginas hospedadas. Se o servidor no possuir nenhum tipo de filtro ou regra de firewall que limite o volume de pginas servidas a um nico endereo, ele passar a simplesmente tentar responder a todas as requisies, o que saturar o link ou consumir todos os recursos do servidor, fazendo com que ele deixe de responder a requisies de usurios vlidos. Se o servidor possuir uma quota de trfego (na maioria dos planos de dedicated hosting existe uma quota de trfego de 1 ou 2 TB mensais), o atacante pode simplesmente simular um volume constante de requisies (sobretudo download de arquivos hospedados no servidor) de forma a esgotar a quota de trafego e assim fazer com que o servidor fique indisponvel. Mesmo mecanismos destinados a aumentar a segurana do servidor podem ser usados. Por exemplo, se o servidor configurado para bloquear logins no SSH depois de um certo volume de tentativas de acesso usando senhas incorretas, o atacante pode bloquear o acesso de usurios vlidos tentando repetidamente acessar o servidor usando logins variados. Por no saber as senhas, ela no conseguir acesso ao servidor, mas em compensao pode conseguir disparar o sistema de bloqueio, tornando o servidor temporariamente indisponvel para os usurios legtimos. O tipo mais famoso de ataque DoS o DDoS, ou "Distributed denial of service" (ataque distribudo de negao de servio), onde o ataque lanado usando centenas ou milhares de hosts (situados em locais diferentes) simultaneamente. Nesse caso, o ataque especialmente difcil de conter, pois necessrio bloquear as requisies provenientes de cada um dos endereos usados antes que cheguem ao servidor. Ou seja, o bloqueio precisa ser feito pela empresa que administra os links de acesso e no no servidor propriamente dito. Para lanar um ataque DDoS, necessrio ter disposio um nmero muito grande de mquinas, que precisam ser invadidas previamente usando vulnerabilidades diversas, formando uma botnet. Os hosts controlados so chamados de zumbis (zombie computers) e continuam desempenhando suas tarefas de forma aparente normal, at que sejam usadas em ataques. Servidores hospedados em grandes datacenters, universidades ou em rgos governamentais so especialmente efetivos, j que so normalmente ligados a links muito rpidos, mas o arroz de festa so mquinas

domsticas, rodando verses vulnerveis do Windows, que podem ser infectadas em massa usando trojans e vrus. Um pequeno aplicativo de controle instalado em cada uma das mquinas, de forma que elas possam ser controladas atravs de algum ponto central, como um canal de IRC ou uma pgina web secreta. Tipicamente, os servidores (que utilizam links dedicados, com IP fixo e melhor conectividade) so usados como controladores da botnet, coordenando a operao dos PCs domsticos. Depois de obter o controle de um nmero suficiente de mquinas, o atacante precisa de apenas alguns comandos para fazer com que o ataque seja lanado. Com um nmero suficiente de mquinas disposio, possvel derrubar qualquer servidor conectado grande rede. Alm de ser usada em ataques DDoS, a botnet pode ser usada para diversos propsitos, incluindo o envio de spam (estima-se que mais de 50% dos spams sejam enviados a partir de zumbis), distribuio de arquivos, hospedagem de pginas ilegais, fraudes contra sistemas de venda de anncios (as mquinas so usadas para simular cliques nos anncios) e qualquer outra atividade lucrativa. A poca romntica, das pixaes de pginas e ataques massivos contra sites conhecidos deu lugar a quadrilhas organizadas, que usam as mquinas invadidas para ganhar dinheiro Firewalls A ilustrao mais usada para descrever um firewall a de um muro, que isola a rede local da Internet. Mas, na prtica, a operao do firewall lembra muito mais a de um escritrio de alfndega, que tem a funo de fiscalizar o que entra e o que sai, bloqueando itens ilegais e permitindo a passagem de itens autorizados. Uma outra analogia poderia ser feita com relao aos seguranas de uma loja, que precisam impedir a ao de assaltantes, sem com isso impedir a entrada de clientes. Um firewall que simplesmente bloqueasse a passagem de todos os pacotes (como um muro) seria intil, pois simplesmente desconectaria o PC da rede. Na vida real, o firewall uma coleo de regras que so aplicadas ao trfego de rede. Baseado nelas, o firewall decide o que deve ou no passar. justamente por isso que nenhum firewall 100% seguro, j que ele precisa fazer seu trabalho sem prejudicar o uso normal da rede. Outra coisa a ter em mente que o firewall destinado a limitar o acesso aos servios disponveis, evitando que os compartilhamentos de rede do seu servidor, destinados rede interna sejam acessados via Internet, ou limitando o acesso a determinadas portas e a determinados endereos da rede, por exemplo. O firewall trabalha verificando os endereos de origem e de destino dos pacotes, portas a que so destinados e o status das conexes. Ele no destinado a verificar o contedo dos pacotes e por isso pouco pode fazer com relao a vrus, trojans, phishing e outros ataques similares. Para eles, temos os antivrus, que trabalham verificando o contedo dos arquivos

acessados. Para oferecer uma proteo mais completa, muitos firewalls para Windows passaram a incluir tambm ferramentas de deteco de malwares, mesclando as duas categorias e uma nica classe de aplicativos. Um exemplo de firewall "hbrido" o Comodo, que veremos a seguir. Uma boa forma de entender como funciona um firewall examinar alguns exemplos de scripts de firewall para o IPtables. Ele nada mais do que o firewall "padro" no Linux, que diretamente integrado ao Kernel e pode ser tanto programado diretamente quando usado como base para o desenvolvimento de firewalls grficos. Existem diversos firewall grficos para Linux, como o Firestarter (que veremos em detalhes a seguir), mas todos eles utilizam como base o IPtables, programando a ao do firewall de acordo com a sua configurao. Por exemplo, quando voc diz ao Firestarter que deseja permitir conexes na porta 22 TCP (a porta do SSH) a partir de qualquer endereo, ele incluiria uma regra similar a esta na programao do firewall: iptables -A INPUT -p tcp --dport 22 -j ACCEPT Este um comando que poderia ser executado diretamente no terminal, ou usado como parte de um script de configurao do firewall. Ele diz que qualquer pacote de entrada (INPUT), usando o protocolo TCP (-p tcp), destinado porta 22 (--dport 22) deve ser aceito (-j ACCEPT). Ao bloquear o acesso ao domnio "orkut.com" para os PCs da rede local que acessam atravs da conexo compartilhada pelo servidor, seria includa uma regra similar a essa: iptables -A FORWARD -d orkut.com -j REJECT A regra "FORWARD" se aplica a pacotes que so recebidos em uma interface e roteados para outra, como no caso dos pacotes recebidos na interface de rede local e roteados para a Internet. A opo "-d orkut.com" rotula os pacotes destinados ao servidor do orkut, enquanto a regra "-j REJECT" diz o que deve ser feito com eles, ou seja, diz que eles devem ser rejeitados. Com isso, o servidor passa a se recusar a encaminhar requisies de pginas para os servidores do domnio especificado, impedindo que os usurios acessem o servio. Voc pode imaginar que o firewall programado com uma sequncia de regras como essas, que dizem o que ele deve fazer em cada situao prevista, terminando com uma regra mais geral, que diz que pacotes que no se enquadram nas regras estabelecidas devem ser recusados (ou aceitos, de acordo com a poltica de acesso adotada). Cada pacote que passa pelo firewall precisa ento passar por cada uma das regras, at que o firewall encontre uma que diga o que fazer com ele. Se existem duas regras conflitantes (uma diz que o pacote deve ser aceito e outra diz que ele deve ser recusado, por exemplo), vale a regra que aparecer primeiro na lista.

Aqui temos um exemplo bem simples de script com regras para o IPtables, que autoriza acessos provenientes da rede local (que no exemplo utiliza a interface "eth1" e a faixa de endereos 192.168.1.x, com mscara 255.255.255.0), permite acessos (a partir de qualquer endereo) na porta 22, libera o trfego na interface de loopback e em seguida bloqueia conexes de entrada no especificadas nas regras anteriores, deixando passar apenas pacotes de resposta para as conexes iniciadas por voc: iptables -A INPUT -i eth1 -s 192.168.1.0/255.255.255.0 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp --syn -j DROP Um script de firewall mais completo poderia ter vrias dezenas de linhas, que logo se tornariam um emaranhado difcil de administrar. Firewalls grficos como o Firestarter reduzem a complexidade, administrando as regras para voc. No mundo Windows, a presena de um firewall pr-instalado no sistema um fenmeno relativamente recente. At o Windows 2000, o sistema simplesmente no contava com firewall algum, o que permitiu o surgimento de inmeros firewalls domsticos oferecidos por empresas independentes, como o Zone Alarm. O Windows XP original trouxe um firewall simples batizado de ICF (Internet Connection Firewall), que era destinado a oferecer um nvel mnimo de proteo a mquinas destinadas a compartilhar a conexo com a rede local. O ICF evoluiu bastante desde ento, dando origem ao Windows Firewall, includo a partir do Windows XP SP2, que embora ainda oferea um conjunto modesto de recursos, j bem mais utilizvel que o antecessor. Vamos ento colocar a mo na massa, estudando sobre a configurao do Windows Firewall, do Comodo (uma opo de firewall para Windows com um volume bem maior de recursos) e do Firestarter, para Linux. Windows Firewall O Windows Firewall um firewall bsico, que no oferece grandes vantagens sobre outros produtos nem particularmente seguro, mas que oferece como vantagens o fato de j vir ativo por padro (a partir do Windows XP SP2) e ser relativamente fcil de configurar. Ele o absoluto mnimo em termos de proteo para uma mquina Windows diretamente conectada Internet. Na tela de configurao voc tem apenas trs opes: ativar o firewall (usando excees), ativar sem permitir excees ou desativ-lo:

Na aba "Excees" voc tem acesso a uma lista de programas e servios que podem receber conexes de entrada. Por padro, ficam marcadas as opes "rea de trabalho remota", "Assistncia remota", "Compartilhamento de Arquivos e Impressoras" e "Estrutura UPnP". O acesso a arquivos e impressoras fica aberto apenas para a rede local e a Assistncia remota (onde o convite precisa ser gerado manualmente) fica aberta para a Internet. Voc pode perceber que a aba "Excees" (no screenshot da direita) mostra apenas os programas detectados pelo firewall, mas no as portas usadas por cada um. A idia que ao marcar um programa na lista, voc automaticamente abre todas as portas usadas por ele. Ou seja, a regra se aplica a conexes destinadas ao aplicativo e no a uma porta especfica (mais detalhes a seguir). Clicando sobre o aplicativo e usando o boto "editar", voc pode ver a lista das portas usadas por ele (no caso dos aplicativos que usam mais de uma porta). O "Compartilhamento de Arquivos e Impressoras", por exemplo, abre um total de 4 portas (139 TCP, 445 TCP, 137 UDP e 138 UDP), que correspondem s trs portas usadas pelo protocolo NetBIOS e porta 445 TCP usada pelo protocolo CIFS. Clicando no "Alterar escopo" voc pode definir a partir de quais endereos o aplicativo poder ser acessado:

A opo "Qualquer computador (inclusive na Internet)" dispensa comentrios, j que abre as portas para qualquer um que tenha acesso sua mquina. Ela deve ser usada apenas no caso de programas de administrao remota, programas P2P que realmente precisem de portas de entrada e nos casos em que voc quiser disponibilizar servidores para a Internet. A opo "Minha rede (sub-rede) somente" abre apenas para acessos provenientes da rede local. Em micros com duas placas de rede, que esto conectados simultaneamente internet e a uma rede local, importante configurar esta opo com ateno, evitando abrir servios que devem ficar ativos apenas para a rede local (como o Compartilhamento de Arquivos e Impressoras) para a Internet. A terceira opo, "Lista personalizada", destinada a situaes onde voc quer que o servio fique acessvel apenas para alguns endereos especficos. Se um amigo vai se conectar sua mquina via VNC para ajudar a resolver um problema, por exemplo, voc pode perguntar qual o endereo IP corrente e abrir a porta do VNC apenas para o endereo IP usado por ele, o que evita o risco de abrir a porta para toda a Internet. Voc pode tambm especificar mais de um endereo, separando-os por vrgula:

Ao adicionar uma nova exceo configurao do firewall, voc tem a opo de indicar um programa ("Adicionar programa...") ou especificar manualmente a porta que deve ser aberta ("Adicionar Porta..."). Ao clicar no "Adicionar Programa", voc tem acesso a um menu que mostra os programas instalados, permitindo que voc escolha o desejado, enquanto que ao usar o "Adicionar Porta" voc deve especificar manualmente a porta usada e se deve ser aberta a porta TCP ou UDP correspondente:

Em teoria, adicionar regras para aplicativos um pouco mais seguro do que adicionar regras baseadas em portas, pois as excees baseadas em aplicativos ficam ativas apenas enquanto o programa est aberto (ao fechar o programa, a porta fechada no firewall). Veja que em ambas as opes voc tem acesso ao boto "Alterar escopo", que permite especificar quais endereos tero acesso porta aberta (o default abrir para todos) . Concluindo, na aba "Avanado" voc tem uma lista das interfaces disponveis. Isso permite que voc mantenha o firewall ativo para a interface da Internet, mas ao mesmo tempo desative-o para a interface da rede local (esta opo est disponvel apenas a partir do Windows XP SP2):

O boto "ICMP > Configuraes" permite abrir o firewall para um conjunto de pacotes ICMP. Por padro, o firewall ativa a resposta a pings (Permitir solicitao de eco de entrada), opo que voc pode desativar para tornar

sua mquina um pouco menos visvel a atacantes casuais, que escaneiam faixas de endereos da Internet em busca de alvos. Uma observao que voc no consegue desativar os pings se a porta 445 (que faz parte do "Compartilhamento de Arquivos e Impressoras") estiver aberta nas excees do firewall. Comodo Apesar de ser bem espartano, o Windows Firewall oferece uma vantagem em relao a outros firewalls para Windows, que o fato de no ficar constantemente perguntando se um determinado acesso deve ser autorizado ou no. Com exceo de alguns spywares e backdoors comuns, o firewall libera o trfego de sada e limita o trfego de entrada s excees configuradas e aos pacotes de resposta a conexes iniciadas por voc. O firewall no faz nada com relao aos vrus e malwares em geral (que nas mquinas Windows so um problema talvez at maior do que os ataques diretos), tarefa que seria responsabilidade do antivrus. A grande maioria dos demais firewalls para Windows trabalham solicitando confirmaes do usurio e aprendem quais acessos devem ser autorizados e quais no. Por um lado isso bom, j que o firewall pode monitorar tambm as conexes de sada e permitir que o usurio bloqueie o envio de dados por parte de spywares e qualquer programa desconhecido, mas, por outro lado, a aporrinhao acaba tendo um efeito contrrio em muitos casos, fazendo com que o usurio se acostume com as mensagens e passe a simplesmente autorizar tudo. O Comodo um bom candidato a substituir Windows Firewall, j que oferece mais recursos, possui um bom histrico de segurana e disponibilizado gratuitamente, diferente da maioria dos outros firewalls para Windows, onde uma verso limitada disponibilizada gratuitamente e a verso completa vendida. Um dos destaques o Defense+, que oferece um sistema de proteo contra malwares em geral, desempenhando parte das funes de um antivirus. A verso em portugus pode ser baixada no http://www.comodobr.com/produtos/prd_firewall.php, enquanto a verso internacional est disponvel no: http://www.personalfirewall.comodo.com. Enquanto escrevo, a verso 3.0 ainda no est disponvel em Portugus, por isso vou utilizar a verso internacional, em ingls. Assim como outros firewalls para Windows, ao ser instalado o Comodo se registra junto central de segurana do Windows XP e se oferece para desativar o Windows Firewall antes de continuar :

Perto do final da instalao, voc tem a opo de ativar o Defense+ (a opo mais completa), instalar apenas o Firewall ou instalar o Firewall ativando o Leak Protection, que funciona como um meio termo, complementando o firewall com um sistema de proteo contra a ao de malwares. Ativando o Defense+ o Comodo oferece um bom nvel de proteo, o que permite que um usurio com noes mnimas de segurana e hbitos saudveis de navegao possa muito bem manter seu PC seguro mesmo sem utilizar um antivrus dedicado.

Caso ativado, o Defense+ passa a monitorar a atividade dos programas, exibindo alertas em caso de atividades potencialmente perigosas, como alterar arquivos, acessar reas de memria usadas por outros programas e alterar chaves de registro. Essas operaes so completamente normais, j que so executadas durante o processo de instalao ou de atualizao de praticamente qualquer programa. O prprio Firefox dispara um total de 4 alertas durante a atualizao automtica e o IE 6 dispara dois da primeira vez que aberto:

Se voc confia no aplicativo, pode usar a opo "Treat this application as > Trusted Application", caso contrrio pode bloquear a operao, ou limitar a atividade do programa usando a opo "Treat this application as > Limited Application". O principal cuidado verificar se os programas citados nos alertas so mesmo aplicativos ou componentes de aplicativos que voc utiliza e no malwares disfarados para se parecerem com eles.

Se voc no tem certeza sobre qual deciso tomar, experimente bloquear a requisio, desmarcando a opo "Remember my answer". Com isso, a resposta no ser salva e a mesma pergunta voltar a ser feita quando a mesma situao se repetir, com a diferena de que na segunda vez voc j conhecer o efeito e poder tomar a deciso definitiva . Assim como em outras ferramentas de proteo, a maior parte da efetividade do Defense+ reside justamente em acompanhar os alertas e bloquear a ao de programas suspeitos. Se voc no tem pacincia para ler os alertas e passa a simplesmente autorizar todos os alertas sem conferir os avisos, melhor desativar o software de uma vez, pois ele deixar de ser efetivo . Na verso 2.4 estava disponvel tambm a opo "Data Execution Prevention", que tira proveito da proteo de reas de memria destinadas ao armazenamento de dados oferecida pelos processadores atuais para aumentar a proteo contra ataques de buffer overflow. A Intel chama o recurso de XD bit (eXecute Disable) e a AMD chama de NX bit (No eXecute), mas nesse caso so dois nomes diferentes para a mesma coisa. O recurso suportado por quase todos os processadores Intel a partir do Pentium 4 5xx e tambm pelos processadores AMD a partir do Athlon 64. Na verso 3.0 ela ativada automaticamente (se suportada pelo processador) ao marcar as opes "Firewall with Defense+" ou "Leak Protection" . Continuando, logo depois de reiniciar o micro, o firewall pergunta sobre a configurao da placa de rede local, detectando placas configuradas usando as faixas de endereos privados. Isso lhe d a opo de permitir o acesso dos outros micros da rede local:

Sem definir uma interface de rede local, qualquer tentativa de acesso a um compartilhamento, programa ou servio disponvel no seu micro por parte de outros micros da rede local ser tratada como se fosse um acesso proveniente da Internet, com a exibio de um alerta se segurana, como

nestes dois alertas gerados ao acessar um compartilhamento de arquivos a partir de outros PCs da rede:

A interface do Comodo dividida em 4 sees. A primeira a

"Summary", onde voc tem um resumo geral do status do sistema e pode ajustar o nvel de segurana do firewall (atravs da opo "Custom Policy Mode"). Para a maioria dos usurios, o nvel ideal o "Train with Safe Mode", onde o firewall autoriza diretamente conexes consideradas seguras e pergunta sobre as demais, em um processo de aprendizado contnuo:

Se voc julgar que o firewall j est suficientemente treinado, pode experimentar a opo "Custom Policy Mode", onde o firewall passa a aplicar as regras j definidas, se limitando a exibir avisos sobre as conexes recusadas. Nesse modo, qualquer alterao nas regras precisa ser feita manualmente. Voc encontra a opo de proteger a configurao do firewall usando senha dentro da opo "Miscellaneous > Settings > Parental Control". Em um PC usado por vrias pessoas, ela pode ser combinada com a "Custom Policy Mode" para evitar que outras pessoas alterem as configuraes de firewall definidas por voc. Voc pode tambm exportar as configuraes atuais (de forma a replic-las para vrios PCs, sem precisar refazer toda a configurao manualmente) atravs da opo "Miscellaneous > Manage My Configuration > Export". A quarta opo, "Training Mode", similar "Train with Safe Mode", com a diferena de que o firewall pergunta sobre tudo, sem usar sua lista de operaes consideradas seguras. Este o modo que demanda mais mo de obra, mas em compensao o que oferece mais controle sobre a programao do firewall.

Um recurso digno de nota a opo "Switch to Installation Mode", disponvel no canto inferior. Ela permite relaxar temporariamente o nvel de segurana, evitando falsos positivos durante a instalao ou atualizao de programas:

As opes mais interessantes esto escondidas dentro da seo "Firewall", que subdividida nas sees "Common Tasks" e "Advanced:"

As opes "Define a New Trusted Application" e "Define a New Blocked Application" so atalhos para criar rapidamente regras para autorizar ou restringir o acesso de determinados aplicativos, de forma que o firewall no pergunte mais sobre eles. Ao adicionar um aplicativo, ele passa a ter carta branca tanto para iniciar quanto para receber conexes de entrada, de forma similar ao que temos ao usar a opo "Adicionar programa..." do Windows Firewall. A opo "My Network Zones" permite criar "zonas", contendo endereos ou faixas de endereos, que podem ser usadas para definir regras. Para criar uma zona, use primeiro a opo "Add > A New Network Zone" e d um

nome a ela. Clique em seguida sobre a zona vazia e use a opo "Add > A New Address" para adicionar os endereos ou a faixa de endereos que far parte dela:

importante definir uma zona de endereos para a sua rede local e zonas separadas para outros endereos em que voc confia. O simples fato de definir as zonas no tem nenhum efeito sobre a operao do firewall. Elas so apenas argumentos que sero usados mais tarde ao criar regras para o firewall manualmente. Em um micro diretamente conectado Internet, interessante usar a opo "Stealth Ports Wizard" para que o firewall "esconda seu PC", deixando de responder a requisies em portas fechadas na configurao. Isso faz com que seu PC fique virtualmente indetectvel, deixando de aparecer em varreduras automticas. Isso previne muitos ataques casuais, que comeam justamente com uma varredura de portas para verificar quais endereos dentro de uma determinada faixa esto ocupados e a partir da lanar ataques contra eles. Ao acessar o Stealth Ports Wizard, voc tem a opo de permitir o acesso de uma determinada faixa de endereos (a rede local, por exemplo) e bloquear o acesso dos demais, ou simplesmente bloquear todos, sem excees. A segunda opo til quando voc estiver acessando em um hotspot wireless ou em uma rede de terceiros. A opo "View Active Connections" provavelmente a que voc mais usar no dia-a-dia. Ela permite acompanhar as conexes abertas em tempo real, verificando quais portas esto sendo usadas, por quais programas e por quais endereos IP. algo similar ao que temos ao executar o comando netstat, mas apresentado de forma mais amigvel. Dentro da seo "Firewall Advanced" temos a opo "Network Security Policy", a rea "avanada" da configurao, atravs da qual voc pode

incluir regras manualmente, alm de revisar as regras geradas durante o processo de aprendizado do firewall. A seo est dividida em duas abas. A aba "Application Rules" mostra as regras que se aplicam a aplicativos (ao autorizar um aplicativo, voc o autoriza a receber conexes em quaisquer portas), enquanto a "Global Rules" permite definir regras genricas, onde o firewall autoriza conexes em determinadas portas, ou a partir de determinadas faixas de endereos, no importando qual aplicativo est sendo contactado:

Dentro da aba "Global Rules" voc pode definir regras baseadas em endereos, faixas de endereos ou portas. Para criar uma regra permitindo acessos de PCs provenientes da rede local, por exemplo, voc comearia criando uma zona, contendo a faixa de endereos desejada atravs do "My Network Zones". Ao criar a regra no "Global Rules", voc usaria as opes "Action: Allow", "Protocol: TCP or UDP", "Direction: In/Out" e marcaria a opo "Zone" dentro da aba "Source Address", escolhendo a zona com a faixa de endereos da rede local:

Para abrir a porta usada por um determinado aplicativo, voc usaria as opes "Action: Allow", "Protocol: TCP" (ou UDP, de acordo com o protocolo usado), "Direction: In" e marcaria a opo "A Single Port" dentro da aba "Source Port", indicando a porta desejada (no exemplo estou abrindo a porta 5900 TCP, usada pela verso Windows do VNC Server). Em ambos os

casos, o campo "Description" apenas um nome para a regra, que no tem relao com a operao do firewall. Continuando, dentro da seo "Attack Detection Settings" possvel ajustar mais algumas opes diversas, relacionadas com o protocolo ICMP, juntamente com protees contra ataques diversos:

Na aba "Intrusion Detection", possvel configurar o bloqueio automtico contra portscans e ataques DoS oferecido pelo firewall. Em ambos os casos, o ataque caracterizado pelo envio de um grande volume de pacotes TCP ou UDP. Por default, caso o firewall receba um fluxo constante de mais de 20 pacotes por segundo, durante mais de 20 segundos (indcio de que algum est executando um portscan contra sua mquina), o endereo IP ser bloqueado durante 5 minutos. Um ataque DoS caracterizado pelo envio de um grande volume de pacotes TCP, UDP ou ICMP, com o objetivo de obrigar sua mquina a responder cada um com um pacote ACK, ocupando toda a sua banda e esgotando o espao da tabela de conexes do sistema. Um ataque DoS pode ser lanado por qualquer um que possua um link relativamente rpido, j que fcil saturar um link domstico com trfego. Ao detectar um ataque DoS, o Comodo entra em um "modo de emergncia", onde todo o trfego de entrada interrompido e o firewall passa a aceitar apenas respostas a conexes iniciadas por voc, descartando os pacotes relativos ao DoS. Por default, o bloqueio mantido por 120 segundos, mas voc pode ajustar o valor caso desejado. Outra opo til para aumentar a resistncia do sistema a ataques DoS a opo "Do Protocol Analysis" que, apesar de consumir uma boa dose de recursos do sistema, permite que o firewall bloqueie automaticamente

pacotes invlidos, que so a base da maior parte dos ataques de negao de servio. A menos que voc tenha contato com os responsveis pelos roteadores do provedor de acesso, ou da operadora responsvel pelos links e consiga fazer com que eles bloqueiem os pacotes antes de chegarem sua mquina, impossvel bloquear completamente um ataque DoS, mas a combinao dessas opes tornar o seu host bem menos susceptvel a eles. Concluindo, voc pode ver a lista das regras adicionadas na programao do Defense+ (atravs das respostas s perguntas) atravs da opo "Defense+ > Advanced > Computer Security Policy". atravs dela que voc pode alterar regras definidas incorretamente, que prejudiquem a operao dos aplicativos. Naturalmente, essa configurao s se aplica se o Defense+ estiver ativo:

Firestarter O Firestarter um firewall grfico para Linux, que ao mesmo tempo bastante poderoso e fcil de usar. Ele adequado para uso em desktops, onde necessria uma forma simples de monitorar tentativas de conexo e abrir portas. Ele tornou-se rapidamente uma opo bastante popular e passou a ser includo nas principais distribuies. Voc pode instal-lo usando o gerenciador de pacotes (opo recomendada) ou baixar os pacotes disponveis no http://www.fs-

security.com/download.php. No Ubuntu e em outras distribuies derivadas do Debian, voc pode instal-lo usando o apt-get, como em: $ sudo apt-get install firestarter Uma ltima opo baixar o pacote com o cdigo-fonte e compil-lo manualmente. A instalao neste caso feita descompactando o arquivo e rodando os comandos "./configure", "make" e "make install". A dificuldade que voc precisa ter os compiladores e a biblioteca de desenvolvimento do GTK instalados. Ao abrir o Firestarter pela primeira vez, aberto um assistente que pede algumas informaes bsicas sobre a configurao da rede e oferece opes para compartilhar a conexo e ativar o firewall sob demanda, ao conectar via modem ou ADSL PPPoE. O compartilhamento de conexo cria um compartilhamento simples, via NAT, equivalente a usar as trs regras do IPtables para compartilhar a conexo que veremos no captulo 6. Para compartilhar a conexo preciso que o seu micro possua duas placas de rede, uma para a rede local e a outra para a Internet. Ao compartilhar a conexo, necessrio apenas marcar a opo "Habilitar o compartilhamento de conexo Internet" e indicar qual a placa ligada rede local:

Estas configuraes podem ser alteradas posteriormente no menu "Editar > Preferncias". O Firestarter pode ser usado tambm para configurar o servidor DHCP, caso ele esteja instalado; se a opo de habilitar o servidor DHCP aparecer desativada na sua configurao, verifique se o pacote com o servidor DHCP (dhcp3-server, dhcp-server ou dhcp, dependendo da distribuio) est instalado. O Firestarter apenas altera a configurao, ele no faz a instalao do servidor DHCP para voc:

Como o Firestarter precisa manipular as regras do IPtables e configurar outros componentes do sistema, ele s pode ser executado como root. Em muitas distribuies, adicionado um cone no menu que executa o Firestarter atravs do gksu ou kdesu, solicitando a senha de root durante a abertura. Uma vez aberto, o Firestarter bloqueia por padro todas as portas e loga todas as tentativas de conexo, uma configurao bastante segura. A partir da, voc pode ir criando uma lista de excees, permitindo conexes em determinadas portas e a partir de determinados endereos. Ainda na janela de configuraes, verifique se a opo "Mtodo de rejeio de pacotes preferido" est configurada como "Descartar silenciosamente", em que usada a poltica "DROP" do IPtables, ao invs de "REJECT", onde o emissor recebe resposta. A opo "Trfego de broadcast" se refere a todos os pacotes direcionados rede, como, por exemplo, os pacotes usados por servidores Windows (e Samba) para mapear os compartilhamentos disponveis na rede. Deixe sempre a opo "Block broadcasts from external network" habilitada, para que sejam bloqueados os pacotes de broadcast provenientes da Internet. Caso esteja usando uma rede wireless, acessando atravs de uma rede de terceiros (ou utilizando qualquer tipo de rede que considere insegura), marque tambm a opo "Block broadcasts from internal network", para bloquear tambm os pacotes provenientes da rede local:

Um dos recursos mais interessantes, e o principal diferencial com relao a outros projetos, que o Firestarter transforma os logs de tentativas de acesso gerados pelo IPtables em avisos dentro da aba "eventos". Quando uma nova tentativa de acesso registrada, o cone ao lado do relgio fica vermelho e voc tem a opo de aceitar ou recusar a conexo. Na ilustrao, temos uma tentativa de acesso ao servidor SSH, que est habilitado na porta 22 a partir do host 192.168.1.2:

A opo "Permitir servio de entrada para a origem" faz com que, da em diante, o host 192.168.1.2 possa acessar o SSH (apenas na porta 22), sem

disparar novamente o alarme, enquanto a opo "Permitir conexes a partir da origem" faz com que o 192.168.1.2 possa acessar qualquer servio, em qualquer porta. Esta segunda opo interessante para micros da rede local. Finalmente, a opo "Permitir servio de entrada para todos" abre a porta do SSH para todo mundo, incluindo micros da Internet. Esta uma opo que deve ser usada com mais cautela. Todas as regras adicionadas entram em vigor imediatamente e ficam acessveis para modificao ou consulta na aba "Poltica". Voc pode ir tambm direto ao ponto, abrindo as portas utilizadas por algum servio em especial antes que o firewall bloqueie a conexo. Na interface principal, acesse a aba "Poltica", clique com o boto direito sobre o quadro "Permitir servio", "Adicionar Regra". J esto disponveis regras prontas para vrios servios. Lembre-se de que necessrio abrir portas apenas quando voc est rodando um servidor Samba, Apache, SSH, etc.; no preciso abrir portas para acessar estes mesmos servios como cliente. A nica exceo importante para esta regra de ouro o NFS, onde preciso manter a porta 111 aberta (no cliente) para conseguir montar os compartilhamentos. Note que alm da opo para abrir para todo mundo, voc pode abrir apenas para um endereo IP especfico ou para uma faixa de IPs, como em "192.168.1.0".

Caso o compartilhamento da conexo esteja ativo, aparecer mais uma seo dentro da aba "Poltica", a "Servio de encaminhamento", que permite redirecionar portas de entrada para micros da rede local. A configurao similar abertura de portas, mas agora, em vez de especificar quais endereos tero acesso porta aberta, voc especifica qual micro da rede local receber as conexes direcionadas a ela:

Voc pode acompanhar as conexes em uso atravs do campo "Conexes ativas", na tela principal. Note que a lista inclui todas as conexes, tanto as conexes como cliente, contatando outros micros da rede ou Internet quanto as conexes como servidor, recebendo uma conexo a partir de fora. Outra observao que muitos programas abrem diversas conexes simultneas, o Gaim (ou outro cliente de ICQ/MSN), por exemplo, abre uma conexo com o servidor principal (quando voc fica online) e mais uma conexo para cada janela de conversa aberta. Uma nica instncia do Bittorrent, por exemplo, pode chegar a abrir mais de 20 conexes, j que baixa e serve o arquivo para vrios hosts simultaneamente. Preste ateno nas conexes em que o destino seu prprio endereo IP pois elas indicam conexes a servidores ativos na sua mquina.

Caso o compartilhamento de conexo esteja ativo, a lista mostra todas as conexes, de todos os micros da rede local (ou seja, uma lista possivelmente bem grande). Isso pode ser usado para detectar micros que esto rodando programas que consomem muita banda, como programas P2P em geral, e tomar as providncias necessrias, avisando o usurio ou bloqueando as portas ou endereos IP das estaes.

Para isso, acesse a aba "Poltica". Mude a opo no boto "Edio" para "Poltica de trfego de sada". As opes agora permitem bloquear trfego de dentro para fora, impedindo que determinados programas-clientes funcionem, ou que certos servidores ou sites sejam acessados. Neste caso, existem duas abordagens. Voc pode bloquear a porta usada pelo cliente, ou pode bloquear o acesso ao servidor a que ele se conecta. Por exemplo, o MSN envia mensagens atravs da porta 1863 e se conecta ao servidor messenger.hotmail.com. Bloqueando qualquer um dos dois, o cliente j deixa de funcionar. Mas, para garantir, voc bloqueia ambos. Existe ainda um cliente disponvel via navegador, atravs da pgina http://webmessenger.msn.com, que voc pode pode bloquear tambm. O ICQ se conecta ao servidor login.icq.com, atravs da porta 5190. Assim como no caso do MSN, existe uma verso via navegador, disponvel no site http://go.icq.com. Voc pode bloquear as trs coisas. Se os usurios utilizarem clientes via web, como o meebo.com, voc pode tambm adicion-los lista, eliminando assim as brechas sucessivamente. Na mesma tela, possvel bloquear tambm sites especficos, adicionando domnio por domnio lista. A idia aqui bloquear pginas especficas nas quais os usurios estejam gastando muito tempo, ou pginas de contedo imprprio. Lembre-se de que: 1- No caso de pginas de contedo imprprio, mais prtico usar um filtro de contedo (como um servidor Squid com o DansGuardian) do que ficar tentando bloquear endereo por endereo no firewall, j que existem muitos . 2- Bloquear um domnio ou um endereo IP aqui vai bloquear o acesso de todos os protocolos (POP3, SMTP, SSH, FTP, etc.), no apenas http, ou seja, significa realmente cortar relaes. Caso voc bloqueie o acesso ao IP de um servidor que hospeda vrios sites, vai bloquear o acesso a todos eles.

Veja que aqui estou usando a opo "Tolerante por padro", na qual o firewall por padro permite todo o trfego de sada e voc especifica manualmente o que bloquear. Voc pode utilizar tambm o modo "Restrito por padro", onde o firewall bloqueia tudo e voc precisa ir abrindo uma a uma as portas que sero utilizadas. O mnimo neste caso abrir as portas 53/UDP (DNS), 80/TCP (http) e 443/TCP (https) para permitir o acesso web bsico e, a partir da, ir abrindo um a um os demais protocolos necessrios. Uma vez que o firewall ativado, as regras ficam ativas mesmo que voc feche a interface principal. O Firestarter fica residente na forma do servio de sistema "firestarter", que executado de forma independente da interface. Voc pode usar o comando "iptables -L", que lista as regras de firewall ativas para comprovar isso. Ao fechar a interface grfica, voc perde apenas a possibilidade de monitorar as tentativas de acesso e aceitar conexes Para realmente parar o firewall, voc precisa reabrir a interface e clicar no "Parar firewall" ou usar o comando "/etc/init.d/firestarter stop". Ao contrrio da maioria dos firewalls para Windows, o firewall em si independente da interface. Para que o firewall seja inicializado automaticamente durante o boot, importante que o sistema esteja configurado para inicializar o servio "firestarter" durante o boot. No Mandriva, voc pode habilit-lo no menu de servios, dentro do Painel de Controle. No Fedora, e em outras distribuies derivadas do Red Hat, use o comando "chkconfig firestarter on"

e, nas distribuies derivadas do Debian, use o comando "update-rc.d -f firestarter defaults". Uma ressalva que, ao instalar a partir do cdigo fonte, preciso copiar manualmente o script "/etc/init.d/firestarter" para que ele trabalhe como um servio de sistema. Dentro da rvore com o cdigo-fonte, voc encontra scripts para vrias distribuies. Voc pode tambm configurar a interface do Firestarter para ficar residente como um cone do lado do relgio ao ser fechado no "Editar > Preferncias > Interface > Minimizar para a bandeja ao fechar a janela" . Mais um problema comum a necessidade de fornecer a senha de root cada vez que a interface do Firestarter aberta, um detalhe bastante chato. Voc pode eliminar essa necessidade utilizando o sudo para permitir que o seu usurio possa abrir o Firestarter como root, sem precisar fornecer a senha. Para isso, instale o pacote "sudo" (usando o gerenciador de pacotes da distribuio que estiver utilizando) e adicione as seguintes linhas no final do arquivo "/etc/sudoers": usurio ALL= NOPASSWD: /usr/bin/firestarter usurio ALL= NOPASSWD: /usr/sbin/firestarter ... substituindo o "usurio" pelo login desejado. Note que coloquei duas linhas, pois em algumas distribuies o binrio do Firestarter instalado dentro da pasta "/usr/bin" e, em outras (Debian, por exemplo), na pasta "/usr/sbin". Na verdade, voc vai precisar de apenas uma delas. Feito isso, voc pode passar a inicializar o Firestarter usando o comando "sudo firestarter" ou "sudo firestarter start-hidden", se preferir que ele j inicie minimizado ao lado do relgio. Para que ele seja aberto automaticamente junto com o KDE, crie um arquivo de texto chamado "firestarter.desktop", na pasta ".kde/Autostart/" dentro da sua pasta home, contendo o seguinte: [Desktop Entry] Exec=sudo firestarter --start-hidden Name=Firestarter Type=Application Todos os cones de aplicativos colocados dentro desta pasta so executados durante a abertura do KDE. Voc pode arrastar um cone do menu para ela, usando o Konqueror ou criando um arquivo de texto manualmente. Note que os cones colocados dentro desta pasta contm uma sintaxe especial e terminam com a extenso ".desktop".

Executando com um usurio separado O firewall protege contra worms e invases, ataques "de fora para dentro", mas no protege contra vrus e trojans executados localmente. No primeiro tipo de ataque, o invasor procura uma porta aberta, tenta identificar o servidor ou programa que est ativo na porta (o SSH ou Apache, por exemplo), pesquisa por alguma vulnerabilidade conhecida ou erro de configurao e, caso encontre alguma coisa, lana um ataque, tentando utilizar a falha para obter acesso ao sistema. Com o firewall ativo, o ataque frustrado logo no incio, j que com todas as portas fechadas, simplesmente no existe por onde entrar, a menos que exista alguma falha de segurana no prprio IPtables, o que seria bastante improvvel. Imagine que um desktop que acessa a web apenas como cliente uma casa, enquanto que um servidor uma loja de porta aberta. Voc pode fechar e reforar todas as portas, transformando sua casa em um bunker (habilitar o firewall, fechando todas as portas), onde ningum ter como entrar, a menos que consiga convencer voc a abrir a porta para ele. Em um servidor a questo mais complicada j que, assim como em uma loja, preciso deixar a porta bem aberta para que os clientes possam entrar e sair. A segurana, nesse caso, precisa ser feita em vrios nveis. Em primeiro vem o firewall, que bloqueia todas as portas que no so usadas, mantendo abertas apenas as portas realmente utilizadas. Em segundo lugar vem a questo das atualizaes de segurana. Ningum invade um servidor simplesmente porque o SSH est habilitado, invade caso esteja em uso uma verso desatualizada, com alguma vulnerabilidade conhecida, ou caso exista alguma conta de usurio ativa, com uma senha fcil. Mantendo o servidor atualizado e seguindo regras bsicas de segurana, o risco pequeno. Na hora de escolher uma distribuio para ser usada em um servidor, um dos quesitos mais importantes a analisar justamente a questo das atualizaes de segurana: em quanto tempo os pacotes so atualizados ao ser descoberta uma vulnerabilidade e por quanto tempo so disponibilizadas atualizaes para a verso em uso. A maior parte das distribuies comerciais oferece atualizaes de segurana por 12 ou 18 meses depois de lanada uma nova verso. Nesse quesito, as distribuies baseadas no Debian levam uma certa vantagem, pois no Debian as atualizaes so oferecidas de forma contnua. Sempre que uma nova verso lanada, voc pode atualizar os pacotes utilizando o apt-get e, assim, continuar instalando as atualizaes indefinidamente. O segundo tipo de ataque, que engloba vrus, trojans e afins, exige interao do usurio. Um vrus nunca se instala sozinho (caso contrrio no seria um vrus, mas sim um worm), se instala porque algum executou o arquivo que chegou por e-mail ou por um programa P2P, por exemplo. No Windows, esta tarefa ficaria por conta do antivrus, antispyware & cia. Entretanto, como ainda no temos uma quantidade expressiva destas

pragas no Linux, apenas o firewall em geral j suficiente. Digo por enquanto, pois conforme o uso do sistema em desktops cresa, natural que o nmero de vrus e pragas em geral para a plataforma tambm cresa, obrigando-nos a tomar mais cuidados. Caso eventualmente os vrus e trojans tornem-se um problema no Linux, com certeza surgiro vrias opes de antivrus, mas, mesmo antes que isso acontea, existe um conjunto de cuidados simples que podem manter seu micro seguro desde j. O Linux reconhecidamente um sistema multiusurio, onde as permisses de arquivos e executveis impedem que um usurio danifique arquivos ou configuraes de outro, ou modifique as configuraes do sistema. Embora isso torne as coisas mais complicadas em diversas situaes, tambm cria uma barreira de segurana adicional bastante interessante. Ao invs de rodar todos os programas e executar todo tipo de arquivo com seu usurio principal, crie um segundo login (ou at mais de um) e o utilize para executar arquivos suspeitos ou programas que possam ter problemas de segurana, como, por exemplo, clientes de IRC e navegadores. Para isso, abra um terminal e use o comando "su" para logar-se usando o segundo usurio, como em "su joao". Depois de fornecer a senha, todos os programas executados dentro do terminal sero executados pelo outro usurio. Se por acaso voc executar qualquer programa malicioso, apenas o usurio separado afetado, sem comprometer seus arquivos pessoais, muito menos os arquivos do sistema. Em caso de problemas, basta deletlo e criar outro. Em distribuies baseadas no Debian, o sistema vem configurado para no permitir que outros usurios executem programas grficos dentro de uma sesso grfica j aberta. Ao tentar rodar qualquer programa grfico, voc recebe uma mensagem como: Xlib: connection to ":0.0" refused by Server Xlib: No protocol specified konqueror: cannot connect to X server :0.0 Isso solucionado por um utilitrio chamado "sux", que substitui o su, transferindo tambm as credenciais do X. Basta instalar o pacote "sux" (usando o apt-get, ou outro gerenciador de pacotes disponvel) e us-lo para trocar o usurio, como em: "sux joao".

Usando o Nmap O Nmap um portscan de uso geral. Ele um dos componentes-base usados pelo Nessus (que veremos a seguir), mas pode tambm ser usado diretamente, sempre que voc precisar verificar rapidamente as portas abertas em determinado host, seja na sua rede local, seja na Internet. O Nmap um pacote muito utilizado e por isso est disponvel em todas as principais distribuies. Voc pode instal-lo usando o yast (SuSE), yum (Fedora), urpmi (Mandriva), ou outro gerenciador de pacotes disponvel. Nas distribuies derivadas do Debian, voc pode instal-lo via apt-get: # apt-get install nmap Para usar todos os recursos do Nmap, voc deve execut-lo como root. O uso mais simples escanear diretamente uma mquina da rede, como em: # nmap 192.168.0.3 Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) Interesting ports on 192.168.0.3: (The 1661 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 68/tcp open dhcpclient 631/tcp open IPP MAC Address: 00:0F:B0:55:EE:16 (Compal Electronics) Nmap finished: 1 IP address (1 host up) scanned in 0.339 seconds Neste exemplo, o teste foi disparado contra uma mquina Linux, rodando uma instalao personalizada do Debian Sarge. As duas portas abertas so o cliente DHCP ( normal que a porta 68 fique aberta em clientes configurados via DHCP) e o servidor Cups, que escuta na porta 631. O Cups mantm esta porta aberta sempre que ativado (voc precisa dele para imprimir, tanto em compartilhamentos da rede, quanto em impressoras locais). Por padro, ele permite apenas que o localhost imprima e acesse a interface de administrao, mas possvel configur-lo para compartilhar as impressoras com a rede de forma bem simples atravs do arquivo "/etc/cups/cupsd.conf". Nem o cliente DHCP nem o Cups permitem acesso via shell, por isso, salvo eventuais graves brechas de segurana, os ataques mais graves que poderiam ser lanados neste caso seriam tentar modificar a configurao de rede, tentando responder ao cliente DHCP no lugar do servidor DHCP da rede, ou tentar usar impressoras compartilhadas no Cups.

O simples fato de uma determinada porta estar aberta, no significa que a mquina est vulnervel, mas apenas que existem servios ativos e as portas no esto sendo bloqueadas por nenhum firewall. Voc pode obter mais informaes sobre as portas abertas, incluindo a verso de cada servio ativo usando a opo "-sV", como em: # nmap -sV 192.168.0.3 Esta opo muito mais demorada, no lugar dela voc pode preferir fazer logo um scan completo usando o Nessus. possvel tambm escanear de uma vez toda uma faixa de endereos, como em: # nmap 192.168.0.1-254 Outro parmetro interessante a opo "-O", que faz com que o Nmap tente identificar qual o sistema operacional usado em cada mquina. Esta identificao permite diferenciar mquinas rodando diferentes verses do Windows de mquinas rodando Linux ou MacOS, por exemplo, mas no muito eficiente em identificar diferentes distribuies Linux, nem em identificar a verso do Windows usada. Veja um exemplo: # nmap -O 192.168.0.4 Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) Interesting ports on 192.168.1.35: (The 1658 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds 1025/tcp open NFS-or-IIS 5000/tcp open UPnP MAC Address: 02:0F:B0:55:EE:16 (Unknown) Device type: general purpose Running: Microsoft Windows 95/98/ME|NT/2K/XP OS details: Microsoft Windows Millennium Edition (Me), Windows 2000 Pro or Advanced Server, or Windows XP Nmap finished: 1 IP address (1 host up) scanned in 1.145 seconds

Neste caso temos uma instalao limpa do Windows XP, sem o firewall ativo. Note que a identificao do sistema no exata, o Nmap indicou corretamente que uma mquina Windows, mas no soube identificar precisamente a verso. Continuando, os scans do Nmap podem ser facilmente detectados caso alguma das mquinas-alvo esteja com o Snort, ou outro detector de intruses ativo, o que vai lhe render no mnimo um puxo de orelha do administrador da rede. Para dificultar isso, o Nmap oferece a opo de fazer um half-open scan, especificando a opo "-sS", como em: # nmap -sS 192.168.0.1-254 Operando neste modo, o Nmap apenas envia um pacote SYN para cada porta alvo e espera para ver se recebe um pacote ACK de confirmao sem, entretanto, responder com o segundo pacote ACK, que abriria a conexo. Isso permite burlar muitos programas de deteco de intruso, que monitoram e logam apenas conexes efetivamente estabelecidas. Apesar de menos comum, possvel fazer tambm uma varredura de portas UDP abertas. Embora poucos servios possam ser diretamente conectados atravs de portas UDP, muitos as utilizam para transferir dados e, em geral, os firewalls so configurados para bloquear apenas as portas TCP. Escanear as portas UDP uma forma alternativa de detectar servios abertos em uma mquina, mesmo que todas as portas TCP estejam fechadas no firewall. Existem tambm casos de backdoors acessveis via UDP, como o Back Orifice (no Windows) e at mesmo (raras) brechas de segurana em servios do Linux ou outros sistemas Unix, como uma brecha em certas verses do rpcbind do Solaris, que podia ser explorada atravs de uma porta UDP alta, a partir da 32770 (variando de acordo com a verso). Os scans de UDP so rpidos se direcionados a mquinas Windows, mas so absurdamente lentos se feitos contra mquinas Linux ou BSD, onde o sistema limita o nmero de erros de ICMP (dos quais o scan do Nmap depende) a uma taxa de aproximadamente 20 por segundo. No Windows no existe limite. Para usar o scan UDP, usamos a opo "-sU", como em: # nmap -sU 192.168.0.4 Por padro, o Nmap escaneia apenas um conjunto de 1661 portas, que incluem as usadas pelos servios mais comuns. Uma media de segurana comum esconder servios como o SSH em portas altas, de forma que eles sejam mais difceis de detectar. Nesses casos, voc pode fazer um scan completo, incluindo todas as portas TCP (ou UDP) usando a opo "-p 065535", como em: # nmap -sS -p 0-65535 192.168.0.4 A opo "-p" pode ser usada para escanear apenas uma porta especfica, ou uma faixa de portas em que esteja interessado. Se executado via rede local,

o scan sempre relativamente rpido (a menos que a mquina-alvo esteja com um firewall ativo, configurado em modo "DROP"), mas, via Internet, as coisas tornam-se bem mais demoradas. Ao tentar localizar vulnerabilidades em uma determinada faixa de endereos IP, voc comearia lanando o teste rpido contra toda a faixa, reservando as opes mais demoradas para algumas mquinas especficas. A opo "-sS", combinada com a "-p 0-65535", permite localizar servios escondidos em portas altas, mas no capaz de dizer muito sobre eles. Ele sempre retorna algo como: 22543/tcp open Unknown Voc pode escanear esta porta especfica usando a opo "-sV" para descobrir mais sobre ela, como em: # nmap -sV -p 22543 192.168.0.4 PORT STATE SERVICE VERSION 22543/tcp open ssh OpenSSH 3.8.1p1 Debian-8.sarge.4 (protocol 1.99) Nmap finished: 1 IP address (1 host up) scanned in 0.284 seconds Agora voc sabe que a mquina tem ativo um servidor OpenSSH (verso 3.8.1, do Debian Sarge), escondido na porta 22543. Tudo muito simples quando a mquina alvo no possui nenhum firewall ativo. O scan rpido e voc pode lanar toda sorte de ataques sobre os servios ativos. Mas, com um firewall ativo, as coisas tornam-se um pouco mais complicadas e demoradas. Um firewall configurado para descartar (DROP) todos os pacotes recebidos, faz com que o scan torne-se extremamente lento. Verses antigas do Nmap no chegavam sequer a concluir o teste quando o alvo estava configurado dessa forma, retornando uma mensagem como: Starting nmap 3.50 ( http://www.insecure.org/nmap/ ) Host 192.168.0.33 appears to be down, skipping it. Note: Host seems down. Nmap run completed -- 1 IP address (0 hosts up) scanned in 12.053 seconds Nestes casos, voc pode forar o Nmap a concluir o teste, a fim de detectar servios escondidos em portas altas usando o parmetro "-P0", como em: # nmap -sS -P0 -p 0-65535 192.168.0.4

O problema neste caso que o scan demora muito mais que o normal, j que, por no receber respostas, ele precisa aguardar um tempo muito maior antes de passar para a porta seguinte. Um teste executado contra um micro na Internet, atravs de uma conexo lenta, pode literalmente demorar dias. Apesar de no responder, o micro remoto pode ser configurado para logar suas tentativas, permitindo que o administrador tome conhecimento e aja de acordo, bloqueando seu endereo IP ou contatando seu provedor de acesso. Um firewall bem configurado realmente uma grande vantagem de segurana para qualquer servidor Usando o Nessus O Nessus uma ferramenta de auditoria muito usada para detectar e corrigir vulnerabilidades nos PCs da rede local. Ele realiza uma varredura de portas, detectando servidores ativos e simulando invases para detectar vulnerabilidades. Uma caracterstica importante que o Nessus procura por servidores ativos no apenas nas portas padro, mas em todas as portas TCP. Ele capaz de detectar uma vulnerabilidade em um servidor Apache escondido na porta 46580, por exemplo. At a verso 2.2.8, o Nessus era um aplicativo open-source. Os desenvolvedores trabalham na rea de segurana, prestando consultoria e vendendo verses personalizadas do Nessus, com plugins e recursos adicionais. O problema que outras empresas de segurana passaram a se aproveitar disso para incorporar recursos do Nessus em seus produtos proprietrios e a desenvolver verses modificadas, que competiam diretamente com as solues oferecidas por eles. Isso criou um clima crescente de tenso at que os desenvolvedores decidiram mudar a licena, mudana que entrou em vigor a partir da verso 3.0. O Nessus continua sendo de uso gratuito, mas o cdigo fonte passou a ser fechado, para evitar a concorrncia predatria de outras empresas. Voc pode baixar a verso mais recente na seo de downloads do http://www.nessus.org. Para baixar, voc precisa fornecer um endereo de e-mail vlido, para onde enviado um cdigo de ativao. Existem verses do Nessus para diversos sistemas, incluindo o Linux, Windows, FreeBSD e MacOS X. Ao usar a verso Windows, recomendvel que voc utilize o Windows 2003 ou outra verso server do sistema. O Windows XP no adequado para rodar o Nessus, pois a partir do SP2 o sistema inclui polticas de segurana que limitam o nmero de conexes TCP simultneas e outros recursos utilizados por ele. As protees foram includas como uma forma de reduzir o potencial nocivo de malwares, mas acabaram dificultando o trabalho do Nessus. Ao usar o Windows XP, o ideal que voc baixe apenas o cliente Nessus e o utilize para se conectar a uma mquina Linux da rede rodando o componente servidor. Nesse caso, a mquina Linux faz o trabalho pesado e o Windows XP roda apenas a interface do programa.

Com relao verso Linux, esto disponveis pacotes para diversas distribuies, entre eles um pacote .deb para as distribuies derivadas do Debian e pacotes .rpm para o Fedora, Red Hat e SuSE. Voc precisa baixar tanto o Nessus propriamente dito, quanto o "NessusClient", disponvel na mesma pgina:

Instale o pacote baixado usando o comando "dpkg -i" (no caso do pacote .deb), ou "rpm -Uvh" (para os pacotes .rpm), como em: # dpkg -i Nessus-3.0.3-debian3_i386.deb O Nessus utiliza o Nmap como portscan, por isso necessrio que ele tambm esteja instalado. O Nmap faz a primeira rodada de testes, detectando as portas abertas e o Nessus usa as informaes fornecidas por ele como ponto de partida para executar uma rodada adicional de testes, que permitem devolver um relatrio bastante detalhado das vulnerabilidades encontradas.

Depois de instalar, voc precisa criar um login de usurio para utilizar o Nessus. Isso necessrio pois ele dividido em dois componentes: um servidor (que quem faz todo o trabalho pesado) e um cliente, que funciona como uma interface segura para ele. Isso permite que voc instale o servidor em uma mquina que faa parte da rede que vai ser escaneada e use seu notebook para apenas rodar o cliente, o que pode ser feito at mesmo remotamente. Com isso, seu notebook fica livre durante o teste, permitindo que voc execute testes adicionais ou pesquise sobre as vulnerabilidades na web enquanto o teste realizado. Naturalmente, voc pode rodar ambos os componentes na mesma mquina, o nico pr-requisito usar uma mquina relativamente rpida, com pelo menos 256 MB de RAM livres (ou seja, descontando a memria usada pelo sistema e outros programas). Este login no uma conta de usurio vlida no sistema. Ele vlido apenas para o Nessus, onde usado para fazer a autenticao no mdulo servidor. Para cri-lo, use o comando "/opt/nessus/sbin/nessus-addfirst-user". Ele pedir o login e senha, o tipo de autenticao (escolha "pass") e permitir que voc adicione regras para o usurio (User Rules). Se voc quiser apenas criar o usurio usando as regras default, basta pressionar "Ctrl+D". Ele pedir uma ltima confirmao, basta responder "y": # /opt/nessus/sbin/nessus-add-first-user Using /var/tmp as a temporary file holder Add a new nessusd user ---------------------Login : tux Authentication (pass/cert) [pass] : pass Login password : ******** Login password (again) : ******** User rules ---------nessusd has a rules system which allows you to restrict the hosts that tux has the right to test. For instance, you may want him to be able to scan his own host only. Please see the nessus-adduser(8) man page for the rules syntax Enter the rules for this user, and hit ctrl-D once you are done: (the user can have an empty rules set) ^D Login : tux Password : *********** DN : Rules : Is that ok? (y/n) [y] y Uma vez instalado, voc pode iniciar o servidor Nessus usando o comando: # /etc/init.d/nessusd start ou: # /opt/nessus/sbin/nessusd -D Em ambos os casos ele roda em background, sem obstruir o terminal. Para fech-lo, use o comando "killall nessusd". Isto conclui a instalao do servidor. O prximo passo instalar o pacote do cliente. No site voc pode baixar tanto o cliente Linux, quanto o NessusWx, que roda em mquinas Windows.

No meu caso, tive um pouquinho de trabalho para instalar o cliente Linux, pois, no momento em que escrevi este tpico, ainda no estava disponvel uma verso do cliente para o Debian, de forma que precisei baixar o pacote para o Fedora, convert-lo usando o alien e criar dois links simblicos para bibliotecas com nomes diferentes nos dois sistemas. O primeiro passo foi instalar o alien via apt-get e us-lo para converter o pacote baixado do site: # apt-get install alien # alien NessusClient-1.0.0.RC5-fc5.i386.rpm O alien gera um pacote .deb com o mesmo nome do pacote original, que pode ser instalado usando o dpkg, como em: # dpkg -i nessusclient_1.0.0.RC5-1_i386.deb O NessusClient aberto usando o comando "NessusClient" (que voc executa usando sua conta de usurio e no como root). Entretanto, por instalar uma verso para outra distribuio, ele reclamou da falta das bibliotecas "libssl.so.6" e "libcrypto.so.6". Na verdade, ambas estavam disponveis, porm com nomes diferentes. Acessando o diretrio "/usr/lib" vi que existiam os " libssl.so.0.9.8" e " libcrypto.so.0.9.8", de forma que precisei apenas criar dois links, apontando para eles: # cd /usr/lib # ln -s libcrypto.so.0.9.8 libcrypto.so.6 # ln -s libssl.so.0.9.8 libssl.so.6 A partir da, o NessusClient passou a abrir corretamente: $ NessusClient

A interface desta verso bem diferente da usada no cliente que acompanhava o Nessus 2.x, mas o funcionamento basicamente o mesmo. Comece clicando no boto "Connect" para abrir a conexo com o servidor. Se estiver rodando-o na mesma mquina, use "localhost" como endereo, caso contrrio, fornea o IP correto da mquina onde o servidor est ativo:

Da primeira vez que se conectar, ele perguntar sobre o certificado do servidor. Ele (certificado) permite que voc verifique a autenticidade do servidor onde est se conectando, evitando a possibilidade de que algum o tenha substitudo por outra mquina.

Ao usar servidores Nessus remotos, voc pode usar certificados de autenticidade para melhorar a segurana. Nesse caso, use o comando nessus-mkcert-client (no servidor): # /opt/nessus/bin/nessus-mkcert-client Ao terminar o processo, ele salva o certificado gerado em uma pasta temporria, como em: Your client certificates are in /tmp/nessus-mkcert.9904 You will have to copy them by hand

Dentro da pasta, voc encontra um arquivo ".pem" com o nome do usurio criado, como em "cert_nessuswx_joao.pem". Para usar este certificado, voc deve copi-lo para a pasta "/opt/nessus/com/nessus/CA/" (do cliente). Na hora de se conectar usando o NessusClient, marque a opo "Autentication by certificate" e indique a localizao do arquivo. Note que o uso do certificado apenas melhora a segurana da comunicao entre o servidor Nessus e o cliente. uma medida saudvel para os paranicos de planto. :) Uma vez conectado ao servidor Nessus, voc pode definir diversas opes dentro da aba "Global Settings". Dentro dela, algumas opes interessantes (disponveis dentro da aba "General") so: Port range: O default do Nessus escanear apenas as portas de 1 a 1024, o que resulta em testes relativamente rpidos, mas que deixam passar servios escondidos em portas altas. Para que ele escaneie todas as portas, mude para "1-65535". Note que isso torna o teste muito mais demorado, pois ele precisa enviar um pacote TCP e outro UDP para cada uma das portas, para s ento executar os testes adicionais nas portas abertas. Number of hosts to test at the same time: Esta opo determina o nmero de hosts que sero verificados simultaneamente durante o teste. O default para esta opo so 20 hosts, o que adequado para situaes onde voc use um micro de configurao modesta para executar o teste dentro da rede local. Aumentar o nmero faz com que o Nessus consuma mais recursos do servidor e mais banda da rede, o que no muito interessante caso o teste seja realizado durante o expediente. Number of checks to perform at the same time: Esta opo determina o nmero de testes simultneos em cada um dos micros escaneados. Muitos dos testes realizados pelo Nessus so demorados, porm, geram pouco trfego de rede. Aumentar o nmero de testes simultneos uma boa forma de acelerar o teste caso sua rede tenha poucos micros. Note que aberta uma instncia do scanner para cada host e para cada teste. Ou seja, com 100 hosts e 4 testes simultneos em cada um, podem ser abertas at 400 instncias, o que consumir quase 500 MB de memria do servidor. Se voc est rodando o servidor em uma mquina de configurao modesta, ou est usando sua mquina de trabalho e no deseja que ela fique muito lenta durante o teste, reduza os nmeros. Optimize the test: Esta opo torna o teste do Nessus mais "inteligente". Baseado em informaes de testes anteriores, o scanner evita usar testes demorados, que tenham baixa probabilidade de revelar novas vulnerabilidades. Ativar esta opo, torna o teste muito mais rpido, se executado repetidamente, mas abre uma pequena possibilidade de algumas vulnerabilidades mais incomuns no serem descobertas. Safe checks: Alguns sistemas antigos possuem brechas de segurana que podem causar travamentos. Mquinas com o Windows 95 sem atualizaes

de segurana, por exemplo, so vulnerveis ao famoso "ping da morte", um pacote ICMP defeituoso, que trava o sistema. Ativando esta opo, o Nessus deixa de realizar os testes que podem levar a travamentos das mquinas, ou de outros dispositivos da rede, como roteadores e modems ADSL. Designate hosts by their MAC address: Ativando esta opo, os hosts so identificados pelo endereo MAC no relatrio do teste, ao invs de pelo endereo IP. Isso pode ser til em redes onde os clientes so configurados via DHCP. Na aba "Plugins" voc tem acesso configurao dos plugins, que so scripts responsveis por detectar vulnerabilidades especficas. Por exemplo, ao detectar que a porta "45234" est aberta, o Nessus primeiro tenta identificar qual servidor est ativo, executando um conjunto de testes. Se for detectado um servidor Apache, por exemplo, sero usados os plugins que detectam vulnerabilidades em servidores web. O Nessus inclui um nmero assustador de plugins, divididos em categorias. Ao marcar a opo "Safe checks" (na aba general), so automaticamente desativados os plugins potencialmente perigosos, mas voc pode reativar todos clicando no "Enable all".

Naturalmente, novas brechas de segurana so descobertas todos os dias, por isso necessrio atualizar os plugins periodicamente. Para isso, use o

comando "/opt/nessus/bin/nessus-fetch", informando o cdigo fornecido no e-mail de confirmao do registro, como em: # /opt/nessus/bin/nessus-fetch --register FFBB-382E-3990-D3DA2BFC A partir da, os plugins so atualizados automaticamente, uma vez por dia. Se preferir desativar a atualizao automtica, edite o arquivo "/opt/nessus/etc/nessus/nessusd.conf", substituindo a linha "auto_update = yes" por "auto_update = no". Os plugins so os componentes mais importantes do Nessus. So eles que o diferenciam de um portscan genrico, como o Nmap. O portscan detecta que uma determinada porta est aberta e qual servidor est sendo usado, mas so os plugins que informam que est sendo usada uma verso com a vulnerabilidade X, que pode ser corrigida com a atualizao Y. As atualizaes gratuitas so fornecidas com um delay de 7 dias, o que dificulta seu uso profissional (7 dias dentro do ramo de segurana um tempo muito longo, durante o qual brechas so corrigidas e novas surgem). Para ter acesso s atualizaes em tempo real, voc precisa assinar o plano comercial. Depois de ajustar as opes gerais, clique na opo "File > Scan Assistant" para definir a faixa de endereos que ser escaneada. A primeira tarefa definir nomes de identificao do teste nas abas "Task" e "Scope". Depois vem o que interessa, a definio dos alvos na aba "Targets". Voc pode tanto lanar o teste contra um IP isolado quanto contra uma faixa inteira de endereos. Neste caso, indique o endereo da rede seguido pela mscara, como em "192.168.1.0/24" (o 24 indica a mscara de sub-rede, no padro CIDR), ou um intervalo de endereos, como em "192.168.1.2253". Clicando no "Executar" o teste finalmente lanado:

Uma novidade em relao s verses anteriores que agora voc pode definir vrias faixas diferentes e criar uma configurao independente para cada uma. Voc pode, por exemplo, ter uma configurao para o teste contra hosts da rede local e outra j engatilhada para testar periodicamente o servidor que hospeda seu site, por exemplo. Cada uma permite definir faixas de portas e configuraes diferentes. Para lanar um teste j prconfigurado, selecione-o na lista da esquerda e clique no "Scope > Executar".

Como comentei, o teste do Nessus feito em duas partes. A primeira o portscan, onde ele utiliza o Nmap, combinado com alguns testes adicionais para descobrir quais portas esto abertas em cada host. A partir da, entram em ao os plugins, que testam cada porta em busca de vulnerabilidades conhecidas. Concludo o teste, ele exibe uma lista com as vulnerabilidades encontradas em cada PC. Existem trs nveis de alerta; o primeiro e mais grave tem o smbolo de uma luz vermelha e indica uma brecha de segurana em um servidor ativo na mquina. No screenshot, por exemplo, temos uma instalao bastante desatualizada do Windows XP, com diversas brechas de segurana, entre elas uma vulnerabilidade no protocolo SMB (responsvel pelo compartilhamento de arquivos), que permite travar a mquina remotamente e duas vulnerabilidades graves, que permitem executar cdigo e obter acesso mquina:

Veja que, alm de apontar o problema, o Nessus oferece uma descrio detalhada da vulnerabilidade e aponta uma soluo. Na maioria dos casos, o problema corrigido simplesmente instalando as atualizaes de segurana ou atualizando para a verso mais recente. Em casos em que o problema gerado por erros de configurao, ele quase sempre fornece dicas de como corrigi-lo. O teste do Nessus permite tambm identificar servios indesejados, que podem ser desativados ou ter suas portas bloqueadas no firewall, alm de avisar sobre qualquer backdoor que tenha sido instalado sem seu conhecimento. Continuando, o segundo nvel um alerta de que um servio potencialmente inseguro est ativo em uma determinada porta do sistema, como, por exemplo, um servidor Telnet ou XDMCP. Neste caso, no foi encontrada nenhuma vulnerabilidade especfica, mas o fato de o servio ser fundamentalmente inseguro j representa uma brecha de segurana. Tanto o Telnet quanto o XDMCP transmitem dados de forma no encriptada, o que permite que algum mal intencionado possa sniffar a rede, capturando os dados transmitidos (incluindo as senhas dos usurios). Ambos devem ser usados apenas dentro da rede local.

O terceiro nvel de alerta tem o smbolo de uma luz. Estes so apenas lembretes de que existe um servidor ativo na porta indicada, mas sem que fosse detectada qualquer brecha de segurana.

Como disse, em muitos casos o Nessus ajuda tambm a detectar erros de configurao, que podem ser perigosos. Por exemplo, este um aviso de segurana, que mostra um servidor dedicado com o servidor DNS aberto para consultas a outros domnios:

Todo servidor web trabalha em conjunto com um servidor DNS, que responde pelos domnios dos sites hospedados. Embora no seja por si s uma brecha de segurana, esta configurao faz com que o DNS se transforme em um servidor "pblico", que faz a resoluo de qualquer domnio solicitado, assim como os servidores DNS dos provedores de acesso. Isso abre brecha para ataques de "DNS poisoning", onde um cliente

externo insere uma entrada invlida no cache do DNS, fazendo com que ele responda a algumas das consultas com endereos IPs incorretos, alm de abrir uma pequena possibilidade de que o servidor seja usado como auxiliar em ataques DoS contra outros servidores. O prprio Nessus d a dica de como corrigir o problema. Pesquisando no Google sobre a opo "allow-recursion" que ele sugere, voc chega facilmente artigos que sugerem a incluso das quatro linhas abaixo no final do arquivo "/etc/bind/named.conf": options { directory "/var/named"; recursion no; }; Elas fazem com que o servidor DNS responda apenas pelos domnios sobre os quais tem autoridade (ou seja, os domnios dos sites hospedados no servidor), corrigindo o problema. Executando o teste novamente, o Nessus continua detectando que a porta 53 est aberta, mas no acusa mais a falha. Concluindo, os relatrios gerados pelo Nessus podem ser salvos em diversos formatos, incluindo html, latex e PDF, um recurso extremamente interessante na hora de apresentar os resultados e explicar os problemas para outras pessoas. Para isso, selecione o relatrio que ser exportado no menu da esquerda e use a opo "Report > Export". Para que o suporte gerao de arquivos PDF funcione, voc deve ter instalado o pacote "htmldoc", disponvel via apt-get: # apt-get install htmldoc

Naturalmente, assim como voc pode utilizar o Nessus para detectar e tapar brechas de segurana, outras pessoas podem utiliz-lo para detectar vulnerabilidades na sua rede e lanar ataques. Hoje em dia, a variedade de scripts e ferramentas grficas prontas que exploram vulnerabilidades to grande que voc pode encontrar algum exploit fcil de usar para praticamente qualquer vulnerabilidade que voc possa encontrar. Basta saber fazer pesquisas no Google. Estes exploits prontos so o grande perigo, pois no requerem nenhum tipo de prtica ou habilidade para serem usados. Basta indicar o IP a ser atacado e pronto. Ou seja, aquele garoto com quem voc brigou no chat pode muito bem fazer um estrago na sua rede caso algum servio ativo no seu servidor possua alguma vulnerabilidade grave. importante resolver o problema antes que algum o faa por voc. Gerar o relatrio do Nessus s o primeiro passo. Se voc administra um servidor, importante acompanhar sites especializados em notcias relacionadas segurana, como o http://lwn.net e o http://www.linuxsecurity.com. A maioria das distribuies oferecem boletins por e-mail que avisam quando novas atualizaes de segurana esto disponveis. Lembre-se de que, apesar das notcias de brechas e atualizaes serem sempre muito freqentes, voc s precisa se preocupar com os servidores que voc mantm ativos na sua mquina. Se voc mantm apenas o SSH e o FreeNX, por exemplo, no precisa se preocupar com as atualizaes do Apache e do Sendmail.

Alm dos servidores, clientes de e-mail e navegadores (entre outras categorias de programas) tambm costumam receber atualizaes de segurana com uma certa freqncia. Estes programas clientes no podem ser atacados diretamente, ou seja, ningum poder explorar um buffer overflow no Firefox (por exemplo) apenas por ele estar instalado; seria necessrio que voc acessasse alguma pgina contendo o script malicioso. a que entram os ataques de engenharia social, como no caso dos e-mails com textos que tentam lev-lo a clicar em um link ou ao executar um arquivo anexado. Usando o Wireshark Alm do Nessus, outro aliado importante o Wireshark, o bom e velho Ethereal, que mudou de nome em Junho de 2006. Ele um poderoso sniffer, que permite capturar o trfego da rede, fornecendo uma ferramenta poderosa para detectar problemas e entender melhor o funcionamento de cada protocolo. Assim como o Nessus, ele pode ser usado tanto para proteger seu sistema quanto para roubar dados dos vizinhos, uma faca de dois gumes. Devido a isso, ele s vezes visto como uma "ferramenta hacker", quando na verdade o objetivo do programa dar a voc o controle sobre o que entra e sai da sua mquina e a possibilidade de detectar rapidamente qualquer tipo de trojan, spyware ou acesso no autorizado. Embora ele geralmente no venha instalado por padro, a maioria das distribuies disponibilizam o pacote "wireshark" (ou "ethereal", de acordo com o nvel de atualizao). Nas distribuies derivadas do Debian, voc pode usar o apt-get, como de praxe. Alm das verses Linux, esto disponveis tambm verses para Windows 2000, XP e Vista. Voc pode baix-las no http://www.wireshark.org/. No caso do Linux, possvel instalar tambm a partir do pacote com o cdigo fonte, disponvel na pgina de download (opo preferida por quem faz questo de ter acesso ultima verso do programa). O pacote instalado com os conhecidos "./configure", "make" e "make install". Como ele depende de um nmero relativamente grande de compiladores e de bibliotecas, muitas delas pouco comuns, voc quase sempre vai precisar instalar alguns componentes adicionais manualmente. Uma forma simples de instalar todos os componentes necessrios para a compilao (dica til no apenas no caso do Wireshark, mas para a instalao de programas a partir do cdigo fonte de uma forma geral) usar o "auto-apt", disponvel atravs do apt-get. Para us-lo, instale o pacote via apt-get e rode o comando "auto-apt update": # apt-get install auto-apt # auto-apt update

A partir da, voc pode rodar os comandos de compilao atravs dele, como em: $ tar -zxvf wireshark-0.99.1pre1 $ cd wireshark-0.99.1pre1 $ auto-apt run ./configure $ auto-apt run make $ su <senha> # make install Durante a instalao, o auto-apt usa o apt-get para instalar os componentes necessrios, como neste screenshot:

Depois de instalado, abra o programa usando o comando "wireshark" (ou "ethereal", de acordo com a verso instalada). O Wireshark um daqueles programas com tantas funes que voc s consegue aprender realmente usando. Para comear, nada melhor do que capturar alguns pacotes. Clique em "Capture > Start":

Aqui esto as opes de captura. A primeira opo importante a "Capture packets in promiscuous mode", onde voc decide se quer capturar apenas os pacotes endereados sua prpria mquina, ou se quer tentar capturar tambm pacotes de outras mquinas da rede. Isso possvel pois os hubs burros apenas espelham as transmisses, enviando todos os pacotes para todas as estaes . O endereo MAC do destinatrio includo no incio de cada frame enviado atravs da rede. Normalmente, a placa escuta apenas os pacotes destinados a ela, ignorando os demais, mas, no promiscuous mode ela passa a receber todos os pacotes, independentemente de a qual endereo MAC ele se destine. Os switches e hub-switches so mais discretos, encaminhando o trfego apenas para o destinatrio correto, mas a maior parte dos modelos mais baratos so vulnerveis a ataques de MAC flooding e ARP poisoning, como veremos a seguir . Em seguida, voc tem a opo "Update list of packets in real time". Ativando esta opo, os pacotes vo aparecendo na tela conforme so capturados, em tempo real. Caso contrrio, voc precisa capturar um certo nmero de pacotes para s depois visualizar todo o bolo . Mais abaixo esto tambm algumas opes para interromper a captura depois de um certo tempo, ou depois de capturar uma certa quantidade de dados. O problema aqui que o Wireshark captura todos os dados

transmitidos na rede, o que (em uma rede local) pode rapidamente consumir toda a memria RAM disponvel, at que voc interrompa a captura e salve o dump com os pacotes capturados em um arquivo. Dando o OK, ser aberta a tela de captura de pacotes, onde voc poder acompanhar o nmero de pacotes capturados :

Na tela principal, temos a lista dos pacotes, com vrias informaes, como o remetente e o destinatrio de cada pacote, o protocolo utilizado (TCP, FTP, HHTP, AIM, NetBIOS, etc.) e uma coluna com mais informaes, que incluem a porta TCP qual o pacote foi destinado. Os pacotes que aparecem com um micro da rede local como emissor e um domnio ou IP da Internet como destinatrio incluem requisies, upload de arquivos, e-mails enviados, mensagens de ICQ e MSN e, em muitos casos, tambm senhas de acesso. Os pacotes provenientes de micros da Internet so respostas estas requisies, incluindo pginas web, e-mails lidos, arquivos baixados e, assim por diante. Atravs do sniffer, possvel capturar todo tipo de informao que trafegue de forma no encriptada pela rede.

Clicando sobre um dos pacotes e, em seguida, no "Follow TCP Stream", o Ethereal mostrar uma janela com toda a converso, exibida em modo texto.

A maior parte do que voc vai ver sero dados binrios, incluindo imagens de pginas web e arquivos diversos. Mesmo o html das pginas chega muitas vezes de forma compactada (para economizar banda), novamente em um formato ilegvel. Mas, garimpando, voc vai encontrar muitas coisas interessantes, como, por exemplo, mensagens (MSN e ICQ) e e-mails, que, por padro, so transmitidos em texto puro. Usando a opo "Follow TCP Stream", possvel rastrear toda a conversa:

ARP poisoning e MAC flooding Como disse anteriormente, o Wireshark pode ser usado tambm pelo lado negro da fora. Se voc estiver em uma rede local, com micros ligados atravs de um hub ou atravs de uma rede wireless, outro usurio pode us-lo para capturar todas as suas transmisses. Isto extremamente perigoso. Qualquer um que tenha a chance de plugar um notebook na rede ou coloc-lo dentro da rea de cobertura de sua rede wireless, poder capturar dados e senhas suficientes para comprometer boa parte do sistema de segurana da sua empresa. Apenas conexes feitas atravs do SSH e outros programas que utilizam encriptao forte estariam a salvo. Naturalmente, alm de algum de fora, existe a possibilidade de um dos seus prprios funcionrios resolver comear a brincar de script kiddie, pregando peas nos outros e causando danos. Como vimos, isso no requer muita prtica. Enfim, a menos que voc esteja em uma simples rede domstica, onde exista uma certa confiana mtua, utilizar um hub burro simplesmente um risco grande demais a correr. Ao utilizar um hub-switch, o risco um pouco menor, j que, por default, os pacotes so enviados apenas s portas corretas. Entretanto, muitos sistemas so vulnerveis a ataques de ARP poisoning, sem falar dos ataques de MAC flooding, que permitem burlar a proteo. Vamos ento a uma explicao mais detalhada de como eles funcionam. No ARP poisoning, o micro do atacante envia pacotes com respostas forjadas para requisies ARP de outros micros da rede. Como vimos no captulo 4, o ARP utilizado para descobrir os endereos MAC dos demais micros da rede, j que os switches no entendem endereos IP. Esses pacotes forjados fazem com que os outros micros passem a enviar seus pacotes para o micro do atacante, que configurado para capturar as transmisses e retransmitir os pacotes originais para os destinatrios corretos. A rede continua funcionando normalmente, mas agora o atacante tem chance de logar todo o trfego, usando o Wireshark ou outro sniffer. Felizmente, o Wireshark tambm pode ser usado para perceber as anormalidades na rede e chegar at o espertinho. Os ataques de MAC flooding, por sua vez, tem como alvo o switch da rede e trabalham dentro de um princpio bastante simples. O switch possui uma rea limitada de memria para armazenar a tabela com os endereos MAC dos micros da rede (que permite que ele encaminhe as transmisses para

as portas corretas), de forma que, ao receber um grande nmero de pacotes com endereos MAC forjados, a tabela completamente preenchida com os endereos falsos, no deixando espao para os verdadeiros. Nessa situao, existem apenas duas opes: ou o switch simplesmente trava, derrubando a rede, ou abandona o uso da tabela de endereos e passa a trabalhar em modo failopen, onde os frames so simplesmente retransmitidos para todas as portas, da mesma forma que um hub burro, permitindo que o atacante capture todo o trfego da rede (at que o switch seja reiniciado). Como switches que travam no so uma boa propaganda, os fabricantes normalmente utilizam a segunda opo, o que faz com que a maioria dos switches baratos e quase todos os hub-switches sejam vulnerveis a esse tipo de ataque. Uma das ferramentas mais usadas o macof, um pequeno utilitrio que faz parte da sute dsniff (que roda sobre o Linux), cujo cdigo fonte est disponvel no: http://www.monkey.org/~dugsong/dsniff/ O dsniff tambm pode ser encontrado nos repositrios de muitas distribuies, o que facilita a instalao. Nas distribuies derivadas do Debian, voc pode instal-lo via apt-get: # apt-get install dsniff Uma vez que o dsniff foi instalado, usar o macof bastante simples: basta especificar a interface de sada, usando a opo "-i", e especificar o nmero de pacotes forjados a serem enviados, usando a opo "-n", como em: # macof -i eth0 -n 100000 A maioria dos hub-switchs so capazes de armazenar entre 1000 e 8000 endereos MAC na memria, de forma que bombardeando o hub-switch com 100000 endereos MAC diferentes (o que demora cerca de um minuto e meio em uma rede de 100 megabits) voc consegue chavear qualquer aparelho vulnervel para modo failopen. A partir da, basta lanar o Wireshark e passar a capturar todo o trfego da rede. Note que, em alguns casos, rodar o comando vai fazer o switch travar, derrubando toda a rede at que voc o reinicie manualmente, o que nos modelos mais simples feito desconectando e reconectando o cabo de energia. O dsniff inclui tambm um utilitrio para ARP poisoning, o arpspoof. Ao us-lo, voc deve especificar a interface de rede local e tambm o endereo IP do host de destino dos pacotes que voc deseja capturar. Especificando o endereo do gateway da rede (o uso mais comum), voc pode capturar todos os pacotes destinados Internet. Para us-lo, o primeiro passo ativar o encaminhamento de pacotes na configurao do Kernel, o que feito usando o comando abaixo:

# echo 1 > /proc/sys/net/ipv4/ip_forward A partir da, voc pode ativar o arpspoof, especificando o endereo de destino dos pacotes que deseja capturar, como em: # arpspoof -i eth0 192.168.1.1 Com isso, o arpspoof passar a enviar pacotes de broadcast para toda a rede, avisando todos os micros que o novo endereo MAC do "192.168.1.1" o endereo da sua mquina. Isso far com que ela passe a receber o trfego destinado a ele, permitindo que voc o capture usando o Wireshark. Naturalmente, o trfego no poderia simplesmente ser desviado para a sua mquina, caso contrrio, os pacotes deixariam de ir at o gateway da rede e os micros no conseguiriam mais acessar a Internet. Para evitar isso, o arpspoof reencaminha automaticamente todos os pacotes recebidos ao endereo correto (justamente por isso precisamos ativar o ip_forward no Kernel), fazendo com que, apesar do "desvio", o trfego continue fluindo, como se nada estivesse acontecendo:

ARP poisoning Alm de permitir escutar o trfego, o ARP poisoning pode ser usado para alterar os dados transmitidos e tambm para impersonar outros hosts, de forma a obter senhas de acesso e outros dados. Imagine, por exemplo, que a estao A (cujos pacotes esto sendo capturados e retransmitidos pela estao B) deseja acessar o servidor A. Em vez de encaminhar a transmisso, como faria normalmente, a estao B responde como se fosse o servidor, pedindo o login e senha de acesso. O usurio na estao A, sem desconfiar do ataque, faz login e recebe de volta uma mensagem de "servidor em manuteno, espere 30 minutos e tente novamente" ou algo similar. De posse da senha, o atacante pode ento se logar no servidor verdadeiro, usando a senha roubada.

Muitos protocolos prevem este tipo de ataque e incluem protees contra ele. No SSH, por exemplo, o cliente verifica a identidade do servidor a cada conexo e aborta a conexo (exibindo uma mensagem de erro bastante chamativa) antes de pedir login e senha caso a identificao seja alterada, como veremos em mais detalhes no captulo 6. possvel detectar ataques de ARP poisoning usando o arpwatch (tambm disponvel via apt-get). Ele monitora os endereos ARP usados pelas estaes e gera um log com as mudanas (com a opo de enviar relatrios por e-mail), permitindo que voc detecte anomalias. Em outras situaes, pode ser que voc mesmo, como administrador da rede, precise policiar o que os usurios esto fazendo durante o expediente na conexo da empresa. Nesse caso, sugiro que voc mantenha o servidor SSH ativo nas estaes de trabalho Linux e um servidor VNC (ou o recurso de administrao remota) nas mquinas Windows. Assim, voc pode se logar em cada uma das mquinas, sempre que necessrio e rodar o Wireshark para acompanhar o trfego de dados de cada uma, sem que o usurio tome conhecimento. Outra possibilidade seria rodar o Wireshark na mquina que compartilha a conexo, assim voc poder observar os pacotes vindos de todas as mquinas da rede. Alguns modelos de switches gerenciveis podem ser programados para direcionar todo o trfego da rede para uma determinada porta, onde voc poderia plugar um notebook para ter acesso a todo o trfego. No caso das redes wireless, a situao um pouco mais complicada, pois o meio de transmisso sempre compartilhado. Os pacotes trafegam pelo ar, por isso no possvel impedir que sejam capturados. Apesar disso, voc pode dificultar bastante as coisas ativando o uso do WPA (se possvel j utilizando o WPA2) e reduzindo a potncia do transmissor do ponto de acesso, de forma a cobrir apenas a rea necessria. Lembre-se de que apenas informaes no encriptadas podem ser capturadas. Utilizando protocolos seguros, como o SSH, as informaes capturadas no tero utilidade alguma, pois estaro encriptadas. Monitorando sua conexo durante algum tempo, voc vai logo perceber vrios tipos de abusos, como sites que enviam requisies para vrias portas da sua mquina ao serem acessados, banners de propaganda que enviam informaes sobre seus hbitos de navegao para seus sites de origem, gente escaneando suas portas usando o Nessus ou outros aplicativos similares, spywares que ficam continuamente baixando banners de propaganda ou enviando informaes e assim por diante. Essas informaes so teis no apenas para decidir quais sites e servios evitar, mas tambm para ajudar na configurao do seu firewall. Pode ser que no incio voc no entenda muito bem os dados fornecidos pelo Wireshark, mas, depois de alguns dias observando, voc vai comear a entender muito melhor como as conexes TCP funcionam.

Segurana em redes Wireless Um dos grandes problemas em uma redes wireless que os sinais so transmitidos pelo ar. Os pontos de acesso e placas utilizam por padro antenas baratas, que proporcionam um alcance reduzido. Apesar disso, o sinal da sua rede pode ser capturado de muito mais longe por algum com uma antena de alto ganho. No existe como impedir que o sinal se propague livremente pelas redondezas (a menos que voc pretenda ir morar em um bunker, com paredes reforadas com placas de ao), de forma que a nica forma eficaz de proteo encriptar toda a transmisso, fazendo com que as informaes capturadas no tenham serventia. Como a questo da segurana em redes wireless muito divulgada, quase todas as redes j utilizam algum tipo de proteo, seja atravs do uso do WEP ou do WPA, seja atravs de uma lista de acesso dos endereos MAC autorizados a se conectarem rede. Este tpico se destina a mostrar como fcil burlar a maioria destas protees e quebrar a encriptao do WEP (inclusive do WEP de 128 bits), alm de descobrir passphrases WPA fceis, usando ferramentas simples. melhor que voc conhea os ataques mais usados e veja voc mesmo como possvel derrubar cada uma das protees que utilizamos em uma rede tpica, do que ficar com um falso senso de segurana, achando que o WEP de 128 bits inquebrvel, que no possvel detectar um ponto de acesso com o SSID broadcast desativado ou que no possvel burlar a restrio de acesso baseada em endereos MAC usada em muitas redes. Usando o Kismet O Kismet uma ferramenta poderosa, que pode ser usada tanto para checar a segurana de sua prpria rede wireless quanto para checar a presena de outras redes prximas e, assim, descobrir os canais que esto mais congestionados (de forma a configurar sua rede para usar um que esteja livre) ou, at mesmo, invadir redes. O Kismet em si no impe restries ao que voc pode fazer. Assim como qualquer outra ferramenta, ele pode ser usado de forma produtiva ou destrutiva, de acordo com a ndole de quem usa. A pgina do projeto a: http://www.kismetwireless.net/. A principal caracterstica do Kismet que ele uma ferramenta passiva. Ao ser ativado, ele coloca a placa wireless em modo de monitoramento (rfmon) e passa a escutar todos os sinais que cheguem at sua antena. Mesmo pontos de acesso configurados para no divulgar o SSID ou com a encriptao ativa so detectados. Como ele no transmite pacotes, apenas escuta as transmisses, todo o processo feito sem prejudicar as redes vizinhas, de forma praticamente indetectvel. A principal limitao que, enquanto est em modo de monitoramento, a placa no pode ser usada para outros fins. Para conectarse a uma rede, voc precisa primeiro parar a varredura.

Essa questo da deteco dos pontos de acesso com o SSID desativado interessante. No possvel detect-los diretamente, pois eles no respondem a pacotes de broadcast (por isso eles no so detectados por programas como o Netstumbler), mas o Kismet capaz de detect-los quando um cliente qualquer se associa a eles, pois o SSID da rede transmitido de forma no encriptada durante o processo de associao. A partir da, o Kismet passa a capturar todos os pacotes transmitidos. Caso a rede esteja encriptada, possvel descobrir a chave de encriptao usando o aircrack (que veremos a seguir), permitindo tanto escutar as conexes, quanto ingressar na rede. Como o Kismet uma das ferramentas mais usadas pelos crackers, sempre interessante us-lo para verificar a segurana da sua prpria rede. Tente agir como algum vizinho obstinado agiria, capturando os pacotes ao longo de alguns dias. Verifique a distncia de onde consegue pegar o sinal de sua rede e quais informaes consegue descobrir. Depois, procure meios de reforar a segurana da rede e anular o ataque. Por ser uma ferramenta popular, ele est disponvel na maioria as distribuies. Algumas, como o Knoppix (a partir da verso 3.7), j o trazem instalado por padro. Nas distribuies derivadas do Debian, voc pode instal-lo via apt-get: # apt-get install kismet Antes de poder us-lo, preciso configurar o arquivo "/etc/kismet/kismet.conf", especificando a placa wireless e o driver usado por ela, substituindo a linha: source=none,none,addme Por algo como: source=madwifi_ag,ath0,atheros ... onde o "madwifi_ag" o driver usado pela placa (voc pode verificar o chipset da placa instada usando o comando lspci). Na documentao do Kismet, o driver chamado de "capture source", pois a partir dele que o Kismet obtm os pacotes recebidos. O "ath0" a interface (que voc pode conferir atravs do comando ifconfig) e o "atheros" um apelido para a placa (que voc escolhe), com o qual ela ser identificada dentro da tela de varredura. A configurao manual necessria, pois o Kismet precisa de acesso de baixo nvel ao hardware. Um problema que a necessidade de colocar a placa em modo monitor faz com que a compatibilidade esteja longe de ser perfeita. Diversas placas no funcionam em conjunto com o Kismet, com destaque para as placas que no possuem drivers nativos e precisam ser configuradas atravs do Ndiswrapper. Se voc pretende usar o Kismet, o ideal pesquisar antes de comprar a placa.

Naturalmente, para que possa ser usada no Kismet, a placa precisa ter sido detectada pelo sistema, o que inclui o carregamento dos mdulos de Kernel necessrios. Por isso, prefira sempre usar uma distribuio recente, que traga um conjunto atualizado de drivers. Vamos ento a uma pequena lista dos drivers e placas suportados no Kismet: acx100: O chipset ACX100 foi utilizado em placas de diversos fabricantes, entre eles a D-Link, sendo depois substitudo pelo ACX111. O ACX100 original bem suportado pelo Kismet, o problema que ele trabalha a 11 megabits, de forma que no possvel testar redes 802.11g. admtek: O ADM8211 um chipset de baixo custo, encontrado em muitas placas baratas. Ele suportado no Kismet, mas possui alguns problemas. O principal que ele envia pacotes de broadcast quando em modo monitor, fazendo com que sua varredura seja detectvel em toda a rea de alcance do sinal. Qualquer administrador esperto vai perceber que voc est capturando pacotes. bcm43xx: Tradicionalmente, as placas com chipset Broadcom podiam ser usadas apenas em conjunto com o Ndiswrapper. Mais recentemente, surgiu um driver nativo (http://bcm43xx.berlios.de) que passou a ser suportado no Kismet. O driver vem includo por padro a partir do Kernel 2.6.17, mas a compatibilidade no Kismet ainda est em estgio experimental. ipw2100, ipw2200, ipw2915 e ipw3945: Estes so os drivers para as placas com chipset Intel, encontradas nos notebooks Intel Centrino. O Kismet suporta toda a turma, mas voc precisa indicar o driver correto para a sua placa entre os quatro. O ipw2100 o chipset mais antigo (que opera a 11 megabits), o ipw2200 a segunda verso (que suporta tanto o 802.11b quanto o 802.11g), o ipw2915 quase idntico ao ipw2200, mas suporta tambm o 802.11a, enquanto o ipw3945 uma verso atualizada, que encontrada nos notebooks com processadores Core 2 Duo. madwifi_a, madwifi_b, madwifi_g, madwifi_ab e madwifi_ag: Estes drivers representam diferentes modos de operao suportados pelo driver madwifi (http://sourceforge.net/projects/madwifi/), usado nas placas com chipset Atheros. Eles suportam tanto o driver madwifi antigo, quanto o "madwifi-ng", que podem ser usados para ativar a placa. Usando os drivers madwifi_a, madwifi_b ou madwifi_g, a placa captura pacotes apenas dentro do padro selecionado (o madwifi_a captura apenas pacotes de redes 802.11a, por exemplo). O madwifi_g o mais usado, pois captura simultaneamente os pacotes de redes 802.11b e 802.11g. O madwifi_ag, por sua vez, chaveia entre os modos A, B e G, permitindo capturar pacotes de redes que operam em qualquer um dos trs padres, apesar de em um ritmo mais lento, devido ao chaveamento.

rt2400 e rt2500: Estes dois drivers do suporte s placas com chipset Ralink, outro exemplo de chipset de baixo custo, bastante comum. Apesar de no serem exatamente "placas de alta qualidade", as Ralink possuem um bom suporte no Linux, graas em parte aos esforos do prprio fabricante, que abriu as especificaes e fornece placas de teste para os desenvolvedores. Isto contrasta com a atitude hostil de alguns fabricantes, como a Broadcom. rt8180: Este o driver que oferece suporte s placas Realtek 8180. Muita gente usa estas placas em conjunto com o Ndiswrapper, mas elas possuem um driver nativo, disponvel no http://rtl8180-sa2400.sourceforge.net/. Naturalmente, o Kismet s funciona caso seja usado o driver nativo. prism54g: Este driver d suporte s placas com o chipset Prism54, encontradas tanto em verso PCI ou PCMCIA, quanto em verso USB. Estas placas so caras e por isso relativamente incomuns no Brasil, mas so muito procuradas entre os grupos que fazem wardriving, pois as placas PCMCIA so geralmente de boa qualidade e quase sempre possuem conectores para antenas externas, um pr-requisito para usar uma antena de alto ganho e assim conseguir detectar redes distantes. orinoco: Os drivers para as placas com chipset Orinoco (como as antigas Orinoco Gold e Orinoco Silver) precisam de um conjunto de patches para funcionar em conjunto com o Kismet, por isso acabam no sendo placas recomendveis. Voc pode ver detalhes sobre a instalao dos patches no http://www.kismetwireless.net/HOWTO-26_Orinoco_Rfmon.txt. Depois de definir o driver, a interface e o nome no "/etc/kismet/kismet.conf", voc pode abrir o Kismet chamando-o como root: # kismet

Inicialmente, o Kismet mostra as redes sem uma ordem definida, atualizando a lista conforme vai descobrindo novas informaes. Pressione a tecla "s" para abrir o menu de organizao, onde voc pode definir a forma como a lista organizada (de acordo com a qualidade do canal, volume de dados capturados, nome, etc). Uma opo comum (dentro do menu sort) a "c", que organiza a lista baseando-se no canal usado por cada rede. Por padro, o Kismet chaveia entre todos os canais, tentando detectar todas as redes disponveis. Neste modo, ele captura apenas uma pequena parte do trfego de cada rede, assim como voc s assiste parte de cada programa ao ficar zapiando entre vrios canais da TV. Selecione a rede que quer testar usando as setas e pressione "shift + L" (L maisculo) para trav-lo no canal da rede especificada. A partir da, ele passa a concentrar a ateno em uma nica rede, capturando todos os pacotes transmitidos:

Voc pode tambm ver informaes detalhadas sobre cada rede selecionando-a na lista e pressionando enter. Pressione "q" para sair do menu de detalhes e voltar tela principal. Outro recurso interessante que o Kismet avisa sobre "clientes suspeitos", micros que enviam pacotes de conexo para os pontos de acesso, mas nunca se conectam a nenhuma rede, indcio de que provavelmente so pessoas fazendo wardriving ou tentando invadir redes. Este o comportamento de programas como o Netstumbler (do Windows). Micros rodando o Kismet no disparam este alerta, pois fazem o scan de forma passiva: ALERT: Suspicious client 00:12:F0:99:71:D1 - probing networks but never participating.

O Kismet gera um dump contendo todos os pacotes capturados, que vai por padro para a pasta "/var/log/kismet/". A idia que voc possa examinar o trfego capturado posteriormente usando o Wireshark, que permite abrir o arquivo e examinar os dados capturados. O problema que, ao sniffar uma rede movimentada, o dump pode se transformar rapidamente em um arquivo com vrios gigabytes, exigindo que voc reserve bastante espao no HD. Um dos maiores perigos em uma rede wireless que qualquer pessoa pode capturar o trfego da sua rede e depois examin-lo calmamente em busca de senhas e outros dados confidenciais transmitidos de forma no encriptada. A funo do WEP e do WPA oferecer uma camada de segurana, fazendo com que, antes de chegar aos dados, seja necessrio quebrar a chave de encriptao. Evite usar chaves WEP de 64 bits, pois ele pode ser quebrado via fora bruta caso seja possvel capturar uma quantidade razovel de pacotes da rede. As chaves de 128 bits so um pouco mais seguras, mas na prtica a diferena no muito grande. Em termos se segurana, o WPA est bem frente, mas us-lo traz problemas de compatibilidade com algumas placas, drivers e dispositivos antigos. Sempre que possvel, use o SSH, SSL ou outro sistema de encriptao na hora de acessar outras mquinas da rede ou baixar seus e-mails, dessa forma, usada uma segunda camada de encriptao, que protege os dados mesmo que a camada inicial seja comprometida. Quebrando o WEP Para voc entender a importncia de usar o SSH o outros protocolos seguros ao usar uma rede wireless, vou falar um pouco mais sobre como quebrar chaves de encriptao, para que voc possa entender os ataques usados pelos que esto do outro lado. Muitos pontos de acesso antigos utilizam verses vulnerveis do WEP, que so muito rpidas de quebrar. Mesmo as verses "no vulnerveis" do WEP podem ser quebradas via fora bruta, sempre que seja possvel capturar um volume suficiente de trfego da rede. Voc pode simular uma invaso na sua prpria rede, para verificar qual seria o volume de trabalho necessrio para invad-la. Para isso, voc vai precisar de pelo menos dois micros ou notebooks. Um deles vai ser usado como um cliente de rede normal e pode usar qualquer placa de rede, enquanto o segundo (que usaremos para simular o ataque) precisa ter uma placa compatvel com o Kismet. Configure o seu ponto de acesso ativando o WEP e desativando o Broadcast do SSID. Ou seja, faa uma configurao relativamente segura, mas depois faa de conta que esqueceu tudo. :) Comece abrindo o Kismet no notebook "invasor". Deixe que ele detecte as redes prximas; pressione "s" para ajustar a ordem dos nomes na lista, selecione sua rede e pressione "shift + L" para que ele trave a varredura na sua rede e deixe de bisbilhotar as redes dos vizinhos. Inicialmente, sua rede ser detectada como "no ssid", j que o broadcast do SSID foi desativado no ponto de acesso. Mas, assim que qualquer micro se

conecta ao ponto de acesso, o Kismet descobre o SSID correto. Pressione "i" para ver os detalhes da rede e anote o endereo MAC do ponto de acesso (BSSID), que precisaremos para iniciar o passo seguinte.

Endereo MAC do ponto de acesso, dentro dos detalhes da rede Agora que j sabemos o SSID e o MAC do ponto de acesso, falta quebrar o WEP. Para isso precisaremos do Aircrack, uma sute de aplicativos para verificao de redes wireless, que pode ser encontrada no http://freshmeat.net/projects/aircrack/. Nos derivados do Debian, ele pode ser instalado via apt-get: # apt-get install aircrack Outra opo, mais simples, baixar o live-CD do BackTrack Remote Exploit, uma distribuio Linux live-CD, baseada no Slax, que inclui um conjunto cuidadosamente escolhido de ferramentas de verificao de segurana e drivers modificados para suportar o modo monitor em diversas placas. Basta dar boot com o CD e voc ter todas as ferramentas necessrias a disposio. O arquivo ISO est disponvel no: http://www.remoteexploit.org/backtrack.html. Voltando ao teste, o primeiro passo capturar pacotes da rede usando o airodump (que faz parte da sute aircrack). A sintaxe do comando "airodump interface arquivo-de-log mac-do-ponto-de-acesso" (o comando precisa ser executado como root), como em: # airodump ath0 logrede 00:50:50:81:41:56

Voc pode tambm indicar um canal (neste caso, ele escuta todas as redes que estejam transmitindo no canal indicado), como em: # airodump ath0 logrede 14 Isto gerar o arquivo "logrede.cap", que contm um dump de todos os pacotes capturados. Nesse ponto voc precisa esperar algum tempo at conseguir um volume razovel de pacotes. Para acelerar isso, faa com que o micro que est servindo de isca baixe alguns arquivos grandes a partir de outro micro da rede. Abra outro terminal e use o aircrack para tentar quebrar a chave de encriptao. Voc pode fazer isso sem interromper a captura do airodump, da a idia de usar dois terminais separados. Ao usar o aircrack, preciso especificar o comprimento da chave WEP (64 ou 128 bits) e o arquivo gerado pelo airodump, como em: # aircrack -n 64 logrede.cap ou: # aircrack -n 128 logrede.cap Caso o arquivo contenha pacotes destinados a mais de um ponto de acesso, ele pergunta qual verificar. No caso, indique sua rede. O aircrack usa um ataque de fora bruta para tentar descobrir a chave de encriptao da rede. A base do ataque so os IV's (vetores de inicializao), a parte de 24 bits da chave de encriptao, que trocada periodicamente. O volume de IV's gerados varia de acordo com a rede (por isso existem redes mais vulnerveis do que outras), mas, na maioria dos casos, possvel quebrar a encriptao de uma rede de 128 bits caso voc consiga capturar de 500 mil a um milho de IV's, enquanto uma chave de 64 bits pode ser quebrada com pouco mais de 200 mil. Caso seja usada uma chave fcil de adivinhar, os nmeros so drasticamente reduzidos, permitindo em muitos casos que a chave seja quebrada com a captura de alguns poucos milhares de IV's. Como todo processo de fora bruta, o tempo necessrio aleatrio. O aircrack pode descobrir a chave correta tanto logo no incio da captura, quanto s depois de capturar mais de um milho de IV's. Por isso interessante deixar o terminal de captura do airodump aberto e ir executando o aircrack periodicamente, at que ele descubra a chave. Quanto maior o volume de dados capturados, maior a possibilidade dele descobrir a chave. Uma forma de aumentar a eficincia do ataque, ou seja, aumentar a chance de descobrir a chave usando o mesmo nmero de IV's, aumentar o "fudge factor", o que faz com que o aircrack teste um nmero maior de combinaes. Isso, naturalmente, aumenta proporcionalmente o tempo necessrio para o teste.

O default do aircrack um fudge factor 2. Voc pode alterar o valor usando a opo "-f", como em: # aircrack -f 4 -n 128 logrede.cap comum comear fazendo um teste com o valor default, depois com fudge 4, como no exemplo, e a partir da ir dobrando at descobrir a chave (ou a demora se tornar invivel). Com um grande volume de IV's, uma chave WEP de 64 bits um alvo fcil. Neste caso a quebra demorou apenas 21 segundos:

Como necessrio capturar um grande volume de dados e muitas redes so usadas apenas para acessar a Internet e outras tarefas leves, capturar o volume de pacotes necessrio poderia demorar dias. Um invasor com um nvel mediano de conhecimento, provavelmente no se contentaria em esperar tanto tempo. Ao invs disso, ele poderia usar um ataque de flood para induzir trfego na sua rede, de forma a acelerar o processo, transformando os muitos dias em apenas alguns minutos. Um exemplo de ferramenta usada para este tipo de ataque o aireplay, mais um integrante da equipe do aircrack. O comando abaixo lana um "chopchop atack" (o tipo de ataque mais eficiente para quebrar chaves WEP) contra o ponto de acesso referente ao endereo MAC especificado, atravs da interface ath0: # aireplay -b 00:50:50:81:81:01 -x 512 ath0 -4 Neste ataque, o aireplay captura um weak packet, emitido por algum dos outros micros conectados ao ponto de acesso, e o repete indefinidamente, obrigando o ponto de acesso a responder e assim aumentar rapidamente a contagem de IV's, o que permite quebrar a chave WEP muito mais rapidamente. Este o tipo de ataque mais efetivo, pois derruba a ltima grande barreira contra a quebra do WEP, que era justamente a demora em capturar um grande volume de pacotes. O "-x 512" especifica o nmero de pacotes que sero enviados por segundo. Aumentar o nmero permite quebrar a chave mais rapidamente, mas, por outro lado, vai reduzir o desempenho da rede, o que pode levar o

administrador a perceber o ataque (a menos que ele seja feito em um momento de ociosidade da rede). Como pode ver, o WEP dificulta o acesso rede, mas quebr-lo apenas questo de tempo. Para melhorar a segurana da sua rede, o ideal combinar vrias camadas de segurana e monitorar os acessos, fazendo com que o tempo e trabalho necessrio para invadir a rede seja maior (o que vai afastar os curiosos e invasores casuais) e vai lhe dar tempo para detectar e investigar casos mais graves. Outra dica que dificulta um pouco o acesso, habilitar a restrio de acesso rede com base no endereo MAC, geralmente disponvel atravs da opo "Access Control" do ponto de acesso. Ao ativar esta opo, voc cria uma lista com os endereos MAC das placas autorizadas e o ponto de acesso restringe o acesso de qualquer outra. Programas como o airodump e o prprio Kismet permitem descobrir o endereo MAC dos micros que esto acessando determinada rede muito facilmente, e o endereo MAC da placa de rede pode ser forjado (no Linux, por exemplo, voc pode falsear usando o comando "ifconfig wlan0 hw ether 00:11:D8:76:59:2E", onde voc substitui o "wlan0" pela interface e o "00:11:D8:76:59:2E" pelo endereo MAC desejado). A questo que, ao forjar o endereo, o invasor vai derrubar o micro com a placa que foi clonada, uma dica para que voc perceba que algo est errado. O prximo passo seria isolar sua rede wireless do restante da rede, fazendo com que o invasor possa acessar a Internet, mas no tenha como acessar compartilhamentos e outros recursos da rede. O mais simples neste caso instalar uma placa de rede adicional no servidor da rede (ou em qualquer outro micro na ausncia dele), onde conectado o ponto de acesso. Compartilhe a conexo com a placa do AP, mas utilize duas faixas de IP's separados, com um firewall ativo, configurado para bloquear tentativas de conexo provenientes dos micros dentro da rede wireless. Quebrando o WPA ou WPA2 No captulo 3 comentei que, ao contrrio do WEP, o WPA e o WPA2 no possuem falhas conhecidas de segurana, que permitam descobrir a chave rapidamente. Apesar disso, ainda possvel usar ataques de fora bruta para descobrir passphrases fceis, baseadas em palavras do dicionrio ou sequncias numricas simples. Vamos ento entender melhor como o processo funciona. O primeiro passo instalar o pacote aircrack-ng, sucessor do pacote aircrack que usamos anteriormente, que contm as ferramentas que utilizaremos. Para funcionar, ele precisa que a placa wireless suporte o modo monitor, que suportado por padro em um nmero cada vez menor de drivers. Na maioria dos casos, voc vai precisar primeiro modificar os drivers da placa, baixando o fonte, instalando um patch e compilando o driver modificado.

Para isso, voc precisa ter instalados os headers do kernel e os compiladores bsicos. Voc pode encontrar informaes detalhadas de como fazer isso em conjunto com diversas placas no: http://www.aircrack-ng.org/. Outra opo utilizar o BackTrack, que j vem com os patches instalados. Para aplicar o teste, comece usando o Kismet para descobrir o SSID e o canal utilizado pela rede que deseja testar, alm do endereo MAC do ponto de acesso e o endereo MAC de pelo menos um cliente que esteja conectado a ele. Se voc est testando sua prpria Rede, basta checar as informaes na configurao do ponto de acesso. O passo seguinte usar o airmon-ng para capturar o processo de autenticao de um dos clientes da rede. Ele baseado no uso de um "fourway handshake", onde uma srie de quatro pacotes usada para negociar uma chave criptogrfica entre o cliente e o ponto de acesso, que ento usada para criptografar o processo de autenticao. Naturalmente, capturar esta sequncia de pacotes no permite descobrir a passphrase da rede, mas oferece a possibilidade de executar o ataque de fora bruta, testando vrias possibilidades at descobrir a chave correta. Comece colocando a placa wireless em modo monitor, usando o comando "airmon-ng start interface", como em: # airmon-ng start eth1 No caso das placas com chipset Atheros, necessrio desativar a interface "ath0" e recri-la em modo monitor, usando os comandos: # airmon-ng stop ath0 # airmon-ng start wifi0 O passo seguinte capturar o processo de autenticao de um dos clientes. Vamos fazer isso abrindo dois terminais. O primeiro ser usado para rodar o airodump-ng e assim capturar as transmisses e o segundo para rodar o aireplay-ng, desconectando o cliente e obrigando-o a se reconectar ao ponto de acesso, de forma que os pacotes possam ser capturados. No primeiro terminal, ative o airodump-ng, especificando onde ser gravado o arquivo com os pacotes capturados, o canal usado pelo ponto de acesso e a interface, como em: # airodump-ng -w logrede --channel 2 ath0 Com isso, ser gerado um arquivo "logrede.cap" no diretrio atual.

No outro terminal, rode o comando "aireplay-ng --deauth 1", especificando o endereo MAC do ponto de acesso (-a) e o endereo MAC do cliente que ser desconectado (-c), como em: # aireplay-ng --deauth 1 -a 00:50:50:81:41:56 -c 00:19:7D:4C:CA:07 Este comando faz com que seu PC envie um pacote falseado ao ponto de acesso, simulando o processo de desconexo do cliente especificado. Enganado pelo pacote, o ponto de acesso desconecta o cliente, o que faz com que ele se re-autentique em seguida, um processo executado de forma automtica pela maioria dos sistemas operacionais. Com isso, o processo de autenticao ser gravado pela captura iniciada no outro terminal. Para realizar o ataque baseado em dicionrio, necessrio utilizar um arquivo de texto, contendo uma lista das palavras que sero testadas. Existem diversos arquivos de dicionrio largamente disponveis na web (faa uma busca por "wordlists" no Google), como o repositrio disponvel no http://www.outpost9.com/files/WordLists.html. Na maioria das distribuies, voc encontra tambm uma lista de palavras que pode ser usada na forma do arquivo "/usr/share/dict/words" e voc pode tambm comprar um CD com uma coleo de arquivos, contendo listas com palavras de todas as lnguas no: http://www.openwall.com/passwords/wordlists/. Com o arquivo de palavras em mos, use o comando abaixo para testar as combinaes, especificando o SSID da rede, o arquivo com as palavras e o arquivo com a captura dos pacotes (gerado pelo airmon-ng), como em: $ aircrack-ng -e rede -w dict.txt logrede.cap ... onde o "rede" indica o SSID da rede, o "dict.txt" indica a localizao do dicionrio e o "logrede.cap" o arquivo com a captura. necessrio indicar o SSID da rede, pois ele uma das informaes includas no processo de autenticao. O teste feito em modo offline, usando os pacotes de autenticao capturados para simular o processo de autenticao usando cada uma das palavras includas no arquivo. O volume de processamento necessrio para cada uma faz com que o teste demore um bom tempo. Um Celeron-M de 1.4 GHz, por exemplo, consegue processar (mesmo com todas as otimizaes includas no aircrack-ng) apenas cerca de 100 possibilidades por segundo, o que resulta em um ritmo de 360 mil combinaes por hora, ou 8.64 milhes de combinaes por dia. Pode parecer bastante, mas nesse ritmo demoraria mais de um milho de anos para testar todas as possibilidades de uma passphrase com 8 caracteres contendo letras, nmeros e caracteres especiais (e exponencialmente mais para passphrases mais longas). por isso que o ataque se concentra em testar uma lista de palavras, e no em realmente testar todas as possibilidades possveis.

possvel tambm usar o John the Ripper para testar variaes das palavras do dicionrio, permitindo assim descobrir passphrases construdas com base em variaes ou em combinaes de palavras, como "paralelep1ped0" o que bastante comum. Voc pode baix-lo no: http://www.openwall.com/john/ Para us-lo, descompacte o arquivo, acesse a pasta "src" (dentro da pasta criada) e rode o comando "make". Isso gerar o executvel do programa dentro da pasta "run", que pode ento ser executado, como em "./john". O John uma ferramenta muito usada para testar senhas, pois ele pode lanar ataques de fora bruta, testando todas as combinaes ou utilizando um arquivo de dicionrio em praticamente todo tipo de arquivo de senhas. No nosso caso, usaremos o John para processar o arquivo de dicionrio, direcionando a sada para o aircrack-ng. O comando ficaria: $ ./john --wordlist=dict.txt --rules --stdout | aircrack-ng -e rede -w logrede.cap Como pode ver, o processo de quebrar chaves WPA bastante demorado e, mesmo assim, inefetivo contra passphrases construdas com caracteres aleatrios, principalmente no caso de passphrases longas. Com a gerao atual de programas, voc pode garantir a segurana da sua rede usando uma boa passphrase. Uma passphrase longa, com 20 caracteres ou mais (que no seja a combinao de duas ou mais palavras), impossvel de quebrar usando fora bruta. A nica forma de obter acesso rede seria convencer algum dos usurios a revel-la. Uma soluo para este ltimo problema seria utilizar uma passphrase impossvel de memorizar (imagine o caso de uma passphrase com 50 caracteres ou mais :). Voc pode ento imprimir a passphrase em papel, digit-la no cliente para autorizar a conexo e em seguida destruir a cpia impressa.