Tengo un servidor Linux A con un bloque de 5 direcciones IP públicas, 8.8.8.122/29
. Actualmente, 8.8.8.122
está asignado a eth0
, y 8.8.8.123
está asignado a eth0:1
.
Tengo otra máquina Linux B en una ubicación remota, detrás de NAT. Me gustaría configurar un túnel entre los dos para que B pueda usar la dirección IP 8.8.8.123
como su dirección IP principal.
OpenVPN es probablemente la respuesta, pero no puedo entender cómo configurar las cosas ( topology subnet
o topology p2p
podría ser apropiado. ¿O debería usar el puente Ethernet?). La seguridad y el cifrado no son una gran preocupación en este momento, por lo que GRE también estaría bien: la máquina B vendrá de una dirección IP conocida y se puede autenticar en función de eso.
¿Cómo puedo hacer esto? ¿Alguien puede sugerir una configuración OpenVPN, o algún otro enfoque, que podría funcionar en esta situación? Idealmente, también podría manejar múltiples clientes (por ejemplo, compartir las cuatro IP de repuesto con otras máquinas), sin permitir que esos clientes usen IP a las que no tienen derecho.
iptables
reglas simples . B está detrás de un NAT que es otro servidor Linux en ejecuciónshorewall
.Respuestas:
Terminé yendo con el puente de Ethernet. Muchos ejemplos extremadamente detallados para leer en línea, pero resulta bastante fácil:
Primero, en A ,
/etc/network/interfaces
se cambió de:a:
para
eth0
conectar (la interfaz WAN real) contap0
(una nueva interfaz de túnel) en el arranque.Luego, en A , ejecute el servidor openvpn con:
En B , conéctese a él con:
Esa es la configuración súper simple que estaba buscando, y funciona: ahora B es accesible públicamente en 8.8.8.123, y las conexiones salientes se originan en la misma dirección.
Añadir seguridad (
--secret
,--tls-server
, etc.), según sea necesario, por supuesto.fuente
pre-up openvpn
línea para creartap1
también, añadirtap1
abridge_ports
, y ejecutar otra instancia de openvpn conopenvpn --dev tap1
.Vas a pasar un mal momento, creo. La mayoría de los firewalls tendrán dificultades para enrutar el tráfico de OpenVPN si ambos lados de la VPN están en la misma subred.
Si está intentando enrutar para acceso público, movería ambos servidores a diferentes subredes desde sus direcciones públicas y luego usaría IP virtuales (1 a 1 Nat) para conectarlos. Para conectar los dos sitios, OpenVPN funcionaría o un túnel IP-Sec.
IP virtuales: http://doc.pfsense.org/index.php/What_are_Virtual_IP_Addresses%3F
Sitio a sitio: http://doc.pfsense.org/index.php/VPN_Capability_IPsec
Editar basado en comentarios:
Personalmente instalaría pfSense en el cuadro A y le daría el puerto que deseaba para su WAN. Luego configure un servidor OpenVPN en una subred local (que está lista para usar en la interfaz web de pfSense) y configure la otra máquina con una IP virtual que apunte a su IP local de OpenVPN. Esto le daría espacio para la expansión posterior (agregue más máquinas con IP virtuales, reenvíe puertos específicos a diferentes servidores, realmente tenga una configuración LAN / WAN / DMZ completa con OpenVPN para acceso virtual. Sin mencionar que tendría un enrutador completo, por lo que probablemente sea más seguro.
fuente
push "route 50.7.19.122 255.255.255.255 net_gateway"
aseguraría que los datos de VPN todavía se envíen a la red normal.