Arch Linux VPN + L2TP: la conexión establecida a Internet funciona pero no hay acceso a la red interna

Arch Linux VPN + L2TP: la conexión establecida a Internet funciona pero no hay acceso a la red interna

Configuré VPN de acuerdo conesteinstrucción (tengo Linux), todo está bien, se establece la conexión, la dirección IP cambia de la mía a EE. UU., pero los recursos que deberían estar disponibles mediante VPN aún no están disponibles.

Configure la misma conexión según las mismas instrucciones, pero solo para Windows 10: todo funciona y hay recursos disponibles. En Linux, el tráfico a estos recursos no pasa por el servidor VPN, pero todavía no pude entender cómo solucionarlo, porque no soy fuerte en esto. Información de mis sistemas:

$ cat /etc/*release
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://www.archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
LOGO=archlinux

Mi suposición es que el tráfico pasa por alto el servidor VPN y pasa por la puerta de enlace predeterminada.

Esto es lo que muestra nslookup

$nslookup confluence.internal.mycompany.com
Server:    8.8.8.8
Address:  8.8.8.8#53

Creo que tiene sentido intentarloEnrutamiento, pero no soy bueno en la administración de redes y no sé cómo determinar la dirección de subconjunto correcta. Por ejemplo aaa.internal.mycompany.com, bbb.internal.mycompany.com, ccc.internal.mycompany.com, etc. Quiero dirigir el tráfico a aaa,bbb,ccc a través de la VPN, ¿cómo se hace?

Aquí también hay información de tcpdump que podría ayudar:

13:57:39.163855 IP 172.16.203.173.41032 > 8.8.8.8.53: 44676+ A? confluence.internal.mycompnay.com. (50)

00:06:11.353064 IP 172.16.203.173.39547 > 8.8.4.4.53: 13730+ A? confluence.internal.mycompany.com. (50)
00:06:11.484299 IP 172.217.1.46.443 > 172.16.203.173.35770: Flags [P.], seq 1:40, ack 39, win 269, options [nop,nop,TS val 1580986377 ecr 1105408237], length 39
00:06:11.484400 IP 172.16.203.173.35770 > 172.217.1.46.443: Flags [.], ack 40, win 502, options [nop,nop,TS val 1105408387 ecr 1580986377], length 0
00:06:11.525396 IP 8.8.4.4.53 > 172.16.203.173.39547: 13730 NXDomain 0/1/0 (113)
00:06:11.525562 IP 172.16.203.173.39547 > 8.8.4.4.53: 32697+ AAAA? confluence.internal.mycompany.com. (50)
00:06:11.697698 IP 8.8.4.4.53 > 172.16.203.173.39547: 32697 NXDomain 0/1/0 (113)
00:06:11.698212 IP 172.16.203.173.48215 > 8.8.8.8.53: 13821+ A? confluence.internal.mycompany.com. (50)
00:06:11.698276 IP 172.16.203.173.48215 > 8.8.8.8.53: 19952+ AAAA? confluence.internal.mycompany.com. (50)
00:06:11.859694 IP 8.8.8.8.53 > 172.16.203.173.48215: 13821 NXDomain 0/1/0 (113)
00:06:11.872141 IP 8.8.8.8.53 > 172.16.203.173.48215: 19952 NXDomain 0/1/0 (113)
00:06:11.873004 IP 172.16.203.173.49336 > 8.8.8.8.53: 36616+ A? confluence.internal.mycompany.com. (50)
00:06:12.034300 IP 8.8.8.8.53 > 172.16.203.173.49336: 36616 NXDomain 0/1/0 (113)
00:06:12.034472 IP 172.16.203.173.49336 > 8.8.8.8.53: 34317+ AAAA? confluence.internal.mycompany.com. (50)
00:06:12.195798 IP 172.16.203.173.33819 > 8.8.8.8.53: 61396+ A? translate.google.com. (38)
00:06:12.197393 IP 172.16.203.173.49098 > 216.58.192.206.443: Flags [P.], seq 2343637690:2343638004, ack 443265426, win 11148, options [nop,nop,TS val 2103047503 ecr 1587334695], length 314
00:06:12.209082 IP 8.8.8.8.53 > 172.16.203.173.49336: 34317 NXDomain 0/1/0 (113)
00:06:12.209542 IP 172.16.203.173.54539 > 8.8.8.8.53: 62574+ A? confluence.internal.mycompany.com. (50)
00:06:12.209658 IP 172.16.203.173.54539 > 8.8.8.8.53: 56421+ AAAA? confluence.internal.mycompany.com. (50)
00:06:12.334328 IP 172.16.203.173.56738 > 172.217.6.2.443: Flags [P.], seq 1835541891:1835541930, ack 3334813663, win 502, options [nop,nop,TS val 324800469 ecr 1444482233], length 39
00:06:12.334456 IP 172.16.203.173.56978 > 216.58.192.130.443: Flags [P.], seq 712232265:712232304, ack 2284899148, win 502, options [nop,nop,TS val 1560658341 ecr 3970133710], length 39
00:06:12.334525 IP 172.16.203.173.56994 > 172.217.4.37.443: Flags [P.], seq 175676537:175676576, ack 336787689, win 24353, options [nop,nop,TS val 525175697 ecr 3037756038], length 39
00:06:12.334592 IP 172.16.203.173.45234 > 172.217.8.195.443: Flags [P.], seq 840900759:840900798, ack 624615808, win 1323, options [nop,nop,TS val 2439520764 ecr 528658266], length 39
00:06:12.348814 IP 216.58.192.206.443 > 172.16.203.173.49098: Flags [.], ack 314, win 1050, options [nop,nop,TS val 1587377915 ecr 2103047503], length 0
00:06:12.358256 IP 8.8.8.8.53 > 172.16.203.173.33819: 61396 2/0/0 CNAME www3.l.google.com., A 216.58.192.206 (75)
00:06:12.358483 IP 172.16.203.173.39682 > 8.8.8.8.53: 10206+ AAAA? translate.google.com. (38)
00:06:12.370884 IP 8.8.8.8.53 > 172.16.203.173.54539: 56421 NXDomain 0/1/0 (113)
00:06:12.382054 IP 8.8.8.8.53 > 172.16.203.173.54539: 62574 NXDomain 0/1/0 (113)

¿Tengo razón en que no es correcto? El tráfico no debería pasar por el DNS de Google, ¿verdad?

Esto es lo que pasa netstat -rcon VPN desactivada:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    600    0        0 wlp2s0
192.168.0.0     0.0.0.0         255.255.255.0   U     600    0        0 wlp2s0

con vpn activado:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     500    0        0 ppp0
0.0.0.0         192.168.0.1     0.0.0.0         UG    600    0        0 wlp2s0
192.0.2.1       0.0.0.0         255.255.255.255 UH    500    0        0 ppp0
192.168.0.0     0.0.0.0         255.255.255.0   U     600    0        0 wlp2s0
192.168.0.1     0.0.0.0         255.255.255.255 UH    600    0        0 wlp2s0
208.100.17.99   192.168.0.1     255.255.255.255 UGH   600    0        0 wlp2s0

Lo intentéestepero falló: perdí la conexión a Internet

Aquí está mi configuración de VPN en el administrador de red:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

¿Cómo puedo solucionarlo?

Respuesta1

Quiero dirigir el tráfico a aaa,bbb,ccc a través de la VPN, ¿cómo lo hago?

Supongo que se trata de direcciones locales (como afirma en el título), por ejemplo 192.168.0.2. Los paquetes a esa dirección no pasan por la interfaz del túnel porque tiene una ruta más específica que la ruta predeterminada que apunta a wlp2s0:

192.168.0.1     0.0.0.0         255.255.255.255 UH    600    0        0 wlp2s0

Con el enrutamiento estático, las rutas más específicas siempre "ganan". Para solucionar esto puedes hacer lo siguiente:

  1. Eliminar la ruta actual usandoip route delete 192.168.0.1
  2. Agregue una nueva ruta a ese prefijo (que direcciona los hosts aaa,bbb,cc) con la interfaz ( dev) apuntando a la interfaz del túnel. Por ejemplo: ip route add 192.168.0.1/24 via $IP_OF_TUNNELGATEWAY dev ppp0

Respuesta2

Finalmente, resolví mi problema. Es una larga historia. La causa principal es la configuración DNS incorrecta como resultado de que las direcciones internas (detrás del servidor VPN) no se pudieron resolver correctamente. Una suposición de por qué sucedió es la siguiente. Cada vez que me conecto a una VPN ocurre la siguiente cadena de eventos:

  1. -> administrador de red

    ->cisne fuerteppp0

    -> dhclient ppp0 (172.16.203.173, 192.0.2.1, dns1=xyz11, dns2=xyz12) -> resolvconf

    ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc fq_codel estado DESCONOCIDO grupo predeterminado qlen 3 enlace/ppp inet 172.16.203.173 peer 192.0.2.1/32 alcance global ppp0 valid_lft para siempre preferido_lft para siempre

    -> dns1=xyz11, dns2=xyz12 a /etc/resolv.conf

Las direcciones DNS se tomaron de la configuración de la conexión VPN (ver captura de pantalla arriba).

  1. default via ppp0 metric 500Se agregó una nueva ruta a la tabla de enrutamiento. Su prioridad es menor que la prioridad predeterminada enp3s0, 0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 enp3s0como resultado, no hay flujo de tráfico a través del ppp0.primer problema

  2. /etc/resolv.conf que contiene dns1 y dns2 es anulado por el administrador de red en algún momento con los dns predeterminados de Google 8.8.8.8 y 8.8.4.4.Segundo problema

Para solucionar el segundo problema que instalédnsmasqque sirve como proxy y maneja dns por sí mismo. Tuve que desinstalar pacman -R openresolv netctlel cual cambió /etc/resolv.confy no contiene la única dirección de dnsmasq:

# Generated by NetworkManager
search internal.mycompany.com
nameserver 127.0.0.1
options edns0 trust-ad

Para decir que el administrador de red usa dnsmarq, también agregué esta línea en /etc/NetworkManager/conf.d/dns.conf:

[main]
dns=dnsmasq

Para solucionar el primer problema en NetworkManager, agregué una ruta más específica que tiene mayor prioridad que la ruta predeterminada enp3s0:

10.Y.X.Z    192.0.2.1       255.255.255.255 UGH   500    0        0 ppp0

Eso es todo. todo el tráfico hacia los recursos internos fluye a través de la VPN, el resto del tráfico fluye como antes.

Además, negué cualquier sobrescritura de /etc/resolve.conf

chattr +i /etc/resolv.conf ((to protect the file from write))

chattr -i /etc/resolv.conf ((para desproteger, modo predeterminado)) - para retroceder

Espero que sea útil para alguien.

información relacionada