![Conecte redes juntas usando OpenVPN en CentOS 7](https://rvso.com/image/112004/Conecte%20redes%20juntas%20usando%20OpenVPN%20en%20CentOS%207.png)
Estoy intentando conectar dos redes usando un par de sistemas CentOS 7 que ejecutan OpenVPN.
Tengo un lado del "servidor" que tiene dos redes detrás y un lado del "cliente" que tiene una sola red. La conexión openvpn básica está activa, pero creo que tengo algún problema con el enrutamiento o la configuración del firewalld.
OpenVPN es un grupo en 10.8.0.0/24. El servidor tiene las redes 10.254.1.0/24 y 10.255.1.0/24 detrás; el cliente tiene 10.255.0.1 detrás.
El servidor incluye estas opciones de enrutamiento en server.conf:
# Push any routes the client needs to get in
# to the local network.
push "route 10.254.1.0 255.255.255.0"
push "route 10.255.1.0 255.255.255.0"
Estos aparecen correctamente en la tabla de enrutamiento del cliente:
10.8.0.1 via 10.8.0.5 dev tun0
10.8.0.5 dev tun0 proto kernel scope link src 10.8.0.6
10.254.1.0/24 via 10.8.0.5 dev tun0
10.255.0.0/24 dev enp6s4f0 proto kernel scope link src 10.255.0.1 metric 100
10.255.1.0/24 via 10.8.0.5 dev tun0
...y en el lado del servidor he configurado manualmente una ruta adecuada:
10.8.0.0/24 via 10.8.0.2 dev tun0
10.8.0.2 dev tun0 proto kernel scope link src 10.8.0.1
10.255.0.0/24 via 10.8.0.2 dev tun0
...y la puerta de enlace del cliente puede, de hecho, hacer ping a dispositivos más profundos en la red del servidor:
[root@sentry openvpn]# ping -c 1 10.254.1.10
PING 10.254.1.10 (10.254.1.10) 56(84) bytes of data.
64 bytes from 10.254.1.10: icmp_seq=1 ttl=63 time=300 ms
...pero no puedo hacerlo.
# ssh [email protected]
ssh: connect to host 10.254.1.10 port 22: No route to host
... entonces, creo que podría ser un problema de firewall.
En ambos lados agregué la interfaz tun a mi zona interna.
Del lado del cliente:
# firewall-cmd --info-zone="internal"
internal (active)
target: default
icmp-block-inversion: no
interfaces: enp6s4f0 tun0
sources:
services: dhcp dhcpv6-client dns http mdns mosh samba-client snmp ssh syslog
ports: 8000/tcp
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
...y el servidor:
# firewall-cmd --info-zone="internal"
internal (active)
target: default
icmp-block-inversion: no
interfaces: ens161 ens256 tun0
sources:
services: dhcpv6-client mdns samba-client snmp ssh
ports:
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
Ahora, en el servidor para que las dos redes internas se comuniquen entre sí, tuve que agregar reglas directas de iptables:
firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens256 -o ens161 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens161 -o ens256 -j ACCEPT
... así que hice lo mismo para la red openvpn:
firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens256 -o tun0 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -o ens256 -i tun0 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens161 -o tun0 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -o ens161 -i tun0 -j ACCEPT
...y en el cliente:
firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i enp6s4f0 -o tun0 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -o enp6s4f0 -i tun0 -j ACCEPT
...claramente, o no entiendo cómo se supone que funciona el enrutamiento, o me falta algo en el lado del firewall.
¿Alguien puede decirme qué me falta?