nftables (parte 7) - NAT (mascaramento)

O mascaramento permite que um router altere de forma dinâmica o IP de origem dos pacotes enviados através de uma interface para o endereço IP da interface. Isto significa que, se a interface receber um novo IP atribuído, o nftables utiliza automaticamente o novo IP ao substituir o IP de origem.
 
Vamos a parte prática. Começamos por criar uma nova tabela.

Note que na imagem acima, no primeiro comando comando omitimos a "familia do protocolo. Sempre que este não é explicito, por padrão sera atribuido o valor ip (IPv4) como a fámilia do protocolo.
 
O passo a seguir é adicionar uma cadeia à esta tabela.
 
 

Outras duas notas por tomar:
  • repare que o valor da prioridade é srcnat, que é o valor textual correspondente a prioridade 100.
  • outro facto é aquele que já sabemos, a política não foi explicita e quando é assim o valor accept é atribuído por padrão. 
Vamos agora adicionar a regra que substitui o IP de origem dos pacotes de saída à cadeia. Note que ao adicionar a regra, devemos mencionar a interface que encaminha os pacotes para fora da rede.
 
Mas antes, vamos verificar o nome da interface que encaminha os pacotes para fora da rede, para o meu caso, a interface que encaminha os pacotes tanto para fora assim assim como para dentro é a mesma.




Uma visualização real deste exemplo seria se por acaso este servidor se comportasse como um roteador de pacotes para a internet, ao se visitar um website através de um dispositivo, o servidor onde este webiste está hospedado ia receber como IP de origem, o IP publico deste router, e não o IP o dispositivo que é usado para visistar o website. Ao receber os pacotes, o servidor que hospeda o site responde ao IP público e por sua vez o roteador reverte automaticamente o processo, enviando a resposta de volta para dispositivo usado para aceder o site.

Comentários

  1. Leituras adicionais:

    https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/configuring_firewalls_and_packet_filters/getting-started-with-nftables#configuring-nat-using-nftables

    ResponderEliminar