O Debian oferece uma máquina gateway para todos os propósitos, a qual gerencia
NAT, mail, DHCP, cache DNS, HTTP proxy cache, CVS, NFS e serviços Samba para um
sistema LAN doméstico. Consulte Netfilter, onde muitos tópicos de
configuração de rede são explicados.
A LAN usa endereços IP para as seguintes faixas de rede privadas para evitar colisão de endereços IP com a Internet.
Class A: 10.0.0.0 com máscara 255.0.0.0
Class B: 172.16.0.0 - 172.31.0.0 com máscara 255.255.0.0
Class C: 192.168.0.0 - 192.168.255.0 com máscara 255.255.255.0
O Debian usa o arquivo /etc/network/interfaces para configuração
IP.
Por exemplo, caso a interface eth0 conecte à Internet com um
endereço IP fornecido via DHCP e a interface eth1 conecte a LAN, o
arquivo /etc/network/interfaces é configurado como a seguir (para
o Woody e posteriores) :
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 192.168.1.1
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
Execute o comando a seguir para atualizar a configuração de rede para o novo
arquivo /etc/network/interfaces :
# /etc/init.d/networking restart
Lembrete : o arquivo /etc/network/interfaces no Woody e em versões
posteriores não é compatível com o Potato. (O mesmo situação pode acontecer
entre o Sarge e o Woody.)
Caso o sistema use uma placa de rede PCMCIA, é necessário configurar a rede
através do arquivo /etc/pcmcia/network.opts ao invés do arquivo
indicado anteriomente em sistemas Potato. Em sistema Woody, esse problema foi
solucionado.
Confira a saída dos comandos a seguir caso esteja em dúvida :
# ifconfig
# cat /proc/pci
# cat /proc/interrupts
# dmesg | more
Algumas vezes, conexões DSL (PPPoE) possuem problemas de MTU. Consulte o
documento LDP DSL-HOWTO. Caso você
tenha problemas com certos websites, consulte Estranhos problemas de acesso a alguns
websites, Seção 3.7.5.
Conjunto típico de programas :
# apt-get install nfs samba dhcpd dhcp-client bind squid procmail fetchmail
# apt-get install ssh cvs
Então confira os seguintes arquivos :
/etc/init.d/dhcpd (edite para servir somente LAN = eth1)
/etc/host.allow (ALL: 192.168.0.0/16 127.0.0.0/8) para NFS
/etc/exports (Esse é preciso para NFS)
/etc/bind/db.192.168.1 (adicione)
/etc/bind/db.lan (adicione)
/etc/bind/named.conf (edite)
/etc/resolv.conf (edite)
/etc/hosts
/etc/dhcpd.conf (edite para LAN = eth1)
/etc/dhclient.conf (edite para forçar DNS local)
/etc/samba/smb.conf
/etc/exim/exim.conf
/etc/mailname
/etc/aliases
/etc/squid.conf (adicione todos os IPs dos hosts da LAN como permitidos)
O bind cria um servidor de cache DNS local. Mude o DNS para
localhost. Confira o arquivo /etc/resolv.conf :
nameserver 127.0.0.1
search lan.aokiconsulting.com
O projeto netfilter/iptables é um subsistema de firewalling para o kernel Linux
2.4 e superiores. Consulte Netfilter, onde muitos tópicos de
configuração de rede são explicados.
O Netfilter processa pacotes usando 5 chains embutidas : PREROUTING, INPUT, FORWARD, OUTPUT e POSTROUTING.
decisão de
roteamento
IN ------> PRE ---> ------> FORWARD -----> ----> POST -----> OUT
interface ROUTING \ filter / ROUTING interface
DNAT | tracking ^ SNAT
REDIRECT | | MASQUERADE
v |
INPUT OUTPUT
| filter ^ filter,DNAT
v |
\--> Processo Local --/
programas user-space
Os pacotes são processados em cada chain embutida usando as seguintes tabelas.
Regras de firewall possuem diversos alvos :
--to-source endereçoip[-endereçoip][:porta-porta]
--to-ports porta[-porta]
--to-destination endereçoip[-endereçoip][:porta-porta]
--to-ports porta[-porta]
Os comandos básicos do iptables são :
iptables -N chain # cria uma chain
iptables -A chain \ # adiciona regra na chain
-t tabela \ # usa tabela (filter, nat, mangle)
-p protocolo \ # tcp, udp, icmp ou all,
-s endereço-origem[/máscara] \
--sport porta[:porta] \ # porta de origem caso -p seja tcp ou udp
-d endereço-origem[/máscara] \
--dport porta[:porta] \ # porta de destino caso -p seja tcp ou udp
-j alvo \ # o que fazer se o pacote casar
-i nome-interface-entrada \# para INPUT, FORWARD, PREROUTING
-o nome-interface-saída # para FORWARD, OUTPUT, POSTROUTING
Máquinas na LAN podem acessar os recursos da Internet através de um gateway que executa mascaramento de IP (NAT) compartilhando um único endereço IP acessível externamente.
# apt-get install ipmasq
Aplique as regras de exemplo para aumentar a proteção do ipmasq.
Consulte /usr/share/doc/ipmasq/examples/stronger/README. Para
imagens de kernel Debian 2.4 , certifique-se de carregar os módulos
apropriados. Consulte Função de
rede, Seção 7.2.3 para conhecer a configuração necessária.
Para imagens de kernel Debian 2.2, edite o Z92timeouts.rul em
/etc/masq/rules como a seguir para assegurar uma conexão mais
longa para sites remotos (bom para grandes e-mails, etc.) :
# tcp, tcp-fin, udp
# 2hr, 10 sec, 160 sec - padrão
# 1 day, 10 min, 10 min - exemplo mais longo
$IPCHAINS -M -S 86400 600 600
Adicionalmente, caso a rede seja acessada através de uma placa de rede PCMCIA,
o ipmasq precisa ser iniciado a partir de
/etc/pcmcia/network.opts. Leia
/usr/share/doc/ipmasq/ipmasq.txt.gz.
Suponha que você possua um notebook PC que esteja configurado para usar outros ambientes LAN e você queira usar seu agente de mensagens de usuário (software de e-mail) no notebook PC sem reconfigurá-lo.
Adicionar as seguintes regras através do comando iptables na
máquina gateway irá redirecionar a conexão SMTP para a máquina gateway.
# iptables -t nat -A PREROUTING -s 192.168.1.0/24 -j REDIRECT \
-p tcp --dport smtp --to-port 25 # smtp=25, INPUT está aberto
Para um conjunto de regras de redirecionamento mais completo considere instalar
o pacote ipmasq e adicionar ao diretório
M30redirect.def/etc/ipmasq/rules/.
[FIXME] Política de roteament (por Phil Brutsche pbrutsch@tux.creighton.edu):
Confira o manual iproute para
maiores detalhes. Controle de tráfego (tc) pode também ser interessante.
Ambiente :
eth0: 192.168.1.2/24; gateway 192.168.1.1
eth1: 10.0.0.2/24; gateway 10.0.0.1
Sem mascaramento nesta máquina.
Mágica especial :
[FIXME] Eu nunca fiz isso. Como configurar a conexão discada como backup para uma conexão rápida com recursos de auto-discagem ? Por favor enviem-me um patch aqui :)
Referência Debian
1.06-16, Sáb Jan 3 21:37:21 UTC 2004osamu@debian.orgpormenese@uol.com.br