EMotaWeb - Linux - NAT
Data: 12/04/2005


1. Apresentação
O NAT é uma técnica usada para fazer uma rede acessar outra na qual não possue rota para ela, mas, ela possua uma máquina com acesso a essa outra rede.
Em outras palavras: técnica usada para uma rede local acessar a internet, contendo apenas 1 endereço IP válido.

1.1 Exemplo:
Rede local: 192.168.0.1 ao 192.168.0.254 - Máscara: 255.255.255.0
Endereço de Internet: 200.xxx.yyy.120 - Gateway: 200.xxx.yyy.1

1.2 Esquema do Servidor de Internet
eth0: 200.xxx.yyy.120
eth1: 192.168.0.1
Gateway: 200.xxx.yyy.1


2. Passagem de Pacotes / Firewall
Inicialmente, para o Linux habilitar a passagem de arquivos entre as interface de rede, é preciso habilitar a opção de IP-FORWARD.

Para isso, digite no console:
# echo "1" > /proc/sys/net/ipv4/ip_forward

Com isso, essa máquina já está pronta transmitir os pacotes de uma interface para outro.

2.1 Regra de Firewall
Agora, como a internet desconhece a existem de sua rede local, você precisa fazer com que suas estações internas acessem a internet como se fosse a máquina com acesso normal.

Para isso, digite:
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE


3. Explicações básicas
Aqui, vejamos alguns comentários a respeito da linha de comando usada no iptables.

iptables = programa para controlar as requisições TCP/IP (Firewall)
-t nat = Informa que iremos colocar uma regra na Tabela de NAT (-t = tabela)
-A POSTROUTING = Adicionar uma regra no Pós-Roteamento (após passar entra as interfaces)
-s 192.168.0.0/24 = Endereço de origem (Source) das requisições
-o eth0 = Interface de Saída (-o = saída/OUT)
-j MASQUERADE = tarefa a executar (job), que no caso é o MASCARAMENTO (MASQUERADE)


4. Configurando as estações
Não importa qual é o sistema operacional, a configuração é padrão para todos.

IP da estação, precisa fazer parta de rede local
Então, precisa estar entre: 192.168.0.2 até o 192.168.0.254
O IP 192.168.0.1, não pode ser usado, pois já está em uso pelo servido

Default Gateway / Gateway Padrão / Rota Padrão: 192.168.0.1
Nesta opção, é necessário colocar o IP da rede local, referente ao Linux.

DNS / Servidores de Nome / Name Server
Ser provedor de acesso precisa lhe fornecer tal informação, mas existe alguns públicos.
Um exemplo funcional, seria usar: 200.190.77.11
Pronto, com isso, sua rede local já pode acessar a internet, através de uma máquina Linux.
Como esse tutorial é estremamento simples, recomendo buscar mais importações a respeito.
Informações para controlar e/ou melhor aproveitar sua conexão com a internet.


5. Exemplo de Mini-Firewall
O Firewall, é usado para dar maior proteção para sua rede.
Mas, importante lembrar que ele sozinho não garante total segurança.
Para ter uma segurança na rede, é preciso ter controle desde os usuários internos até mesmo a utilização feita da internet.

Então, vamos a um exemplo simples de firewall:
Para isso, é necessário ter o pacote do nmap instalado em seu Linux (Servidor).

5.1 Editando Script
Edite um arquivo, no caso chamado: firewall.sh

- - - - - Copiar - - - - -

#!/bin/bash
## Variaveis de controle
fw=`which iptables`
inet=`route -n | awk '/UG/ {print $8}'`
ip=`ifconfig $inet | awk '/inet/ { print $2}' | awk -F ":" '{ print $2 }'`

## Executando PortScan no Servidor
port_tcp=`nmap -n $ip -sT | awk -F "/" '/open/ { print $1 }'`
port_udp=`nmap -n $ip -sU | awk -F "/" '/open/ { print $1 }'`

## Limpando regras anteriores
$fw -F
$fw -t nat -F

## Gerando regras de bloqueio
for i in $port_tcp; do $fw -A INPUT -p tcp -i $inet --dport $i -j DROP; done
for i in $port_udp; do $fw -A INPUT -p udp -i $inet --dport $i -j DROP; done

## Habilitando o compartilhamento de Internet
$fw -t nat -A POSTROUTING -o $inet -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward

echo "AutoFirewall - Firewall Habilitado !
# FIM - do arquivo

- - - - - Colar - - - - -

Com isso, o script irá verificar as portas abertas em seu servidor, irá gerar regras de bloqueio e também irá compartilhar a conexão de internet.

5.2 Tornando o Script Executável
Agora, você precisa dar status de executável para esse arquivo.
Digite o comando:
# chmod 0700 ./firewall.sh

5.3 Executando o Script
Para carregar o firewall, digite:
# ./firewall.sh

5.4 Download do Script
Versão para download: firewall.sh



Qualquer dúvida ou informação, entre em contato emota@emota.com.br

EMotaWeb | Textos | Programação | Linux | Wireless | Contato | Topo ^