La estación de trabajo VPN Gateway no es accesible

La estación de trabajo VPN Gateway no es accesible

Me gustaría utilizar mi estación de trabajo Linux como puerta de enlace VPN para mi red local. La misma estación de trabajo se utiliza como servidor web. Cuando conecto la estación de trabajo a la VPN, ya no es posible acceder a este servidor web desde una red externa.

Mi configuración es la siguiente:

Enrutador ISP: ip 192.168.0.1 (puerta de enlace predeterminada, asignación de puertos habilitada para usar un puerto público no estándar)

Estación de trabajo Linux: IP fija 192.168.0.20 (servidor dhcp ya que mi enrutador no permite cambiar la dirección de la puerta de enlace, openvpn, apache, servidor dns)

salida de "ip route show"

0.0.0.0/1 via 10.8.3.1 dev tun0 
default via 192.168.0.1 dev eth0 src 192.168.0.20 metric 202 
10.8.3.0/24 dev tun0 proto kernel scope link src 10.8.3.12 
37.120.143.221 via 192.168.0.1 dev eth0 (VPN external IP)
128.0.0.0/1 via 10.8.3.1 dev tun0 
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.20 metric 202 

Configuración de la siguiente manera:

net.ipv4.ip_forward = 1
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -p icmp -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -j ACCEPT
-A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

Una cosa que noto es que cuando la VPN está habilitada en la estación de trabajo, el enrutador de mi ISP no incluye la dirección IP local correcta para mi estación de trabajo Linux en la lista de clientes conectados. A veces es correcto, pero a veces parece una IP aleatoria.

Si agrego la siguiente ruta: EXTERNAL_IP a través de 192.168.0.1 dev eth0 (donde EXTERNAL_IP es WAN ip), entonces puedo acceder al servidor web en la red local, pero aún no desde otra red.

Respuesta1

No hay nada malo en tu configuración, el error está en tu ruta.

Si tu servidor funcionaamboscomo servidor webyComo cliente VPN para un servidor remoto, cualquier usuario que intente acceder al servidor web recibirá una respuesta del servidor VPN remoto (nodirectamente desde el servidor web) porque la tabla de enrutamiento de su servidor local le indica que enrutetodoa través del servidor OpenVPN remoto. Cualquier máquina que envíe una consulta al sitio A pero reciba una respuesta de B descarta automáticamente la respuesta, por razones obvias de seguridad. Por lo tanto, el servidor web se vuelve inaccesible.

Hay muchas, muchas maneras de resolver su problema. Mi favorito sería dejar el servidor web intacto y mover el cliente OpenVPN a un contenedor de Linux alojado en el mismo servidor, luego cambiar la configuración de su enrutador a su servidor DHCP/dnsmasq (lo que sea) para enrutar todas las comunicaciones LAN a través del contenedor de Linux. . Es mucho más fácil de lo que parece.

Otra posibilidad es establecerdostablas de enrutamiento, dejando la principal para los clientes OpenVPN, mientras configura la segunda comoidénticoa la tabla de enrutamiento que tienes cuando la VPN estánoactivo y luego instruir a su núcleo para que enrute todo el tráfico que se origina en el servidor (¡en sí mismo!) a través de esta segunda tabla de enrutamiento. El tráfico restante (el que se origina en su LAN y que desea enrutar a través de OpenVPN) utilizará de forma predeterminada la tabla de enrutamiento principal.

Esto también es bastante fácil de hacer, puedes encontraraquíuna excelente y muy breve introducción a Linuxpolítica(ofuente) enrutamiento.

O podría decidir alojar su servidor web en la misma máquina que aloja su servidor OpenVPN, lo que también resolvería su problema. En este caso, lo más sencillo seríaespejosu sitio web local en el servidor remoto, para que pueda realizar cualquier cambio localmente.

La elección es realmente toda tuya.

información relacionada