sexta-feira, 3 de setembro de 2010

Firewall com Ubuntu Server 10.04 (pt 2) - Compartilhando a conexão

Veja na primeira parte do tutorial: Configuração de GUI, VNC e FTP

Para dar continuidade à montagem do meu firewall, é preciso entender basicamente como está desenhada a topologia da nossa LAN:

Modem -> Firewall -> Servidor -> Switch -> Clients

Modem: Entrada de internet com ip estático
Firewall: Ubuntu server
Servidor: Windows Server, com Active Directory
Switch: Redireciona a conexão para as máquinas clientes
Clients: Máquinas que rodam "Ruindows"


CONFIGURANDO AS INTERFACES DE REDE

Vou levar em conta que suas placas de rede estão funcionando perfeitamente.
Caso elas não estejam sendo reconhecidas pelo sistema, você terá que cuidar dessa etapa por si só, pois se trata de uma particularidade. Boa sorte.

O primeiro passo para compartilhar sua conexão é configurar suas interfaces de rede.
Você consegue realizar a configuração, tradicionalmente, de 2 formas:

1) Através do gerenciador de conexões, no menu: Sistema > Preferencias > Conexões de rede

2) "Na unha", através do arquivo /etc/network/interfaces

OBS: Se você editar o arquivo interfaces, o gerenciador de conexoes não detectará as interfaces de rede para permitir a configuração através do próprio utilitário.

As nomenclaturas padrões são: eth0, eth1, eth2 e assim sucessivamente de acordo com a quantidade de placas de rede instaladas.
Você precisa saber qual será sua interface que ligará você à internet (externa) e a que ligará sua máquina à sua LAN (interna).

Para descobrir quais as interfaces de rede que você irá utilizar, digite no terminal:

sudo ifconfig

No meu caso:
eth0 - interface externa (internet)
eth2 - interface interna (lan)

Agora abra o arquivo interfaces, digitando:

sudo gedit /etc/network/interfaces

Segue abaixo mais ou menos como o seu arquivo deve estar aparecendo:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

Se você optar por configurar suas interfaces de rede com o utilitário gráfico, pode seguir o mesmo padrão de configurações que será citado abaixo.

A verdade é que não existe muita diferença entre alterar o arquivo e utilizar o gui, já que ambos necessitam das mesmas informações. Eu recomendo alterar o arquivo, por oferecer maior flexibilidade sobre configurações que eu possa precisar.

Segue a configuração do arquivo interfaces, que deve ter mais ou menos essa cara:

# Configuracoes personalizadas
# -------------------------------------------------------------------

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface - REDE EXTERNA (Internet)
auto eth0
iface eth0 inet static
address X.X.X.119
netmask 255.255.0.0
gateway X.X.X.1

# The secondary network interface - REDE INTERNA (LAN)
auto eth2
iface eth2 inet static
address 10.10.16.241
netmask 255.255.255.192

Leve em conta os seguintes pontos:

- Eu possuo um ip fixo de internet, por isso da palavra "static" na eth2.
Se fosse um ip dinâmico, seria trocado por "dhcp".

- A linha address se refere ao ip. No caso, X.X.X.119 deve ser trocado pelo SEU IP EXTERNO (se for um ip fixo, claro).

- O gateway você consegue com sua provedora de internet.

- Minha interface interna (lan) também está setada com um ip fixo, pois conversará diretamente com outra máquina (Veja minha topologia acima).
O que normalmente acontece aqui é a passagem direta do fluxo para um roteador ou switch, mas não no meu caso.

Você pode encontrar diversas configurações desse arquivo nos links de referência, no final do artigo.

DICA:

Para forçar a atualização e reiniciar os serviços de rede, digite no terminal:
sudo /etc/init.d/networking restart


COMPARTILHAMENTO DA INTERNET

Com as interfaces de rede preparadas para receberem os fluxos de dados, está na hora de compartilhar a conexão.

A primeira configuração à ser feita é liberar o encaminhamento de pacotes IP.
Para isso temos duas alternativas.

1) A primeira é alterando o arquivo /etc/sysctl.conf:

sudo gedit /etc/sysctl.conf

Remova o comentário (símbolo: #) da linha:

net.ipv4.ip_forward = 1

Para mais informações sobre o arquivo sysctl.conf, basta digitar:

man sysctl.conf

2) A segunda forma é alterar o arquivo ip_forward.

Essa alteração pode ser feita através do seu iptables.
Eu prefiro, já que teremos que fazer várias modificações nele. Assim afunilamos todas as configurações no menor número possível de lugares.

A configuração que deve ser inserida no iptables é:

# Compartilhamento da internet
# -------------------------------------------------------------------
modprobe ip_tables
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Substitua o "eth0" pela placa da Internet. Este comando compartilha a conexão proveniente da placa da internet com todas as demais placas de rede espetadas no servidor, por isso não é necessário especificar a placa de rede local.

O comando modprobe ativa os módulos "ip_tables" e "iptable_nat", o módulo do Iptables responsável por oferecer suporte ao roteamento de pacotes via NAT.

A terceira linha ativa o "ip_forward", o módulo responsável pelo encaminhamento de pacotes, utilizado pelo módulo iptable_nat.

Finalmente, a quarta linha cria uma regra de roteamento, que orienta o servidor a direcionar para a internet todos os pacotes (recebidos dos clientes) que se destinarem a endereços que não façam parte da rede local, tornando-se o gateway da rede.

Não precisa se desesperar (ainda). No terceiro post eu darei melhores explicações sobre o iptables.

Por enquanto você pode digitar esses 4 comandos no terminal para fazer o teste sobre o compartilhamento da sua conexão. Só não se esqueça de utilizar o comando "sudo" antes de cada linha. ;)

Veja também:
Parte 01 - GUI, VNC e FTP
Parte 03 - Squid, proxy transparente
Parte 04 - Firewall com IPTables

Nenhum comentário:

BuscaPé, líder em comparação de preços na América Latina
 
BlogBlogs.Com.Br