Pesquisa de site

Série RHCE: Como configurar e testar roteamento de rede estática - Parte 1


RHCE (Red Hat Certified Engineer) é uma certificação da empresa Red Hat, que fornece um sistema operacional e software de código aberto para a comunidade empresarial. serviços de consultoria para as empresas.

Este RHCE (Red Hat Certified Engineer) é um exame baseado em desempenho (codinome EX300), que possui habilidades, conhecimentos e habilidades adicionais exigido de um administrador de sistema sênior responsável pelos sistemas Red Hat Enterprise Linux (RHEL).

Importante: a certificação Red Hat Certified System Administrator (RHCSA) é necessária para obter a certificação RHCE.

A seguir estão os objetivos do exame baseados na versão do exame Red Hat Enterprise Linux 7, que será abordada nesta série RHCE:

Para visualizar as taxas e se inscrever para um exame em seu país, consulte a página da Certificação RHCE.

Nesta Parte 1 da série RHCE e na próxima, apresentaremos casos básicos, mas típicos, onde os princípios de roteamento estático, filtragem de pacotes e tradução de endereços de rede vêm em jogo.

Observe que não iremos abordá-los em profundidade, mas sim organizar esses conteúdos de uma forma que será útil para dar os primeiros passos e construir a partir daí.

Roteamento estático no Red Hat Enterprise Linux 7

Uma das maravilhas das redes modernas é a vasta disponibilidade de dispositivos que podem conectar grupos de computadores, seja em números relativamente pequenos e confinados a uma única sala ou a várias máquinas no mesmo edifício, cidade, país ou entre continentes.

No entanto, para conseguir isso de forma eficaz em qualquer situação, os pacotes de rede precisam ser roteados, ou em outras palavras, o caminho que eles seguem da origem ao destino deve ser governado de alguma forma.

O roteamento estático é o processo de especificação de uma rota para pacotes de rede diferente do padrão, que é fornecida por um dispositivo de rede conhecido como gateway padrão. A menos que especificado de outra forma através do roteamento estático, os pacotes de rede são direcionados ao gateway padrão; com o roteamento estático, outros caminhos são definidos com base em critérios predefinidos, como o destino do pacote.

Vamos definir o seguinte cenário para este tutorial. Temos uma caixa Red Hat Enterprise Linux 7 conectada ao roteador #1 [192.168.0.1] para acessar a Internet e máquinas em 192.168.0.0/24.

Um segundo roteador (roteador #2) possui duas placas de interface de rede: enp0s3 também está conectado ao roteador #1 para acessar a Internet e se comunicar com a caixa RHEL 7 e outras máquinas na mesma rede, enquanto o outro (enp0s8) é usado para conceder acesso à rede 10.0.0.0/24 onde residem os serviços internos , como um servidor web e/ou de banco de dados.

Este cenário é ilustrado no diagrama abaixo:

Neste artigo vamos nos concentrar exclusivamente na configuração da tabela de roteamento em nossa caixa RHEL 7 para garantir que ela possa acessar a Internet através do roteador #1 e da rede interna via roteador nº 2.

No RHEL 7, você usará o comando ip para configurar e mostrar dispositivos e roteamento usando a linha de comando. Essas alterações podem entrar em vigor imediatamente em um sistema em execução, mas como não são persistentes durante as reinicializações, usaremos os arquivos ifcfg-enp0sX e route-enp0sX dentro de /etc /sysconfig/network-scripts para salvar nossa configuração permanentemente.

Para começar, vamos imprimir nossa tabela de roteamento atual:

ip route show

Na saída acima, podemos ver os seguintes fatos:

  1. O endereço IP do gateway padrão é 192.168.0.1 e pode ser acessado por meio da NIC enp0s3.
  2. Quando o sistema inicializou, ele habilitou a rota zeroconf para 169.254.0.0/16 (por precaução). Em poucas palavras, se uma máquina estiver configurada para obter um endereço IP através de DHCP, mas não conseguir fazê-lo por algum motivo, um endereço será automaticamente atribuído a ela nesta rede. Resumindo, esta rota nos permitirá comunicar, também via enp0s3, com outras máquinas que não conseguiram obter um endereço IP de um servidor DHCP.
  3. Por último, mas não menos importante, podemos comunicar com outras caixas dentro da rede 192.168.0.0/24 através de enp0s3, cujo endereço IP é 192.168.0.18 >.

Estas são as tarefas típicas que você teria que realizar em tal ambiente. A menos que especificado de outra forma, as seguintes tarefas devem ser executadas no roteador #2:

Certifique-se de que todas as NICs foram instaladas corretamente:

ip link show

Se um deles estiver inativo, traga-o à tona:

ip link set dev enp0s8 up

e atribua um endereço IP na rede 10.0.0.0/24 a ele:

ip addr add 10.0.0.17 dev enp0s8

Ops! Cometemos um erro no endereço IP. Teremos que remover aquele que atribuímos anteriormente e depois adicionar o correto (10.0.0.18):

ip addr del 10.0.0.17 dev enp0s8
ip addr add 10.0.0.18 dev enp0s8

Agora, observe que você só pode adicionar uma rota a uma rede de destino através de um gateway que já esteja acessível. Por esse motivo, precisamos atribuir um endereço IP dentro do intervalo 192.168.0.0/24 para enp0s3 para que nossa caixa RHEL 7 possa se comunicar com ele:

ip addr add 192.168.0.19 dev enp0s3

Finalmente, precisaremos habilitar o encaminhamento de pacotes:

echo "1" > /proc/sys/net/ipv4/ip_forward

e parar/desabilitar (apenas por enquanto – até abordarmos a filtragem de pacotes no próximo artigo) o firewall:

systemctl stop firewalld
systemctl disable firewalld

De volta à nossa caixa RHEL 7 (192.168.0.18), vamos configurar uma rota para 10.0.0.0/24 até 192.168.0.19 (enp0s3 no roteador #2):

ip route add 10.0.0.0/24 via 192.168.0.19

Depois disso, a tabela de roteamento fica assim:

ip route show

Da mesma forma, adicione a rota correspondente na(s) máquina(s) que você está tentando alcançar em 10.0.0.0/24:

ip route add 192.168.0.0/24 via 10.0.0.18

Você pode testar a conectividade básica usando ping:

Na caixa RHEL 7, execute

ping -c 4 10.0.0.20

onde 10.0.0.20 é o endereço IP de um servidor web na rede 10.0.0.0/24.

No servidor web (10.0.0.20), execute

ping -c 192.168.0.18

onde 192.168.0.18 é, como você deve se lembrar, o endereço IP de nossa máquina RHEL 7.

Alternativamente, podemos usar o tcpdump (pode ser necessário instalá-lo com yum install tcpdump) para verificar a comunicação bidirecional sobre TCP entre nossa caixa RHEL 7 e o servidor web em 10.0.0.20 .

Para isso, vamos iniciar o log na primeira máquina com:

tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

e de outro terminal no mesmo sistema vamos telnet para a porta 80 no servidor web (assumindo que o Apache está escutando nessa porta; caso contrário, indique a porta correta no seguinte comando):

telnet 10.0.0.20 80

O log do tcpdump deve ter a seguinte aparência:

Onde a conexão foi inicializada corretamente, como podemos dizer observando a comunicação bidirecional entre nossa caixa RHEL 7 (192.168.0.18) e o servidor web (< forte>10.0.0.20).

Lembre-se de que essas alterações desaparecerão quando você reiniciar o sistema. Se quiser torná-los persistentes, você precisará editar (ou criar, caso ainda não existam) os seguintes arquivos, nos mesmos sistemas onde executamos os comandos acima.

Embora não seja estritamente necessário para nosso caso de teste, você deve saber que /etc/sysconfig/network contém parâmetros de rede para todo o sistema. Um /etc/sysconfig/network típico tem a seguinte aparência:

Enable networking on this system?
NETWORKING=yes
Hostname. Should match the value in /etc/hostname
HOSTNAME=yourhostnamehere
Default gateway
GATEWAY=XXX.XXX.XXX.XXX
Device used to connect to default gateway. Replace X with the appropriate number.
GATEWAYDEV=enp0sX

Quando se trata de definir variáveis e valores específicos para cada NIC (como fizemos para o roteador nº 2), você terá que editar /etc/sysconfig/network-scripts/ifcfg-enp0s3 e /etc/sysconfig/network-scripts/ifcfg-enp0s8.

Seguindo nosso caso,

TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.0.19
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NAME=enp0s3
ONBOOT=yes

e

TYPE=Ethernet
BOOTPROTO=static
IPADDR=10.0.0.18
NETMASK=255.255.255.0
GATEWAY=10.0.0.1
NAME=enp0s8
ONBOOT=yes

para enp0s3 e enp0s8, respectivamente.

Quanto ao roteamento em nossa máquina cliente (192.168.0.18), precisaremos editar /etc/sysconfig/network-scripts/route-enp0s3:

10.0.0.0/24 via 192.168.0.19 dev enp0s3

Agora reinicie seu sistema e você deverá ver essa rota em sua tabela.

Resumo

Neste artigo abordamos os fundamentos do roteamento estático no Red Hat Enterprise Linux 7. Embora os cenários possam variar, o caso aqui apresentado ilustra os princípios e procedimentos necessários para realizar esta tarefa. Antes de encerrar, gostaria de sugerir que você dê uma olhada no Capítulo 4 da seção Protegendo e Otimizando o Linux no site The Linux Documentation Project para obter mais detalhes sobre os tópicos abordados aqui.

E-book gratuito sobre Securing & Optimizing Linux: The Hacking Solution (v.3.0) – Este 800+ e-book contém uma coleção abrangente de dicas de segurança do Linux e como usá-las com segurança e facilidade para configurar aplicativos e serviços baseados em Linux.

Baixe Agora

No próximo artigo falaremos sobre filtragem de pacotes e tradução de endereços de rede para resumir as habilidades básicas de rede necessárias para a certificação RHCE.

Como sempre, estamos ansiosos para ouvir de você, então fique à vontade para deixar suas dúvidas, comentários e sugestões através do formulário abaixo.