Rede e Roteamento: mudanças entre as edições
Sem resumo de edição |
|||
Linha 193: | Linha 193: | ||
nameserver 8.8.8.8 | nameserver 8.8.8.8 | ||
==NAT== | ==Configuração de servidor para compartilhar conexão com a Internet== | ||
Um '''servidor''' com '''duas placas de rede''' pode ser configurado como '''roteador''', separando o tráfego proveniente da Internet do tráfego da rede local. | |||
;Exemplo de uma configuração típica de um servidor com duas placas: Referência <ref name=MORIMOTO/>. | |||
[[Arquivo:ServidorAcesso.png]] | |||
No exemplo a interface '''eth0''' usa '''endereços IP privados''' na faixa 192.168.1.x/24. A interface '''eth1''' é configurada como '''cliente DHCP''', recebendo endereço IP do provedor. | |||
;Exemplo de configuração do arquivo /etc/network/interfaces: | |||
auto lo | |||
iface lo inet loopback | |||
iface eth0 inet static | |||
address 192.168.1.1 | |||
netmask 255.255.255.0 | |||
network 192.168.1.0 | |||
broadcast 192.168.1.255 | |||
iface eth1 inet dhcp | |||
===Ativando o roteador=== | |||
===Ativando o roteador=== | |||
Para ativar o roteamento no servidor deve-se executar o comando: | |||
echo 1 > /proc/sys/net/ipv4/ip_forward | |||
Com isto o servidor assume papel de roteador, encaminhando para a Internet pacotes originados na rede local. | |||
===NAT=== | |||
O [[NAT|'''NAT''' (''Network Address Translation'')]] é um mecanismo que possibilita a uma rede local usar apenas um endereço '''IP público''', no que concerne ao mundo exterior, e utilizar endereços '''IP privados''' no que concerne a rede interna. | O [[NAT|'''NAT''' (''Network Address Translation'')]] é um mecanismo que possibilita a uma rede local usar apenas um endereço '''IP público''', no que concerne ao mundo exterior, e utilizar endereços '''IP privados''' no que concerne a rede interna. | ||
;Configuração do NAT: Referência: <ref name=VALLE2/> | |||
Referência: <ref name=VALLE2/> | |||
O NAT no Ubuntu se configura com [http://manpages.ubuntu.com/manpages/trusty/en/man8/iptables.8.html '''iptables''']. | O NAT no Ubuntu se configura com [http://manpages.ubuntu.com/manpages/trusty/en/man8/iptables.8.html '''iptables''']. |
Edição das 20h38min de 23 de novembro de 2015
Rede e Roteamento
Configuração típica de uma rede institucional
[1] Descrição dos principais elementos da rede:
- Roteador de acesso a Internet, provendo serviços como:
- Firewall: barreira de proteção para bloquear acesso a conteúdo malicioso;
- Proxy/Cache: intermediário para requisições entre clientes e servidores Web;
- DMZ (DeMilitarized Zone): área de rede da organização acessada externamente, localizada entre a rede interna e a Internet;
- Rede Privativa: área da rede interna a instituição, não acessada diretamente da Internet;
- Roteador NAT: Possibilita que um único endereço IP público possa ser traduzido em endereços IP privados na rede interna.
- Servidor de serviços externos, localizado na DMZ, oferecendo serviços como:
- Servidor DNS, resolvedor nomes de nomes de domínio;
- Servidor de Email para os usuários da organização.
- Servidor WWW para páginas da organização e dos usuários;
- Servidor FTP e SSH para os usuários poderem alterar arquivos no servidor.
- Switch gerenciável, permitindo a configuração de VLANs;
- Servidor de serviços internos, localizado na rede privativa, oferecendo serviços como:
- Servidor DHCP para prover IP dinâmico para os computadores da rede interna;
- Servidor de arquivos e impressão;
- Administração de cotas de disco para os usuários e grupos;
- Servidor Samba para compartilhamento com máquinas Windows;
- Servidor FTP e SSH para os usuários poderem alterar arquivos no servidor.
- Serviço LDAP, fornecendo controle de login na rede;
- Impressora de rede;
- Ponto de acesso sem fio.
O objetivo deste tópico é mostrar como configurar interfaces de rede em um servidor Linux, bem como configura-lo como roteador e como provedor de serviços de rede.
Configuração de interface de rede
Para adicionar uma máquina na rede é obrigatória a configuração de no mínimo dois parâmetros, o endereço IP e a máscara de rede. Com isto a máquina já está apta para se comunicar com outras na mesma rede local.
Para uma configuração completa é ainda necessário definir o nome da máquina, o roteador padrão (default gateway) e o servidor de nomes (DNS).
Todos estes parâmetros podem ser configurados estaticamente pelo administrador, ou dinamicamente por meio de um servidor DHCP. A configuração estática é recomendada para servidores, já a configuração dinâmica é utilizada para máquinas de uso geral [1].
/etc/network/interfaces
O arquivo interfaces contém a configuração das interfaces de rede ativadas automaticamente na hora do boot.
Por exemplo:
evandro@ubuntuServer:/etc/network$ more interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp
- No exemplo está indicado que a interface eth0 recebe configuração via DHCP.
ifconfig
O aplicativo ifconfig pode ser utilizado para visualizar a configuração ou configurar uma interface de rede. Se nenhum argumento for passado na chamada do ifconfig, o comando mostra a configuração atual de cada interface de rede.
- Exemplo
- Saída do comando ifconfig:
evandro@ubuntuServer:~$ ifconfig eth0 Link encap:Ethernet Endereço de HW 08:00:27:44:99:83 inet end.: 192.168.1.67 Bcast:192.168.1.255 Masc:255.255.255.0 endereço inet6: fe80::a00:27ff:fe44:9983/64 Escopo:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1 pacotes RX:152 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:85 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:1000 RX bytes:19360 (19.3 KB) TX bytes:11957 (11.9 KB) lo Link encap:Loopback Local inet end.: 127.0.0.1 Masc:255.0.0.0 endereço inet6: ::1/128 Escopo:Máquina UP LOOPBACK RUNNING MTU:65536 Métrica:1 pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:0 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
- Descrição da saída do comando ifconfig
Interfaces de rede:
- eth0 -> Configuração da interface de rede cabeada (placa de rede);
- lo -> Configuração da interface de loopback, utilizado para testes locais do protocolo IP;
Parâmetros principais indicados para interface: eth0
- Encapsulamento do Link: Ethernet -> Indica que o tipo de rede é Ethernet;
- inet end: 192.168.1.67 -> Endereço IP;
- Masc: 255.255.255.0 -> Máscara de rede;
- Bcast: 192.168.1.255 -> Endereço de broadcast;
- Endereço de HW: 08:00:27:44:99:83 -> Endereço físico da interface;
- endereço inet6: fe80::a00:27ff:fe44:9983/64 Escopo:Link -> Endereço IPv6 de escopo local gerado por autoconfiguração
- MTU: 1500 -> Maximum Transfer Unit -> Tamanho máximo do datagrama suportado pelo enlace
Comandos de configuração de rede com ifconfig
Referências: [2]
Configurar uma interface de rede (a interface fica automaticamente ativada):
ifconfig eth1 192.168.2.100 netmask 255.255.255.0
Desativar uma interface:
ifconfig eth1 down
Ativar uma interface:
ifconfig eth1 up
Ao se configurar uma interface de rede, cria-se uma rota automática para a sub-rede diretamente acessível via aquela interface. Isto se chama roteamento mínimo.
A configuração de uma interface de rede com ifconfig não é permanente no sistema. Caso se deseje uma configuração permanente deve-se editar o arquivo /etc/network/interfaces.
route
O comando route mostra e manipula tabelas de roteamento no Linux.
Para verificar a tabela de roteamento do computador, executar o comando:
route -n
- Exemplo
evandro@ubuntuServer:~$ route -n Tabela de Roteamento IP do Kernel Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
- Na primeira linha o destino 0.0.0.0 indica uma rota default, ou qualquer IP diferente da rede local -> Para tal a saída é o roteador padrão 192.168.1.1.
- Na segunda linha o destino 192.168.1.0 indica a rede local -> Para tal, o roteador 0.0.0.0 indica que não há necessidade de roteamento pois o destino está na própria rede.
Definição de rotas estáticas
Rotas estáticas podem ser adicionadas a uma tabela de roteamento de um host com os comandos:
- Configuração do roteador padrão da rede:
route add default gw 192.168.1.254 dev eth0
- Adição de uma rota estática em um roteador:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.0.2 dev eth1
- Remover uma rota:
route del -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.0.2 dev eth1
IP alias
Pode-se associar mais de um endereço a uma mesma interface de rede, os chamados IP alias. Isto pode ser útil em configurações especiais, por exemplo, quando temos duas sub-redes compartilhando o mesmo domínio de colisão [1].
ifconfig eth0:0 192.168.10.100 netmask 255.255.255.0 ifconfig eth0:1 192.168.20.100 netmask 255.255.255.0 evandro@ubuntuServer:~$ ifconfig eth0 Link encap:Ethernet Endereço de HW 08:00:27:44:99:83 inet end.: 192.168.1.67 Bcast:192.168.1.255 Masc:255.255.255.0 endereço inet6: fe80::a00:27ff:fe44:9983/64 Escopo:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1 pacotes RX:480 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:296 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:1000 RX bytes:50458 (50.4 KB) TX bytes:38253 (38.2 KB) eth0:0 Link encap:Ethernet Endereço de HW 08:00:27:44:99:83 inet end.: 192.168.10.100 Bcast:192.168.10.255 Masc:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1 eth0:1 Link encap:Ethernet Endereço de HW 08:00:27:44:99:83 inet end.: 192.168.20.100 Bcast:192.168.20.255 Masc:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1 lo Link encap:Loopback Local inet end.: 127.0.0.1 Masc:255.0.0.0 endereço inet6: ::1/128 Escopo:Máquina UP LOOPBACK RUNNING MTU:65536 Métrica:1 pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:0 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) evandro@ubuntuServer:~$ route -n Tabela de Roteamento IP do Kernel Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.20.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Configuração do cliente DNS
A configuração cliente do servidor de nomes (DNS) indica qual o servidor de nomes será consultado para traduzir nomes de domínio para endereços IP.
No Ubuntu o arquivo de configuração do DNS é o /etc/resolve.conf e é atualizado automaticamente pelo sistema.
Para se editar manualmente este arquivo deve-se desabilitar o serviço automático de atualização, através do comando dpkg-reconfigure resolvconf, escolhendo a primeira opção como yes e as demais opções deixando o padrão. Em seguida edita-se o arquivo /etc/resolv.conf, por exemplo:
#DNS público da Google nameserver 8.8.8.8
Configuração de servidor para compartilhar conexão com a Internet
Um servidor com duas placas de rede pode ser configurado como roteador, separando o tráfego proveniente da Internet do tráfego da rede local.
- Exemplo de uma configuração típica de um servidor com duas placas
- Referência [3].
No exemplo a interface eth0 usa endereços IP privados na faixa 192.168.1.x/24. A interface eth1 é configurada como cliente DHCP, recebendo endereço IP do provedor.
- Exemplo de configuração do arquivo /etc/network/interfaces
auto lo iface lo inet loopback iface eth0 inet static address 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 iface eth1 inet dhcp
Ativando o roteador
Ativando o roteador
Para ativar o roteamento no servidor deve-se executar o comando:
echo 1 > /proc/sys/net/ipv4/ip_forward
Com isto o servidor assume papel de roteador, encaminhando para a Internet pacotes originados na rede local.
NAT
O NAT (Network Address Translation) é um mecanismo que possibilita a uma rede local usar apenas um endereço IP público, no que concerne ao mundo exterior, e utilizar endereços IP privados no que concerne a rede interna.
- Configuração do NAT
- Referência: [2]
O NAT no Ubuntu se configura com iptables.
As regras devem ser postas na tabela nat, e aplicadas a chain POSTROUTING, como no seguinte exemplo:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
A regra acima faz com que todo o tráfego originado em 192.168.1.0/24, e que sai pela interface eth0 deve ser mascarado com o endereço IP dessa interface. Esta regra diz o seguinte: todos os pacotes que passarem (POSTROUTING) por esta máquina com origem de 192.168.1.0/24 e sairem pela interface eth0 serão mascarados, ou seja sairão desta máquina com o endereço de origem como sendo da eth0. O alvo MASQUERADE foi criado para ser usado com links dinâmicos (tipicamente discados ou ADSL), pois os mapeamentos se perdem se o link sair do ar. Para uso mais geral, com links permanentes, deve-se usar o alvo SNAT:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 200.135.37.66
Uma outra possibilidade é mapear para um endereço da rede interna um tráfego originado externamente. Por exemplo, pode haver um servidor na rede interna que precisa ser acessado externamente, porém ele não possui um endereço IP roteável. O NAT no Linux possui a função DNAT que pode fazer essa tarefa:
iptables -t nat -A PREROUTING -p tcp -d 200.135.37.66 --dport 8080 -i eth0 -j DNAT --to-destination 192.168.1.10:80
Nesse exemplo, datagramas com IP destino 200.135.37.66 e contendo um segmento TCP com port 8080 são desviados para o port 80 no IP 192.168.1.10. Quer dizer, o IP de destino desses datagramas é de fato substituído por 192.168.1.10, e o port de destino é mudado para 80.
Note que DNAT é aplicado a chain PREROUTING.
Com estas configurações o cliente acessa qualquer site na internet mas não pode ser acessado. Por isto alguns textos colocam NAT na categoria de técniccas de segurança. Apesar de NAT prover o isolamento entre rede externa e interna, a não ser para os tráfegos mapeados, não se pode usá-lo sozinho como proteção de uma rede. Quer dizer, não se pode prescindir de um bom firewall e políticas de segurança adequadas.
Referências
- ↑ 1,0 1,1 1,2 VALLE, O. T. Adminstração de Redes com Linux: Fundamentos e práticas, IFSC, Florianópolis, 2010.
- ↑ 2,0 2,1 VALLE, O. T. Gerência de Redes, Diário Aula, 2014. http://wiki.sj.ifsc.edu.br/wiki/index.php/GER20706-2014-1
- ↑ Erro de citação: Marca
<ref>
inválida; não foi fornecido texto para as refs chamadasMORIMOTO
--Evandro.cantu (discussão) 18h43min de 22 de novembro de 2015 (BRST)