Tunelando um IP público para uma máquina remota

8

Eu tenho um servidor Linux A com um bloco de 5 endereços IP públicos, 8.8.8.122/29 . Atualmente, 8.8.8.122 é atribuído a eth0 e 8.8.8.123 é atribuído a eth0:1 .

Eu tenho outra máquina Linux B em um local remoto, atrás do NAT. Eu gostaria de configurar um túnel entre os dois para que B possa usar o endereço IP 8.8.8.123 como seu endereço IP primário.

O OpenVPN é provavelmente a resposta, mas não consigo descobrir como configurar as coisas ( topology subnet ou topology p2p pode ser apropriado. Ou deveria estar usando a ponte Ethernet?). Segurança e criptografia não são uma grande preocupação neste momento, então o GRE estaria bem também - a máquina B virá de um endereço IP conhecido e poderá ser autenticada com base nisso.

Como posso fazer isso? Alguém pode sugerir uma configuração do OpenVPN ou alguma outra abordagem que funcione nessa situação? Idealmente, ele também seria capaz de lidar com vários clientes (por exemplo, compartilhar todos os quatro IPs com outras máquinas), sem permitir que esses clientes usem IPs aos quais eles não têm direito.

    
por Jim Paris 24.09.2012 / 23:07

2 respostas

7

Acabei indo com a ponte Ethernet. Muitos exemplos extremamente detalhados para percorrer on-line, mas acaba por ser bastante fácil:

Primeiro, em A , /etc/network/interfaces foi alterado de:

auto eth0
iface eth0 inet static
    address 8.8.8.122
    netmask 255.255.255.248
    gateway 8.8.8.121

para:

auto br0
iface br0 inet static
    address 8.8.8.122
    netmask 255.255.255.248
    gateway 8.8.8.121
    pre-up openvpn --mktun --dev tap0
    bridge_ports eth0 tap0
    bridge_fd 3

para unir eth0 (a interface real da WAN) com tap0 (uma nova interface de túnel) na inicialização.

Em seguida, em A , execute o servidor openvpn com:

openvpn --dev tap0

Em B , conecte-se a ele com:

openvpn --remote 8.8.8.122 --dev tap0 --route-gateway 8.8.8.121 \
        --redirect-gateway def1 --ifconfig 8.8.8.123 255.255.255.248

Essa é a configuração super simples que eu estava procurando, e funciona - B agora está acessível publicamente em 8.8.8.123 e as conexões de saída se originam do mesmo endereço .

Adicione segurança ( --secret , --tls-server , etc) conforme necessário, é claro.

    
por 25.09.2012 / 23:28
1

Você vai ter dificuldades, eu acho. A maioria dos firewalls terá dificuldade em rotear o tráfego do OpenVPN se ambos os lados da VPN estiverem na mesma sub-rede.

Se você estiver tentando rotear o acesso público, moverei os dois servidores para sub-redes diferentes dos seus endereços públicos e, em seguida, usaremos os IPs virtuais (1 a 1 Nat) para conectá-los. Para conectar os dois sites, o OpenVPN funcionaria ou um túnel IP-Sec.

IPs virtuais: link

Site para site: link

Edite com base nos comentários:

Eu pessoalmente instalaria o pfSense na caixa A e daria a porta que você queria para sua WAN. Em seguida, configure um servidor OpenVPN em uma sub-rede local (que está tudo pronto para ir na interface web do pfSense) e configure a outra máquina com um IP virtual apontado para seu ip OpenVPN local. Isso lhe daria espaço para expansão posterior (adicionar mais máquinas com IPs virtuais, encaminhar portas específicas para diferentes servidores, realmente ter uma configuração LAN / WAN / DMZ completa com o OpenVPN para acesso virtual. Sem mencionar que você teria um roteador completo, por isso provavelmente seria mais seguro.

    
por 24.09.2012 / 23:21