http://www.zago.eti.br/modem/compartilhar-internet-cl9.txt tutorial: Como compartilhar internet atraves de uma conexão por modem discado, usando uma instgalação do CL9 perfil de instalação: "estação de trabalho" rodando em uma MOBO PCDHIPS, CPU K62-400 com 128MB de RAM. Autor : Antonio Francisco Zago contado : zagolinux@uol.com.br atualizado: 11.10.2003 licença : GNU FDL ou DSL à sua escolha. http://www.gnu.org/copyleft/ Linha de: **************** separa mensagens ou tópicos. Pra saber mais sobre como utilizar (copiar e colar) veja dica em: http://www.zago.eti.br/cp.txt Pra compartilhar conexão ADSL, veja em: http://www.zago.eti.br/adsl-compartilhar.txt mais informações sobre a instalação de pacotes veja neste site os FAQ. apt.txt rpm.txt synaptic.txt instalar-cl9.txt install.txt erros.txt Segurança e firewall veja o sub-diretório firewall em: http://www.zago.eti.br/firewall/ Proxy e controle de acesso à internet veja o sub-diretório squid em: http://www.zago.eti.br/squid/ ******************************************************** 1 - DEFINIÇÃO: Neste tutorial usarei uma instalação do Conectiva Linux 9, instalado com perfil "estaçao de trabalho" para fazer o compartilhamento de internet e também usar como estação de trabalho, em outras versões ou distribuições pode precisar de pequenos ajustes nos comandos para adaptar à sua instalação, o principio de configuração e funcionamento é comum a todas as distribuições. Para compartilhar internet em uma rede interna, precisamos de um micro com modem e placa de rede. O modem conectado à linha telefonica servirá para conectar à internet e a placa de rede conectada ao HUB para comunicação com os demais micros da rede. E as estações que vão usufruir deste serviço compartilhado. Configure e teste um serviço de cada vez, isto ajuda muito na solução de problemas, não passe para o tópico seguinte enquanto tiver problemas. Configure nesta ordem: Configure a placa de rede para comunicação com os demais micros da rede. Configure o modem para conectar a um provedor. compartilhe a conexão. configure a estação para navegar. crie seu firewall configure o proxy, opcional. Existem diversas maneiras de conectar à internet e também de compartilhar, este tutorial se destina a quem vai utilizar o micro também como estação de trabalho, tem pequenas distro que rodam em disquete e num 486 com 12MB de RAM que já vem configuradas para esta finalidade, procure no FAQ: distro.txt por distro que roda em disquete, freesco, coyte etc.. ******************************************************** 2 - PREPARAÇÃO Neste tutorial foram utilizadas 3 maquinas, sendo elas: servidor - micro com Linux CL9, modem e placa de rede que fará o compartilhamento da internet, com IP fixo 192.168.1.2, instalação do Linux com perfil "estação de trabalho", além de servidor (compartilhar a conexão) servirá também como estação de trabalho. estlinux - estação de trabalho rodando Linux cl9, com IP fixo 192.168.1.3, instalação do Linux com perfil "estação de trabalho" estwin98 - estação de trabalho rodando Windows 98 com IP fixo 192.168.1.4 Configure o micro para conectar à internet, veja no diretório modem em: http://www.zago.eti.br/modem/ Teste a cofiguração do modem e placa de rede, teste com ping, ele tem que alcançar um provedor da internet e uma maquina da rede interna, caso um deles falhe, revise a configuração até solucionar este problema. Passe para o tópico seguinte, COMPARTILHANDO, somente quando o comando ping alcançar provedor e as maquinas da rede interna. ******************************************************** CONFIGURANDO A PLACA DE REDE. Para configurar a placa de rede siga este tutorial com FAQ: http://www.zago.eti.br/placa_ne.txt para o servidor configure com IP 192.168.1.2 mascara 255.255.255.0, configure também as estações: estlinux = com IP fixo 192.168.1.3 mascara 255.255.255.0 estwin98 = com IP fixo 192.168.1.4 mascara 255.255.255.0 Use o comando ping para testar a configuração e conexão entre as maquinas, Não passe para o topico seguinte enquanto tiver problemas com o ping. ******************************************************** CONFIGURANDO O MODEM. Para configurar o modem siga o tutorial próprio para o teu modem, voce vai encontra-lo neste diretório: http://www.zago.eti.br/modem/ Conecte à intenet e teste a navegação, a configuração do modem e placa de rede estarão corretas quando conseguir simultanemente, navegar e pingar as maquinas da rede interna, NÃO passe para o tópico COMPARTILHANDO A INTERNET enquanto tiver problemas nesta configuração. ******************************************************** RESUMO (Dica faz tudo, execute uma única vez) Servidor com modem e placa de rede instalados, os comandos abaixo, prontos pro usuário root copiar e colar na linha de comando. Cria e executa script que compartilha a conexão, firewall fechado, corrige a rota pra ppp0, reinicia o serviço de rede e etc.. veja comentarios no tópico MODELO DE FIREWALL COM IPTABLES em: http://www.zago.eti.br/scripts/scripts-modelos.txt (copie e cole de uma só vez o que está entre ### inicio ### fim) ### inicio rm -rf /etc/rc.d/iptfirewall touch /etc/rc.d/iptfirewall chmod +rwx /etc/rc.d/iptfirewall echo "/etc/rc.d/iptfirewall" >> /etc/rc.d/rc.local gambi='#!/bin/sh' echo $gambi >> /etc/rc.d/iptfirewall echo "# Limpando.... " >> /etc/rc.d/iptfirewall echo "/usr/sbin/iptables -t nat -F PREROUTING" >> /etc/rc.d/iptfirewall echo "/usr/sbin/iptables -t nat -F POSTROUTING" >> /etc/rc.d/iptfirewall echo "/usr/sbin/iptables -F INPUT" >> /etc/rc.d/iptfirewall echo "/usr/sbin/iptables -F FORWARD" >> /etc/rc.d/iptfirewall echo "# Politica de ENTRADA como NEGAR..." >> /etc/rc.d/iptfirewall echo "/usr/sbin/iptables -P INPUT DROP" >> /etc/rc.d/iptfirewall echo "# Aceite conexoes estabelecidas" >> /etc/rc.d/iptfirewall echo "/usr/sbin/iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT" >> /etc/rc.d/iptfirewall echo "/usr/sbin/iptables -A INPUT -p UDP -m state --state ESTABLISHED,RELATED -j ACCEPT" >> /etc/rc.d/iptfirewall echo "# Carrega Modulos..." >> /etc/rc.d/iptfirewall echo "/sbin/modprobe iptable_nat" >> /etc/rc.d/iptfirewall echo "iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE" >> /etc/rc.d/iptfirewall echo "# Habilita forward - repasse para a internet" >> /etc/rc.d/iptfirewall echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/rc.d/iptfirewall /etc/rc.d/iptfirewall cp /etc/sysconfig/network /etc/sysconfig/networkcopia sed 's%GATEWAY%#GATEWAY%' /etc/sysconfig/networkcopia > /etc/sysconfig/network service network restart route del default route add default ppp0 ### fim Para modificar a seu modo, use um editor de texto simples, mesmo em ambiente gráfico como o kedit, basta editar, salvar e reiniciar o script, ele está em: /etc/rc.d/iptfirewall DESATIVAR FIREWALL E COMPARTILHAMENTO Caso tenha problemas com o firewall, basta desativa-lo, edite o arquivo /etc/rc.d/iptfirewall comente ou apague a linha "/etc/rc.d/iptfirewall", no proximo boot o micro vem sem firewall e sem compartilhamento de internet. ******************************************************** SOLUCIONANDO PROBLEMAS COM MODEM. ROTA. Modem conecta mas não navega? Quando tem na mesma maquina uma placa de rede e um modem é comum a rota default (rota padrão) apontar para eth0 (placa de rede), nestas condições até conseguirá conexão mas não receberá nada da internet, não navega. Para conexão discada a rota padrão (default) tem que ser direcionada para ppp0, para corrigi-la, como root, na linha de comando, digite: route del default route add default ppp0 Resolveu o problema? então era a rota errada. Isto acontece porque a maquina com uma placa de rede tem a configuração /etc/sysconfig/network assim: NETWORKING=yes # FORWARD_IPV4=no # not used anymore. see /etc/sysctl.conf HOSTNAME="modem.linux.com" GATEWAY=192.168.1.254 GATEWAYDEV=eth0 Para solucionar o problema comente as duas ultimas linhas para ficar assim: NETWORKING=yes # FORWARD_IPV4=no # not used anymore. see /etc/sysctl.conf HOSTNAME="modem.linux.com" # GATEWAY=192.168.1.254 # GATEWAYDEV=eth0 No CL8 e CL9 para reiniciar o serviço digite: # cds # ./network restart e na configuração do Kpp habilite para definir rota para este IP Após esta alteração não precisa mais de remover e adcionar rota, mas vai funcionar somente após reiniciar o serviço de rede ou após o próximo boot do Linux quando a conexão estará pronta para usar a internet e compartilhar a conexão com outras maquinas. A alteração na placa de rede não compromete o uso da rede interna que continuará a funcionar normalmente. SOBRE DNS No Kpp tem opção de obter o DNS na conexão, acho que todos os provedores fornecem, por exemplo os que eu uso IG e UOL fornecem. Quando o teu provedor ou a maneira de configurar a conexão for necessario configurar o DNS, use um editor e coloque diretamente no arquivo /etc/resolv.conf veja este exemplo de resolv.conf para conexão com o IG, #cat /etc/resolv.conf search ig.com.br nameserver 200.225.157.104 nameserver 200.225.157.105 ou executando o o linuxconf com o comando linuxconf va ate redes> dns especificacao de servidor de nomes> informe o ip do servidor dns, primario e secundario de seu provedor, voce deve obter esses numeros com seu provedor, informe tambem o dominio padrão de seu provedor exemplo: ip do servidor de nomes 1: 200.204.0.10 ip do servidor de nomes 2 (opc): 200.204.0.138 procurar dominio 1 (opc): telefonica.com.br Lembre que fica mais prático configurar o Kpp para obter estes numeros de DNS, somente quando isto falhar ou seu provedor exigir que você deve informar os DNS. Fique atento às configurações de DNS, erros de DNS pode impedir a navegação ou até tornar a rede muito lenta. ******************************************************** AUTOMATIZANDO A CONEXÃO Com o modem configurado, conectando e navegando, voce pode automatizar também a conexão à internet, existem diversas maneiras de conexão, pode optar por faze-la manualmente ou automatizar este processo. "discagem sob demanda" permite que o servidor mantenha a conexão ativa como o provedor somente quando alguém esteja utilizando a internet. Em resumo funciona mais ou menos assim: quando uma estação da rede tentar acessar a internet, seja browser ou outro serviço qualquer, o servidor faz a conexão automaticamente e as estações passam a navegar normalmente, tudo de forma transparente para os usuários, após um periodo (configuravel) de inatividade (sem tráfego) no modem a conexão é encerrada automaticamente. Veja mais no modem, consulte os tutoriais sobre: kpp.txt minicom.txt ******************************************************** COMPARTILHANDO A INTERNET. Para compartilhar a internet, execute no servidor as 3 linhas abaixo: modprobe iptable_nat iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward Estas linhas são o minimo necessário, podem ser executadas na linha de comando, incluidas no script de inicialização para serem executadas junto com o boot ou à parte, dentro de um script que poderá ser executado manualmente ou ser chamada pelo script de inicialização, escolha uma das opções e somente uma, lembre que somente o usuário root tem poderes para fazer isto. OPÇÃO 1 Faça uma única vez, dica de como fazer "copiar e colar" no help.txt. Em um terminal (shell), como root, copie e cole as 3 linhas abaixo: echo "modprobe iptable_nat" >> /etc/rc.d/rc.local echo "iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE" >> /etc/rc.d/rc.local echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/rc.d/rc.local Achou fácil!!!!, é assim mesmo, não precisou de editor de texto nem digitar longas linhas ou comandos complicados para acrescentar as linhas, basta copiar e colar pro prompt da linha de comando e dar enter que automaticamente insere as linhas no final do arquivo que é o script de inicialiação. Isto vai funcionar somente a partir do proximo boot, o comando abaixo serve para conferir se as linhas foram acrescentadas: cat /etc/rc.d/rc.local OPÇÃO 2 Executa-las na linha de comando toda vez que fizer boot ou for usar o compartilhameto. OPÇÃO 3 Coloca-las em um script, torna-lo executavel e executa-lo manualmente ou incluir no script de inicialização uma chamada para ele ser executado junto com o boot. OPÇÃO 4 Com um editor de textos de sua preferencia, acrescente no final de /etc/rc.d/rc.local Estas 3 linhas são o suficiente para compartilhar a internet para toda a rede, não tem segurança nem firewall nas regras acima, portanto use somente para testar o compartilhamento, depois que funcionar, monte o seu firewall, veja modelos e FAQ em: http://www.zago.eti.br/firewall/ ******************************************************** A SEGUIR CONFIGURANDO UM CLIENTE LINUX DO COMPARTILHAMENTO LINUX A configuração das estações independe do tipo de conexão do servidor, tanto faz ser ADSL, CABLE MODEM, ou conexão discada, as configurações a seguir se aplica a estações e vale para qualquer tipo de conexão do servidor. Lado das estações Linux da rede interna, a seguir 3 alternativas pra configurar a estação, escolha a que achar mais fácil e ignore as demais. (executar estas alterações somente na estação) PRIMEIRA ALTERNATIVA para CL8 e CL9 Configurando na instalção. instale seu CL e no final da instalação, na mesma tela que solicita a identificação da maquina tem a configuração de rede que já vem por default marcada a opção DHCPD. Selecione configurar a rede manualmente e altere os campos para: Endereço IP: digite o IP da maquina local, por exemplo: 192.168.1.3 Mascara: digite a mascara padrão por exemplo 255.255.255.0 ou a da tua rede. Roteador: digite o IP do servidor Linux que compartilha a conexão, por exemplo 192.168.1.2 Servidor de nomes: informe aqui o DNS do seu provedor, por exempo para o provedor Terra é 200.204.0.138 Termine a instalação e no proximo boot seu Linux já vem navegando. SEGUNDA ALTERNATIVA para CL8 e CL9 configurando as estações com netconfig execute #/usr/sbin/./netconfig deseja configurar a rede? selecione sim e enter e o conteúdo da proxima tela será semelhante a: Configuração TCP/IP Por favor digite a configuração IP para esta máquina. Cada item deverá ser digitado como um endereço IP em notação decimal com pontos (por exemplo: 192.168.1.100). [ ] Usar IP dinâmico (BOOTP/DHCP) Endereço IP: ________________ Máscara: ________________ Roteador Padrão (IP): ________________ Servidor DNS Primário: ________________ OK Anterior PREENCHENDO E EXPLICANDO: [ ] Usar IP dinâmico (BOOTP/DHCP) deixe como está (sem selecionar) Endereço IP: ________________ preencha com o IP da estação ex:. 192.168.1.3 Máscara: ________________ preencha com 255.255.255.0 Roteador Padrão (IP): ________________ preenchacom o IP do servidor linux ex.: 192.168.1.2 este IP é o que foi colocado na eth0 do servidor para comunicação com a rede interna. Servidor DNS Primário: ________________ preencha como o DNS de seu provedor ex.: 200.204.0.10 que é o DNS da telefonica. OK e enter #cds #./network restart #ping www.uol.com.br tendo resposta do provevedor a estação já está navegando e não precisa fazer mais nada. TERCEIRA ALTERNATIVA para CL8 e CL9 configurando as estações na unha ou melhor com editor Edite o arquivo /etc/sysconfig/network altere a linha: GATEWAY=192.168.1.254 para GATEWAY="192.168.1.2" altere a linha: GATEWAYDEV=eth0 para GATEWAYDEV="eth0" O IP informado em (GATEWAY="192.168.1.2") é o IP usando na eth0 do servidor. edite o arquivo /etc/resolv.conf alterando a linha correspondente e se não existir insira a alinha. search seu.provedor.com.br nameserver 000.000.000.000 altere seu.provedor.com.br pelo nome correto, para o terra uso megavia Onde 000.000.000.000 é o DNS do seu provedor, para o terra uso 200.204.0.10 o meu resolv.conf fica assim: search megavia nameserver 200.204.0.10 Este é o meu resolv.conf que uso nas maquinas clientes de um compartilhamento discado quando uso a conexão pelo uol e compartilho no CL8: search www.uol.com.br nameserver 200.246.5.2 nameserver 200.246.5.87 Reinicialize o serviço de rede: #cds #./network restart #ping www.uol.com.br Obtendo resposta do provedor, é só alegria e configuração terminada, falhando o ping ainda tem mais trabalho, tem que rever tudo que foi feito até descobrir o que está errado, analize os logs e configurações de: - ifconfig eth0 se subiu - /etc/resolv.conf -> esta com o dns do provedor - /etc/sysconfig/network -> gateway e gatewaydev foi informado corretamente - iptables foi configurado e iniciado, forward habilitado, veja os logs - o modem está conectado - tente usar um telefone nesta linha para ver se tem linha e funciona normalmente - etc, etc, e etc... ******************************************************** CONFIGURANDO UM CLIENTE WINDOWS DO COMPARTILHAMENTO LINUX. Considerando um micro com windows 98 e a placa de rede já está devidamente instalada, este micro conectado ao mesmo HUB que está a eth0 do servidor de internet. Vamos em propriedades do TCP/IP da placa de rede, selecione "especificar um endereço IP, preencha com o IP resevado para esta maquina, no nosso exemplo estamos usando o IP 192.168.1.4 e mascara 255.255.255.0 na aba configuração DNS, selecione ativar DNS e preencha com qualquer nome o campos host e dominio exemplo host zago e dominio zago.com, no campo seguinte "ordem pesquisa servidor DNS, deve ser preenchido com o DNS do provedor e dar um click em adicionar, na aba gateway adicionar o IP 192.168.1.2 veja que este IP não é qualquer um, tem que ser o mesmo que foi colocado na eth0 do servidor, click em adicionar e ok até fechar as janelas e reiniciar o windows, após a reinicialização no prompt do windows digite ping www.uol.com.br se tiver resposta do uol a sua rede está pronta para navegar e todos os serviços da internet. Quando pinga para fora mas o Internet Explorer ou Outloock falha, procure no menu do IE por "opções de internet" na aba conexão pode estar configurado para usar modem, altere para acessar a internet por uma rede LAN e dependendo da versão para detectar um servidor proxi automaticamente, com Squid precisa informar o IP do proxy, sem Squid não marque nada em IP do servidor proxi. Nesta configuração não tem nenhuma restrição, passa tudo, nevegador, e-amil, mp3, icq, bancos etc.. e etc... Pense em segurança, firewall, acesse: http://www.zago.eti.br/firewall/ Inicie pelo FAQ Iptables.txt Controle os usuários que acessa a internet, barrrando sites ou serviços, acesse: http://www.zago.eti.br/squid/ inicie pelo FAQ squid.txt ********************************************************