Configurando uma rede local com acesso à Internet com Linux

Uma das principais características do sistema UNIX é o seu completo suporte à rede e com o Linux isto não seria diferente. O RedHat Linux possui uma interface fácil, no ambiente X Window, para configurar uma rede tanto local quanto remota. 

Este tutorial aborda os seguintes tópicos (pelo motivo de um depender do outro): 

Neste tutorial será abordada também a seguinte situação: 

O seu modem está em uma das quatro seriais padronizadas (cua0 à cua3), com o endereço e a interrupção padrão (no DOS seria, por exemplo, COM4 IRQ3); a sua placa de rede possui barramento PCI ou ISA sendo compatível com NE2000; seu provedor utiliza a autenticação PAP e o protocolo PPP; a versão do kernel é a 2.0.36. Assim a configuração ocorrerá de forma incrívelmente simples. 

A rede local terá uma máquina servidora conectada à Internet, fornecendo às outras máquinas da rede, que são as máquinas cliente, o acesso a Internet também. O protocolo para que isso funcione é o TCP/IP. 

A rede foi montada com base nos endereços da Classe C (RFC 1597), usando os endereços IP 192.168.x.x. Este endereço é designado especialmente para Intranets. Servidor => 192.168.1.1 Clientes => 192.168.1.2, 192.168.1.3 etc. Network => 192.168.1.0 Netmask => 255.255.255.0 Broadcast => 192.168.1.255 

O sistema operacional usado no servidor é o RedHat Linux 5.2. 

Nos clientes pode-se usar o RedHat Linux ou o Windows 95. 

Para que a rede funcione é preciso que o Kernel do Linux tenha suporte a certos recursos, para funcionar o IP Masquerade, a rede TCP/IP e os drivers da placa de rede. 

Na instalação inicial do RedHat Linux 5.2, este suporte já existe, mas se você compilou um novo kernel para seu sistema, pode ser necessário recompilá-lo para reabilitar os recursos necessários. 

Para ativar os suportes no kernel entre no menu de configurações e ative os seguintes itens: 

De um "make menuconfig" e habilite essas opções: Code maturity level options  ---> [*] Prompt for development and/or incomplete code/drivers Loadable module support  ---> [*] Enable loadable module support [*] Set version information on all symbols for modules [*] Kernel daemon support (e.g. autoload of modules) General setup  ---> [*] Networking support Networking options  ---> [*] Network firewalls [*] Network aliasing [*] TCP/IP networking [*] IP: forwarding/gatewaying [*] IP: multicasting  (recomendado) [*] IP: firewalling [*] IP: masquerading [*] IP: ipautofw masq support  (recomendado) [*] IP: ICMP masquerading  (recomendado) [*] IP: Always defragment  (recomendado) Network device support  ---> <M> Dummy net driver support  (recomendado) [*] Network device support <M> PPP (point-to-point) support [*] Ethernet (10 or 100Mbit) [*] PCI Ethernet adapters  (se sua placa for PCI) <M> PCI NE2000 support  (se sua placa for PCI) [*] Other ISA cards  (se sua placa for ISA) <M> NE2000/NE1000 ISA support  (se sua placa for ISA) Character devices ---> <*> Standard/generic serial support Salve as configurações e recompile seu kernel. Depois você deve compilar e instalar os módulos. Consulte o tópico "Atualizando e ou compilando o kernel" para uma melhor explicação. 

Pelo cliente é possível navegar na Web, receber e enviar e-mails, dar Telnet, FTP, Ping, usar o ICQ e o RealPlayer. 

1) Configurando o modem e a placa de rede no RedHat Linux: 

1.1) Configurando o Modem: 

Nos sistemas Linux, as portas seriais são denominadas de forma diferente em relação aos sistemas DOS/Windows. 

Enquanto que no DOS elas são tratadas como COM1 à COM4, no Linux as portas seriais são tratadas como dispositivos cua0 à cua3 respectivamente (/dev/cua0 à /dev/cua3). Através do "control-panel" no X-Window entre em "Modem Configuration". 

Selecione a porta serial na qual seu modem está conectado e clique em "OK". 

Será criado o link "/dev/modem" para o seu modem device. 

1.2) Configurando a placa de rede: 

Caso a sua placa seja ISA digite no console "modprobe ne io=0x300 irq=10" (substitua 0x300 e 10 pelos valores de I/O e IRQ corretos da sua placa de rede!). 

Então edite o arquivo "/etc/conf.modules" adicionando: alias eth0 ne options ne io=0x300 irq=10 

Caso a sua placa seja PCI digite no console "modprobe ne2k-pci" e veja se a sua placa de rede foi detectada corretamente. Então edite o arquivo "/etc/conf.modules" adicionando: alias eth0 ne2k0pci 

Se você tiver problemas com o módulo ne2k-pci, use então o módulo ne. 

Para isso digite no console "modprobe ne" e anote os valores de I/O e IRQ da sua placa de rede. Então edite o arquivo "/etc/conf.modules" adicionando: alias eth0 ne options ne io=0x6000 irq=10  (substitua pelos valores corretos!) 

Se o comando modprobe não funcionar adequadamente execute o comando "depmod -a" e tente novamente. 

2) Configurando o acesso à Internet no servidor com RedHat Linux: Através do "control-panel" no X Window entre em "Network Configuration". 

2.1)Na seção Interfaces: Clique em "Add" e selecione "PPP", clique em "OK". 

Então coloque: Phone Number: numero_do_provedor 

Ative "Use PAP authentication" (depende do provedor!) PPP login name: seu_login_do_provedor PPP password: seu_password_do_provedor 

Clique em "Customize", será aberta a janela "Edit PPP Interface". 

2.1.1)Na seção Hardware: Deixe ativado apenas "Use hardware flow control and modem lines" e "Abort connection on well-known errors". A opção "Escape control characters" deve ficar desativada. 

Opcionalmente poderá deixar ativado também "Allow any user to (de)activate interface". 

Em "Line speed:" coloque a velocidade de seu modem. 

Para um modem de 33.6 poderá ser colocado 115200. 

Em "Modem Port:" coloque a porta serial no qual seu modem está conectado. 

Se o modem já foi configurado no "control-panel" coloque "/dev/modem". Em "PPP Options:" deixe em branco. 

2.1.2) Na seção Communication: 

Modem Init String: ATZ Modem Dial Command: ATDT ou ATDP Phone Number: número_do_telefone_do_provedor 

Não selecione "Debug connection". E o resto fica em branco. 

2.1.3) Na seção Networking: Não deixe selecionada a opção "Activate interface at boot time". 

Selecione apenas "Set default route when making connection" e "Restart PPP when connection fails". 

Deixe os outros campos em branco exceto o campo "MRU (296-1500):" em que pode ser colocado o valor 1500. 

2.1.4) Na seção PAP coloque: Send username: seu_username_do_provedor O resto deixe como está. Agora na janela "Edit PPP Interface" clique em "Done" e depois em "Save" para salvar as configurações. 

2.2) Na seção Names coloque: Hostname: nomedoservidor.dominio Domain: dominio.do.provedor Search for hostnames in additional domains: DEIXE EM BRANCO Nameservers: DNS.do.provedor (quantos existir e um por linha!) Clique em "Save" para salvar as configurações. 

2.3) Efetuando a conexão: Para conectar ao provedor vá através do "control-panel" no X Window em "Network Configurator", e na seção "Interfaces" selecione "ppp0" e clique em "Activate". 

Para desconectar clique em "Deactivate". 

Os usuários deverão usar o programa "usernet" (dentro do X) para iniciar a conexão. Para conectar pelo console vá para o diretório "/etc/sysconfig/network-scripts" e digite: # ./ifup-ppp ifcfg-ppp0 &    (para conectar) # ./ifdown-ppp ifcfg-ppp0 &    (para desconectar) 

E os usuários irão utilizar os seguintes comandos no console: # /usr/sbin/usernetctl ifcfg-ppp0 up    (para conectar) # /usr/sbin/usernetctl ifcfg-ppp0 down    (para desconectar) 

Se você quiser saber o seu endereço IP na Internet use um dos seguintes comandos: # tail /var/log/messages ou # ifconfig 

3) Configurando a rede local: 

3.1) Configurando o servidor com RedHat Linux: Através do "control-panel" no X Window entre em "Network Configuration". 

3.1.1) Na seção Names coloque: Hostname: nomedoservidor.dominio Domain: dominio.do.provedor Search for hostnames in additional domains: DEIXE EM BRANCO Nameservers: DNS.do.provedor (quantos existir e um por linha!) 

3.1.2) Na seção Hosts coloque: Clique em "Add" para adicionar cada linha abaixo. IP            Name                     Nicknames 127.0.0.1     localhost 192.168.1.1   nomedoservidor.dominio   nomedoservidor 192.168.1.2   nomedocliente1.dominio   nomedocliente1 192.168.1.3   nomedocliente2.dominio   nomedocliente2 ... 

3.1.3) Na seção Interfaces coloque: Caso não tenha a interface "eth0" clique em "Add" e escolha "Ethernet". 

Se já tiver a interface "eth0" selecione-a e clique em "Edit", então coloque: IP: 192.168.1.1 Netmask: 255.255.255.0 Network: 192.168.1.0 Broadcast: 192.168.1.255 Ative o "Activate Interface at boot time". (recomendado) Ative o "Allow any user to (de)activate interface". (opcional) 

Em "Interface configuration protocol" coloque "none".

Clique em "Done" e "Save". 

3.1.4) Na seção Routing: Deixe tudo vazio! Clique em "Save" e "Quit". Fim! 

Se não quiser reiniciar a máquina para ativar a rede, vá na seção "Interfaces" selecione "eth0" e clique em "Activate". 

3.1.5) Confirme a configuração nos seguintes arquivos: => /etc/hosts 127.0.0.1      localhost 192.168.1.1    nomedoservidor.dominio    nomedoservidor 192.168.1.2    nomedocliente1.dominio    nomedocliente1 192.168.1.3    nomedocliente2.dominio    nomedocliente2 => /etc/resolv.conf search dominio.do.provedor nameserver DNS.do.provedor nameserver DNS.do.provedor   (caso tenha mais de um!) => /etc/HOSTNAME nomedoservidor.dominio => /etc/sysconfig/network NETWORKING=yes FORWARD_IPV4=no HOSTNAME=nomedoservidor.dominio GATEWAYDEV= GATEWAY= => /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 USERCTL=yes ONBOOT=yes BOOTPROTO=none BROADCAST=192.168.1.255 NETWORK=192.168.1.0 NETMASK=255.255.255.0 IPADDR=192.168.1.1 => /etc/host.conf order hosts,bind multi on Tudo confirmado!!! 

3.2) Configurando o cliente com RedHat Linux: Através do "control-panel" no X Window entre em "Network Configuration". 

3.2.1) Na seção Names coloque: Hostname: nomedocliente.dominio Domain: dominio.do.provedor Search for hostnames in additional domains: 

DEIXE EM BRANCO Nameservers: DNS.do.provedor (quantos existir e um por linha!) 

3.2.2) Na seção Hosts coloque: Clique em "Add" para adicionar cada linha abaixo. IP             Name                      Nicknames 127.0.0.1      localhost                 localhost.localdomain 192.168.1.1    nomedoservidor.dominio    nomedoservidor 192.168.1.2    nomedocliente1.dominio    nomedocliente1 192.168.1.3    nomedocliente2.dominio    nomedocliente2 ... 

3.2.3) Na seção Interfaces coloque: Caso não tenha a interface "eth0" clique em "Add" e escolha "Ethernet". 

Se já tiver a interface "eth0" selecione-a e clique em "Edit", então coloque: IP: 192.168.1.2 (ou 192.168.1.3 etc.) Netmask: 255.255.255.0 Network: 192.168.1.0 Broadcast: 192.168.1.255 

Ative o "Activate Interface at boot time". (recomendado) 

Ative o "Allow any user to (de)activate interface". (opcional) 

Em "Interface configuration protocol" coloque "none". 

3.2.4) Na seção Routing: 

Nao selecione "Network Packet Forwarding (IPv4)". Default Gateway: 192.168.1.1 Default Gateway Device: eth0 Aperte "Add" e coloque: Device: eth0 Network: 192.168.1.0 Netmask: 255.255.255.0 Gateway: 192.168.1.1 Clique em "Done". Clique em "Save" e "Quit". Fim! 

Se não quiser reiniciar a máquina para ativar a rede, vá na seção "Interfaces" selecione "eth0" e clique em "Activate". 

3.2.5) Confirme a configuração nos seguintes arquivos: => /etc/hosts 127.0.0.1      localhost                  localhost.localdomain 192.168.1.1    nomedoservidor.dominio     nomedoservidor 192.168.1.2    nomedocliente1.dominio     nomedocliente1 192.168.1.3    nomedocliente2.dominio     nomedocliente2 => /etc/resolv.conf search dominio.do.provedor nameserver DNS.do.provedor nameserver DNS.do.provedor   (caso tenha mais de um!) => /etc/HOSTNAME nomedocliente.dominio => /etc/sysconfig/network NETWORKING=yes FORWARD_IPV4=no HOSTNAME=nomedocliente.dominio GATEWAYDEV=eth0 GATEWAY=192.168.1.1 => /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 USERCTL=yes ONBOOT=yes BOOTPROTO=none BROADCAST=192.168.1.255 NETWORK=192.168.1.0 NETMASK=255.255.255.0 IPADDR=192.168.1.2 (ou 192.168.1.3 etc.) => /etc/host.conf order hosts,bind multi on Tudo confirmado!!! 

3.3) Configurando o cliente com Windows 95: (Não entrarei em detalhes aqui!) 

Em "Iniciar/Configurações/Painel de Controle" entre em "Rede". 

Adicione a sua placa de rede e o protocolo TCP/IP. 

Selecione "TCP/IP -> Placaderede" e clique no botão "Propriedades". 

Na pasta "Endereço IP" selecione "Especificar um endereço IP:" e coloque: Endereço IP: 192.168.1.2 (ou 192.168.1.3 etc.) Máscara da sub-rede: 255.255.255.0 

Na pasta "Gateway" adicione "192.168.1.1". 

Na pasta "Configuração DNS" selecione "Ativar DNS". 

E coloque: Host: nomedocliente Domínio: dominiodocliente 

Em "Ordem de pesquisa do servidor DNS" adicione o(s) DNS de seu provedor. 

Em "Ordem de pesquisa sufixo do domínio" adicione o domínio do seu provedor. 

As outras pastas deixe como estão. Clique em "OK" em todas as janelas e reinicialize o sistema. 

Você pode opcionalmente criar o arquivo "HOSTS" no diretório do Windows com o seguinte conteúdo: 127.0.0.1       localhost 192.168.1.1     nomedoservidor.dominio 192.168.1.2     nomedocliente1.dominio 192.168.1.3     nomedocliente2.dominio 

Veja o exemplo chamado HOSTS.SAM no diretório do Windows. 

Teste a sua conexão com o servidor da sua rede digitanto em "Iniciar/Executar..." o comando: ping 192.168.1.1 

4) Ativando o IP Masquerade no servidor com RedHat Linux: 

O IP Masquerade é o que faz todas as máquinas cliente acessarem a Internet quando o servidor estiver conectado. Primeiro verifique se o "Ipfwadm" está instalado em seu sistema. 

Caso não esteja instale-o a partir do seu disco do RedHat. Ele está no diretório "/RedHat/RPMS". 

Agora você deverá executar os comandos abaixo, um de cada vez, no console: 

echo "1" > /proc/sys/net/ipv4/ip_forward /sbin/depmod -a /sbin/modprobe ip_masq_ftp.o /sbin/modprobe ip_masq_irc.o /sbin/modprobe ip_masq_raudio.o /sbin/modprobe ip_masq_cuseeme.o /sbin/ipfwadm -F -f /sbin/ipfwadm -F -p deny /sbin/ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0 

Esta é uma configuração bem genérica. 

Se você quiser bloquear alguns serviços ou algumas portas consulte a documentação sugerida abaixo. 

Adicione estas linhas no final do arquivo "/etc/rc.d/rc.local" para que o IP Masquerade seja ativado durante a inicialização do sistema. 

Você poderá, ao invés de adicionar no "/etc/rc.d/rc.local", criar um script com estas linhas para ativar o IP Masquerade quando for necessário. 

Para isto crie um arquivo com estas linhas colocando no inicio a seguinte linha: #!/bin/sh 

Depois use o seguinte comando para tornar o arquivo executável: # chmod +x arquivo Bastando então executar este arquivo para que seja ativado o IP Masquerade. 

Se depois você quiser desativar o IP Masquerade, execute os comandos abaixo: /sbin/ipfwadm -F -d m -S 192.168.1.0/24 -D 0.0.0.0/0 /sbin/rmmod ip_masq_ftp /sbin/rmmod ip_masq_irc /sbin/rmmod ip_masq_raudio /sbin/rmmod ip_masq_cuseeme echo "0" > /proc/sys/net/ipv4/ip_forward 

5) Bibliografia: