Implementando PPPoE half-bridge / ip-passthrough para adequar o appliance de firewall VPN IPSec ao Linux

2

(Estou editando minha própria pergunta e postando uma resposta para qualquer outra pessoa que se encontre em uma posição similar.)

Eu gostaria que um appliance de firewall exigisse que um IP público estático em sua interface externa fosse usado com um modem ADSL aprovado pelo ISP. (Essa configuração não é recomendada, pois o serviço ADSL e o modem são de nível de consumidor, mas precisamos economizar dinheiro.)

O modem pode atuar como um roteador, o que significa que ele transmite todo o tráfego NAT e usa o IP público estático do serviço 1 em sua interface externa. Não podemos usar uma sub-rede pública por trás deste NAT, pois isso não é suportado por este serviço ADSL.

A outra opção é que esse modem pode atuar como uma ponte completa, mas o appliance de firewall não é capaz de encerrar um link PPP.

Existe um modem (DrayTek Vigor 120) que eu poderia adquirir que é capaz de modo de meia ponte (DrayTek chama isso de "True-DMZ"), onde um dispositivo atrás do modem é atribuído um IP público estático do link ADSL endereço. Isso funcionou, mas infelizmente nós tivemos problemas não relacionados com a linha ADSL e não pudemos receber nenhum suporte do nosso ISP enquanto usavamos este modem.

Como faço para configurar um PC Linux para que ele encerre o link PPP no modo half-bridge?

    
por MeMyselfI 24.03.2017 / 14:36

1 resposta

1

Eu usei o Debian em um PC com três NICs (1 para gerenciamento, 1 para conectar ao modem, 1 para conectar ao firewall). Acabei com eth0 = gerenciamento, eth1 = modem, eth2 = firewall, ppp0 = serviço ADSL e lo.

  1. Prepare o PC com o ppp (e o pppoeconf, se desejar) [nota: este PC perderá sua conexão com a Internet quando tudo estiver configurado]
  2. Coloque o modem no modo de ponte completa
  3. Configure o ppp e conecte-se, teste a conexão, etc.
  4. Configure eth1 e eth2 como "auto eth x " e "iface eth x " em / etc / network / interfaces
  5. Adicione o seguinte ao / etc / ppp / ip-up (logo antes da linha "run-parts"):

    ifconfig ppp0 um IP em uma sub-rede que você nunca usará / esse CIDR da sub-rede

    ifconfig eth2 up

    ifconfig eth2 seu IP público / sua sub-rede pública

    ip route delete default

    ip route adiciona o padrão dev ppp0

    cache de limpeza de rotas ip

Você deve acabar com uma tabela de rotas com esta aparência:

  • 0.0.0.0/0 ppp0
  • rede do seu IP público / sub-rede do seu IP público eth2
  • rede que você não se importa com / subnet ppp0

A maneira como isso funciona:

  • eth1 não precisa de um endereço IP, pois o PPPoE é um protocolo de quadro
  • o eth2 obtém outro IP na mesma sub-rede que seu IP público
  • O ppp0 recebe um IP com o qual você não se importa (mas não colide com nada com que você se importa)
  • quando um pacote chega de ADSL, sua origem será algum outro IP público e seu destino será seu IP público: ele sairá da eth2 (devido à rota # 2)
  • quando um pacote chega do firewall, sua fonte será seu IP público e seu destino será algum outro IP público: ele irá egresso ppp0 (devido a rota padrão)

Exemplo:

Digamos que seu IP público é 1.1.1.100 / 24 e seu gateway é 1.1.1.1 (nosso ISP nos designou algo como isto; do jeito que eu entendi, você normalmente obteria 1.1.1.100/32 sem gateway). Diga também que 172.16.1.0/24 é uma rede que você nunca utilizará em lugar algum. Então:

ifconfig ppp0 172.16.1.1/24

ifconfig eth2 up

ifconfig eth2 1.1.1.101/24

ip route delete default

ip route add default dev ppp0

ip route flush cache

Sua tabela de rotas:

  • 0.0.0.0/0 ppp0
  • 1.1.1.0/24 eth2
  • 172.16.1.0/24 ppp0

Note que você está atribuindo eth2 1.1.1.101 e não 1.1.1.100 . A Eth2 precisa estar na mesma sub-rede do seu IP público, mas não no próprio IP público.

Advertência:

Você precisará usar a sub-rede real usada pelo seu ISP (por exemplo, 1.1.1.0/24) ou criar uma simulação (e usar / 30 para mantê-la o menor possível). Outros IPs (normalmente outros clientes do seu ISP) nessa sub-rede na Internet ficarão inacessíveis a você.

    
por 30.04.2018 / 08:09

Tags