Introdução Os primeiros modems ADSL ofereciam apenas a função básica, que é modular o sinal, permitindo que um PC ligado a ele possa acessar a web. Com o passar do tempo, a popularização da tecnologia e o barateamento dos componentes possibilitaram o lançamento de modems com cada vez mais recursos, incluindo funções de roteador, firewall, suporte a QoS e outros recursos, que hoje em dia são padrão mesmo nos modelos mais baratos. Não seria viável ter que instalar um teclado, mouse e monitor no modem ADSL para ter acesso à interface de configuração. Em vez disso, o modem inclui um mini-servidor web, que disponibiliza um conjunto de páginas web com as opções disponíveis. Como não existe uma interface de configuração padrão para modems ADSL, cada fabricante apresenta as funções de um jeito diferente, o que, combinado com a fraca documentação e o fraco suporte prestado pelas operadoras e pelos provedores de acesso, faz com que a configuração dos modems ADSL pareça mais complicada do que realmente é. Vamos então a um resumo das opções disponíveis e alguns exemplos de configuração: O básico O modem ADSL pode ser configurado através de uma interface de configuração, que fica acessível por padrão apenas a partir da rede local. Em primeiro lugar, crie a comunicação física entre o PC e o modem, ligando-os através de um cabo cross-over ou um hub/switch. O modem vem de fábrica com um endereço IP padrão, como, por exemplo, 10.0.0.138 ou 192.168.1.1 e uma senha de acesso simples, como "1234" ou "admin". Muitas vezes, as operadoras alteram as senhas dos modems, para impedir que o usuário o reconfigure para trabalhar como roteador. Nesse caso, você vai ter o trabalho de pesquisar na web quais as senhas usadas pela operadora e testar uma a uma até achar a usada no seu modem, uma dor de cabeça a mais. Felizmente essa prática vem se tornando menos comum. A configuração padrão varia de modem para modem, por isso é importante ter em mãos o manual do seu. Se o modem utilizar uma faixa de endereços diferente da utilizada na rede, basta alterar a configuração de rede do micro, para que ele utilize um endereço dentro da mesma faixa utilizada pelo modem. A partir daí você pode acessá-lo usando o navegador. A configuração do modem é dividida em duas seções principais: LAN e WAN. Imagine que o modem ADSL é na verdade um mini-roteador, que possui duas interfaces de rede: a interface ADSL (WAN), onde vai o cabo telefônico e uma interface de rede local (LAN), que é ligada ao switch da rede. Na seção LAN vai a configuração da rede local, incluindo o endereço IP e a máscara de sub-rede, através da qual o modem fica acessível dentro da rede local. Ao acessar pela primeira vez, não se esqueça de alterar a configuração, para que o modem passe a utilizar um endereço dentro da faixa usada na rede. Além de permitir acessar a interface de configuração, o endereço definido na configuração do modem passa a ser o gateway padrão da rede ao configurá-lo como roteador. Normalmente utilizamos o primeiro ou o último endereço da rede para o gateway, como em "192.168.1.1" ou "192.168.1.254", mas isso é apenas uma convenção, não uma regra. Quase sempre, está disponível também um servidor DHCP, que deve ser configurado com uma faixa de endereços livres na sua rede. Na configuração, você indica um endereço de início e fim para a faixa usada pelo servidor DHCP, como de 192.168.1.2 a 192.168.1.100 e os demais endereços ficam livres para PCs configurados com IP fixo. É importante enfatizar que você deve ter apenas um servidor DHCP no mesmo segmento de rede, de forma que se você já tem um servidor DHCP ativo na rede, o servidor DHCP do modem deve ser desativado. Aqui temos um exemplo, dentro da configuração do mesmo D-Link 500G do screenshot anterior: A opção "Lease Time" dentro da configuração indica o tempo que os endereços serão "emprestados" para as estações. Após esse período, a estação deve renovar o endereço ou deixar de usá-lo. Isso evita que endereços fiquem eternamente reservados a micros que não fazem mais parte da rede. Em seguida temos a configuração dos endereços DNS que serão fornecidos aos clientes. Aqui temos um segundo exemplo, na configuração de um modem Kayomi LP-AL2011P (que é, na verdade, um Conexant Hasbani), onde a configuração dos endereços de rede e do servidor DHCP são unificadas em uma única seção: Nos modems atuais, a interface de configuração é sempre acessada usando o navegador, mas em alguns modelos antigos (como no Parks Prestige) era usada uma interface em modo texto, acessada via telnet, usando o terminal (no Linux) ou o prompt do MS-DOS (no Windows), como em: $ telnet 192.168.1.1 Trying 192.168.1.1... Connected to 192.168.1.1. Escape character is '^]'. Password: [SSL not available] ******** À primeira vista, uma interface em modo texto não parece muito amigável, mas em essência é o mesmo bolo, apenas com uma cobertura diferente. No caso da Interface do Parks Prestige, a configuração da rede e do servidor DHCP vai no menu "3. Ethernet Setup > 2. TCP/IP and DHCP Setup": Dentro da configuração do DHCP, a opção "Client IP Pool Starting Address=" indica o primeiro endereço IP que será atribuído (os números abaixo deste ficam reservados para micros com IP fixo) e o número máximo de clientes que receberão endereços IP (Size of Client IP Pool). Usando um pool de 6 endereços, com início no 192.168.1.33, por exemplo, a faixa iria até o 192.168.1.38, suficiente para uma rede com apenas dois ou três micros. Depois de terminar, não esqueça de alterar também a senha de acesso, já que as senhas padrões dos modems são bem conhecidas. Embora a interface de configuração não fique disponível para a web (em muitos modems você pode ativar o acesso, mas via de regra ele fica desativado), nada impede que algum usuário da rede, ou algum vizinho que consiga acesso à sua rede wireless resolva pregar peças alterando a configuração do modem. Parâmetros da conexão Em seguida temos a configuração do link ADSL propriamente dito, que vai na seção WAN, que é composta por basicamente duas informações: os códigos VPI e VCI e o sistema de encapsulamento usado pela operadora. VPI é abreviação de "Virtual Path Identifier" e VCI de "Virtual Circuit Identifier". Juntos, os dois endereços indicam o caminho que o modem ADSL deve usar dentro da rede de telefonia para chegar até o roteador que oferece acesso à web. Você pode imaginar os dois valores como um número de telefone ou como um endereço de rede. Sem indicar os endereços corretamente na configuração do modem, a conexão simplesmente não é estabelecida. Os valores VPI/VCI usados atualmente no Brasil são: Telefonica: VPI 8, VCI 35 Telemar: VPI 0, VCI 33 CTBC: VPI 0, VCI 35 Brasil Telecom: VPI 0, VCI 35 Brasil Telecom (no RS): VPI 1, VCI 32 GVT: VPI 0, VCI 35 Você pode confirmar esses valores ligando para o suporte técnico, ou pesquisando na web. É fácil obter estas informações. Outra informação importante é o tipo de encapsulamento usado, ou seja, o tipo de protocolo que é simulado através do link ADSL. No Brasil é usado quase que exclusivamente o PPPoE encapsulado via LLC, de forma que é esta a configuração que você deve utilizar a menos que seja orientado pela operadora ou o provedor a fazer diferente. Apesar disso, os modems ADSL oferecem diversas outras possibilidades. Vamos entender o que elas significam: PPPoE: Neste modo o link ADSL se comporta como um link Ethernet, usando o mesmo formato de frame e o mesmo sistema de endereçamento. Sobre este link Ethernet é criada uma conexão ponto a ponto (PPP), que liga seu PC, ou seu modem ADSL ao servidor de acesso remoto, passando pelo DSLAN instalado na central, daí o termo "PPPoE", que significa "PPP over Ethernet". A conexão PPP simula uma conexão discada. Ao configurar o modem como bridge a "discagem" é feita pelo seu PC, de forma que você precisa ativar e desativar a conexão quando desejado, enquanto que ao configurar o modem como roteador o próprio modem efetua a conexão e roteia os pacotes ao PC, que passa a enxergar uma conexão de rede. O uso do link PPP adiciona uma camada extra de segurança na conexão, permitindo o uso de encriptação e autenticação. PPPoA: Neste modo o link ADSL se comporta como um link ATM, que é o sistema tradicionalmente usado no sistema telefônico. O protocolo ATM oferece um overhead um pouco menor que o PPPoE, o que aumenta sutilmente o volume de dados "úteis" transportados através do link. Assim como no caso do PPPoE, o link ATM é usado para criar uma conexão PPP, com suporte a autenticação e tudo mais. O problema é que os equipamentos compatíveis com o ATM são mais caros, de forma que as operadoras preferem utilizar o PPPoE. Outro fator é que no PPPoA o modem ADSL precisa obrigatoriamente ser configurado como roteador, não como bridge. Isso acontece porque no PPPoA o link precisa ser terminado em uma interface ATM. Como usamos placas de rede Ethernet e não ATM, é necessário que o próprio modem atue como terminador e roteie os pacotes para o PC. Existem diversos mitos com relação ao PPPoA, entre eles que o PPPoA é usado apenas em planos empresariais, ou que ele é usado em conexões com IP fixo, mas na verdade ele indica apenas o tipo de modulação escolhido pela operadora. Tanto o PPPoE quanto o PPPoA suportam autenticação e ambos podem ser utilizados tanto em conexões com IP fixo quanto em conexões com IP dinâmico. Durante algum tempo, era comum que as operadoras disponibilizassem os dois sistemas, de forma que você podia usar qualquer um na configuração do modem, mas lentamente o suporte ao PPPoA foi retirado, deixando apenas o PPPoE. Outros sistemas de encapsulamento suportados por alguns modems, mas raramente usados são o MER (MAC Encapsulated Routing) e o IPoA (IP over ATM). Eles podem ser ignorados, pois não são usados por nenhuma operadora nacional. LLC e VC-Mux: O PPPoE ou o PPPoA são complementados por um segundo sistema de encapsulamento, que indica o protocolo usado. O LLC é o sistema mais comum, pois permite que sejam usados diversos protocolos de rede diferentes (mesmo que simultaneamente) em um único circuito. Em troca, ele adiciona um campo extra de identificação em cada pacote, o que aumenta o overhead da rede. O segundo sistema é o VC-Mux (também chamado de VC), que oferece um overhead um pouco menor, mas em troca demanda o uso de um circuito separado para cada protocolo, o que aumenta os custos para a operadora. O VC-Mux é usado em alguns países da Europa, mas é extremamente incomum aqui no Brasil. Aqui temos um exemplo de configuração, na interface do D-Link 500G: Você pode notar que estão presentes também as opções PVC, Authentication e MTU, que não citei anteriormente. PVC é abreviação de "Private Virtual Circuit". Normalmente, é usado um único PVC, responsável pelo link com a web, de forma que você simplesmente escolhe "PVC0" na configuração e especifica as demais informações referentes à conexão. É possível para as operadoras incluir mais circuitos virtuais na mesma conexão, usando um segundo circuito para VoIP, por exemplo, mas isso não é comum. A opção Authentication aceita os valores "PAP e "CHAP", que são os dois protocolos de autenticação usados em conjunto com o PPP. Normalmente, os provedores suportam ambos os protocolos, de forma que tanto faz qual dos dois é escolhido. A opção MTU permite definir o tamanho dos pacotes enviados através do link ppp, que podem conter até 1492 bytes no PPPoE e até 1500 bytes no PPPoA. Usar um tamanho de pacote menor pode ajudar em links ruins, mas normalmente só serve para reduzir a velocidade da conexão. A menos que tenha um bom motivo, simplesmente use o valor máximo. Aqui temos um segundo exemplo, com a configuração no Kayomi LP-AL2011P. Veja que ele oferece também a opção de definir um IP estático (que seria usada apenas caso você utilizasse um plano empresarial, com IP fixo). A opção "Mac Spoofing" permite forjar o endereço MAC da interface WAN, como às vezes é necessário para conectar a partir de outro micro nos planos de acesso via cabo: Se você está curioso sobre a configuração na interface de modo texto do Parks, aqui vai mais um exemplo. Note que ele oferece a opção "IP Address Assignment", que indica se a conexão utiliza IP fixo ou dinâmico. As opções "ISP's Name" e "Service Name" são apenas para dar nome à conexão, sem efeito sobre a configuração: Bridge x roteador A maior parte dos modems ADSL oferecidos pelas operadoras durante o boom inicial do ADSL vinham configurados em modo bridge, onde o modem estabelece o canal de comunicação com o DSLAM na central e cuida da modulação do sinal, mas deixa o processo de autenticação e a criação do link PPP a cargo do PC. É necessário então criar a conexão manualmente e ativá-la sempre que quiser se conectar. No Windows XP, use o assistente para novas conexões dentro do "Painel de Controle > Conexões de Rede", usando as opções "Conectar-me à Internet > Configurar minha conexão manualmente > Conectar-me usando uma conexão de banda larga que exija um nome de usuário e uma senha". Você tem então acesso ao menu onde pode indicar o login e a senha de acesso: Para conectar via PPPoE no Linux é necessário usar o pppoeconf (usado no Debian e derivados) ou o rp-pppoe (usado na maioria das outras distribuições). Muitos utilitários gráficos incluídos nas distribuições servem como interface para um deles. Ao usar o pppoeconf, chame o utilitário como root. Ele primeiro procura o modem ADSL, testando todas as placas de rede disponíveis, depois contata o modem na central, pede o login e senha, e depois estabelece a conexão. Depois de conectar pela primeira vez, você pode terminar a conexão usando o comando "poff -a" e reconectar usando o "pon dsl-provider", mesmo depois de reiniciar o micro. Caso ele não consiga detectar o modem (mesmo que ele esteja ativado e funcionando), pode ser que exista uma conexão anteriormente configurada ativa. Desative-a com o comando "poff -a". Em seguida, desative a interface de rede ligada ao modem ADSL usando o comando ifdown; se o modem estiver ligado à interface eth0, por exemplo, o comando será "ifdown eth0". Nas distribuições que utilizam o rp-pppoe, use o comando "adsl-setup" para configurar a conexão e "adsl-start" para conectar. Para parar a conexão manualmente, use o comando "adsl-stop". Nas versões mais recentes, existem dois utilitários, chamados "go" e "go-GUI" que automatizam a configuração. Caso tenha problemas com o rp-pppoe incluído na sua distribuição, experimente baixar a versão mais recente no: http://www.roaringpenguin.com/penguin/pppoe/. Ao conectar via pppoe, é criada a interface de rede "ppp0", da mesma forma que ao conectar através de um modem discado. A interface "ppp0" substitui temporariamente a interface "eth0" (ou eth1) onde o modem está conectado. É importante entender que neste ponto o sistema não utiliza mais a eth0 para enviar dados, mas sim a ppp0. As duas passam a ser vistas como dispositivos diferentes. Você pode ver a configuração atual das interfaces de rede rodando o comando "ifconfig". Esta configuração manual é necessária apenas ao usar um modem configurado em modo bridge. Com exceção de alguns modelos antigos, quase todos os modems ADSL podem ser configurados como roteadores, modo onde o próprio modem passa a fazer a autenticação e compartilhar a conexão. Ao configurar o modem como roteador (router), sua vida fica muito mais simples e você não precisa se dar ao trabalho de usar um micro com duas placas de rede para compartilhar a conexão, já que o modem já faz isso sozinho. Basta ligar todos os micros ao switch e configurar os PCs para utilizarem o endereço IP do modem como gateway padrão, ou simplesmente deixar que o modem os configure via DHCP. É possível inclusive encontrar modelos que incorporam também um switch de 4 ou até mesmo 8 portas e a função de ponto de acesso wireless, o que permite compartilhar a conexão diretamente, sem a necessidade de usar dispositivos separados. Em geral os modems ADSL fazem um bom trabalho, eles não oferecem opções mais avançadas, como, por exemplo, incluir um proxy transparente para fazer cache das páginas e arquivos acessados e, assim, melhorar a velocidade de acesso, mas são capazes de fazer o arroz com feijão, como bloquear tentativas de acesso vindas da Internet e redirecionar portas para micros da rede local. As vantagens de usar o modem configurado como roteador são: 1- Não é preciso usar o pppoeconf para se conectar, nem configurar o compartilhamento da conexão. A conexão é estabelecida pelo próprio modem, basta ligá-lo no hub e configurar os demais PCs para obterem a configuração da rede via DHCP. 2- O modem fica com as portas de entrada, de forma que qualquer tipo de ataque proveniente da Internet é bloqueado pelo próprio modem, antes de chegar nos micros da rede local. O modem serve então como uma camada adicional de proteção. As desvantagens são: 1- Como as portas de entrada ficam com o modem, é preciso configurar o redirecionamento de portas para que você possa usar qualquer servidor ou programa que precise de portas de entrada. Um exemplo clássico é o bittorrent, que precisa que pelo menos uma das portas entre a 6881 e a 6889 esteja aberta. 2- Ao contrário dos servidores Linux, os modems ADSL não costumam receber atualizações de segurança. Não é impossível que uma brecha de segurança no próprio modem permita que alguém de fora altere a configuração de redirecionamento de portas (por exemplo) e assim consiga ter acesso aos micros da sua rede local. Alguns modems permitem inclusive a instalação de programas adicionais. Do ponto de vista da segurança, um servidor Linux atualizado e bem configurado é mais seguro. No D-Link 500G dos exemplos anteriores, o modo Bridge é ativado ao configurar a opção "WAN Setting" com o valor "Bridge Mode" (em vez de PPPoE/PPPoA, como no screenshot anterior). Ao fazer isso, a interface deixa de mostrar os campos para o login de usuário e a senha, já que a autenticação passa a ser feita no PC: Atualmente, é muito raro encontrar alguém que prefira utilizar o modem ADSL em modo bridge, já que utilizar o modem como roteador é muito mais simples (já que você configura o modem uma vez e não precisa mais se preocupar) e ainda permite compartilhar a conexão através do próprio modem. As duas opções chave para que o modem trabalhe como roteador são manter a opção "Bridge" ou "Bridge Mode" desativada e manter a opção "NAT" ou "Route IP" ativada. Em alguns modems, a opção para ativar o uso do NAT fica escondida dentro da seção avançada (como no caso do D-Link 500G) e em outros fica junto com as opções relacionadas ao acesso, como neste D-Link 500T, que oferece um conjunto de opções um pouco diferentes das do 500G que vimos nos exemplos anteriores: A opção MRU, que aparece logo abaixo da MTU é uma opção incomum, que permite ajustar o tamanho máximo para os pacotes recebidos (a MTU indica o tamanho dos pacotes enviados). O valor máximo para ela é o mesmo que para o MTU, ou seja, 1492 bytes no PPPoE. Este modelo inclui também um firewall simples, que é configurado em uma seção separada da interface. Roteamento de portas O roteamento de portas é a solução para quando você deseja disponibilizar servidores ou permitir que um dos micros da rede seja acessado remotamente, apesar do modem ter sido configurado como roteador. Você pode criar uma regra de redirecionamento, fazendo com que requisições destinadas à porta 22 do servidor sejam redirecionadas à porta 22 do micro "192.168.1.134" da rede interna para permitir que ele seja acessado via SSH através da Internet, por exemplo. Dessa forma, quando um usuário remoto digita "ssh 200.234.21.23" (onde o 200.234.21.23 seria o endereço de Internet do servidor) ele na verdade acessaria o PC com o endereço 192.168.1.134 dentro da rede local. Criando uma regra para a porta 5900 você poderia abrir o acesso a um PC rodando o VNC e assim por diante. Outro uso comum é manter abertas as portas usadas pelo bittorrent ou outro programa P2P, de forma a não ter suas taxas de download reduzidas. No caso do Bittorrent, por exemplo, você encaminharia as portas TCP de 6881 a 6889 e no caso do Emule encaminharia a porta 4662 TCP e 4672 UDP. Note que em muitos casos a lentidão em programas P2P pode ser causada pelo uso de traffic shaping ou pelo bloqueio de portas de entrada pela própria operadora. Nesses casos, você pode usar um túnel ou algum sistema de encriptação, que embaralhe os dados, impedindo que as informações sejam rotuladas como tráfego P2P, ou simplesmente usar uma máquina remota para baixar os arquivos desejados e depois transferí-los para a sua máquina via http ou ftp. Uma opção é locar um servidor dedicado (os mais baratos custam a partir de US$ 60 por mês), o que permite que você tenha uma máquina completa, ligada diretamente aos links internacionais, que você pode acessar remotamente e usar para tarefas diversas. Dois exemplos de empresas que oferecem servidores dedicados a preços baixos são a http://www.layeredtech.com/e a http://www.theplanet.com/. Você pode ver detalhes sobre a configuração de servidores dedicados no meu livro Servidores Linux, guia prático. Vamos então aos exemplos de configuração. No Kayomi LP-AL2011P a configuração do forwarding de portas vai na seção "Virtual Server". Para cada regra de direcionamento, você deve indicar o endereço IP do PC (dentro da rede local) que receberá a porta, a porta de entrada que será redirecionada (public port) e a porta do PC local para a qual ela será redirecionada (private type). Normalmente, existe também a opção de indicar o protocolo (opção "Port Type" ou "Protocol"), que pode ser TCP, UDP ou ambos (both). Na maioria dos casos, os programas utilizam portas TCP, mas muitos jogos multiplayer e programas P2P utilizam portas UDP. Teremos uma explicação mais aprofundada das diferenças entre os dois protocolos no capítulo 4. Neste exemplo, o modem está configurado para utilizar o endereço 192.168.1.254 e estou redirecionando as portas 6881 até a 6889 (TCP) para o endereço "192.168.1.1" da rede local. Na verdade o bittorrent precisa de apenas uma destas portas, de forma que as 9 portas poderiam ser direcionadas para endereços diferentes: Você pode notar que a interface não oferece a opção de direcionar um intervalo de portas. Ou seja, para redirecionar 9 portas, preciso criar 9 regras diferentes. A porta do micro na rede local, para onde é feito o forwarding, não precisa necessariamente ser a mesma que a porta externa. Você pode fazer com que a porta 22 externa seja direcionada para a porta 2222 do micro 192.168.1.2, por exemplo. Aqui temos a configuração do encaminhamento de portas em um Linksys BEFSR41. Uma diferença em relação à configuração do Kayomi é que ele permite encaminhar intervalos de portas. Você pode encaminhar todas as portas entre a 6881 e a 6889 usando apenas uma regra, por exemplo: Os modems variam bastante em recursos nesse sentido. Nos modelos mais recentes você tem, tipicamente, a opção de redirecionar também uma faixa de portas (port range) e também de ativar uma DMZ (demilitarized zone), que permite encaminhar de uma vez todas as portas para um endereço especificado por você. Este PC passa então a receber todas as portas de entrada, como se estivesse diretamente conectado à web. Temos aqui um exemplo das duas opções aparecendo na seção "Advanced > Port Forwarding" do 500G: Concluindo, temos agora um exemplo de configuração do direcionamento de portas na interface em texto do velho Parks Prestige. Nele o port forwarding é configurado na opção "15. SUA Server Setup", onde você define a porta e o endereço da rede local para onde ela será redirecionada. Uma limitação deste modem é que ele permite configurar o redirecionamento de apenas 8 portas simultaneamente, provavelmente devido a limitações de memória: As operadoras quase sempre bloqueiam as portas 21 e 80 (ftp e http) para dificultar o uso de servidores por parte dos assinantes. Mas, você pode alterar a porta usada na configuração do servidor web ou FTP para outra porta que não esteja bloqueada, como a 8080 e a 2121, por exemplo, de forma a burlar esta limitação. Você pode ver uma lista de portas de entrada usadas por vários programas e jogos de forma a poder compor sua lista de redirecionamentos no: http://www.portforward.com/cports.htm. Como você pode imaginar, não é possível direcionar a mesma porta para dois PCs da rede local simultaneamente. É como se cada porta fosse um carro, ou outro objeto qualquer. Se você empresta o carro para alguém, você fica sem ele até que esta pessoa devolva e, enquanto ele está emprestado, você não pode emprestá-lo para uma segunda pessoa. Se você precisa disponibilizar o mesmo serviço, em vários PCs da rede local e precisa que todos fiquem acessíveis a partir da Internet simultaneamente, a única solução possível é configurar cada um para escutar em uma porta diferente e configurar o roteador para redirecionar cada porta ao PC correspondente. Imagine que você precisa rodar um servidor SSH em cada um dos 10 micros da rede local e precisa que todos fiquem acessíveis via Internet. Você poderia configurar o servidor SSH no primeiro PC para usar a porta 2222, o servidor SSH no segundo para usar a porta 2223 e assim por diante e criar a regras de redirecionamento no modem encaminhando cada porta ao endereço apropriado, como em: 2222 > 192.168.1.2 2223 > 192.168.1.3 2224 > 192.168.1.4 ... Os clientes passariam então a acessar especificando a porta em que desejam se conectar e, de acordo com a porta, cairiam em um PC específico da rede, como em: $ ssh -p 2233 endereço-do-servidor