logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Open vpn łączenie sieci + dostęp z internetu do klientów vpn

helios128 10 Kwi 2019 22:48 1791 6
  • #1 17898515
    helios128
    Poziom 9  
    Posty: 13
    Ocena: 2
    Witam
    Chce zestawić dwie sieci za pomocą open vpn tylko trochę nie klasycznie.
    Zestawiłem połączenie vpn pomiędzy dwoma ruterami ( dwa różne internety) w trybie TAP. Efekt jest taki że komputery w obu sieciach widzą się nawzajem - jest dobrze. W obu sieciach mam postawione serwery. Jeden serwer w sieci nazwijmy to A (ta sama sieć gdzie jest serwer vpn) nasłuchuje na porcie 8080. Drugi serwer jest w sieci B ( ta sieć jest klientem vpn) nasłuchuje na porcie 8383.
    Będąc w sieci A lub B mam dostęp do obu serwerów - nie ma żadnego kłopotu. Jak łączę się z jeszcze innego internetu ( np smartfon ) to :
    a) wpisując adres publiczny - otwiera się strona logowania do rutera
    b) wpisując adres publiczny i port 8080 otwiera się serwer w sieci A
    c) wpisując adres publiczny i port 8383 mam brak połączenia

    Wygląda na to że coś blokuje przepływ.
    lokalnie wygląda to tak:
    ruter A ma IP 192.168.1.1
    ruter B ma IP 192.168.1.2
    serwer A 192.168.1.10 (port 8080)
    serwer B 192.168.1.11 (port 8383)
    Port 8383 na ruterze A przekierowany , firewall wyłączony, a jak był włączony to było
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -F POSTROUTING
    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

    Sieć A ma publiczny adres IP, w ruterze mogę ustawić co zechce.
    Sieć B to sieć bez publicznego IP i bez możliwości przekierowania portów.
    Idea jest taka - chce wejść z internetu na ruter A , a on ma pozwolić na wejście na ruter B (i do sieci za ruterem B)

    Jestem otwarty na każdą propozycję.
  • #2 17903231
    przeqpiciel
    Specjalista Sieci, Internet
    Posty: 2499
    Pomógł: 285
    Ocena: 238
    Zacząłbym od tego aby sieci miały swoją własną adresację.
    A - 192.168.1.0/24
    B - 192.168.2.0/24

    Coś mi świta, ale nie wiem w któym kościele.
    Odnosząc się do opisu znajdującego się na tej stronie, jest napisane, że
    Cytat:
    W trybie routowania (tun) tworzona jest osobna prywatna podsieć, która łączy się z siecią po stronie serwera, ustalając statyczny routing. Po podłączeniu otrzymujemy adres z innej podsieci, niż ta docelowa, przez co przynależymy do osobnej domeny rozgłoszeniowej.
    A jak dobrze pamiętam domena rozgłoszeniowa kończy się na routerze. Co za tym idzie, że masz błędnie skonfigurowaną infrastrukturę.
    Jeżeli zmienisz adresy sieci, w konfiguracji OpenVPN'a dodasz static route, że sieć B jest osiągalna przez router A i wtedy pakiety powinny zacząć Tobie latać z urządzenia mobilnego po VPN do routera, gdzie byłby rutowane do sieci B
  • #3 17903587
    helios128
    Poziom 9  
    Posty: 13
    Ocena: 2
    Cytat:
    Zacząłbym od tego aby sieci miały swoją własną adresację.
    A - 192.168.1.0/24
    B - 192.168.2.0/24


    Jeśli oba rutery są w dwóch różnych podsieciach - to klient widzi serwer openvpn ale nic więcej. Serwer open vpn nie może pingować do sieci klienta.
  • #4 17903740
    przeqpiciel
    Specjalista Sieci, Internet
    Posty: 2499
    Pomógł: 285
    Ocena: 238
    a trasy statyczne w takim przypadku wysylasz ? co pokazuje ip route z klienta gdy jest zapięty? co możesz pingować gdy masz połączenie VPN, czy wtedy jesteś w stanie z routera router spingować po wewnętrznym jak i VPNowym adresie ?
  • #5 17904620
    helios128
    Poziom 9  
    Posty: 13
    Ocena: 2
    zrobiłem na świerzo konfiguracje
    serwer ma adres 192.168.2.1
    klient 192.168.1.2
    to standardowa konfiguracja bez żadnych udziwnień z mojej strony - po prostu automatyczna konfiguracja serwera.


    Ping z klienata na serwer vpn
    Pinging 192.168.2.1 with 32 bytes of data:
    Reply from 192.168.2.1: bytes=32 time=204ms TTL=63
    Reply from 192.168.2.1: bytes=32 time=147ms TTL=63
    Reply from 192.168.2.1: bytes=32 time=370ms TTL=63
    Reply from 192.168.2.1: bytes=32 time=109ms TTL=63

    ping z serwera na kleinta 192.168.1.2 lub dowolny host z sieci 192.168.1.x = brak

    tablica rutingu z hosta za klientem vpn

    Network Destination Netmask Gateway Interface Metric
    0.0.0.0 0.0.0.0 192.168.1.2 192.168.1.40 50
    127.0.0.0 255.0.0.0 On-link 127.0.0.1 331
    127.0.0.1 255.255.255.255 On-link 127.0.0.1 331
    127.255.255.255 255.255.255.255 On-link 127.0.0.1 331
    192.168.1.0 255.255.255.0 On-link 192.168.1.40 306
    192.168.1.40 255.255.255.255 On-link 192.168.1.40 306
    192.168.1.255 255.255.255.255 On-link 192.168.1.40 306
    224.0.0.0 240.0.0.0 On-link 127.0.0.1 331
    224.0.0.0 240.0.0.0 On-link 192.168.1.40 306
    255.255.255.255 255.255.255.255 On-link 127.0.0.1 331
    255.255.255.255 255.255.255.255 On-link 192.168.1.40 306

    Log z klienta przy połaczeniu do serwera

    Apr 13 21:39:55 vpnclient5[2695]: PUSH: Received control message: 'PUSH_REPLY,route 192.168.2.0 255.255.255.0 vpn_gateway 500,route 10.8.0.0 255.255.255.0,topology net30,ping 15,ping-restart 60,ifconfig 10.8.0.10 10.8.0.9'
    Apr 13 21:39:55 vpnclient5[2695]: OPTIONS IMPORT: --ifconfig/up options modified
    Apr 13 21:39:55 vpnclient5[2695]: OPTIONS IMPORT: route options modified
    Apr 13 21:39:55 vpnclient5[2695]: TUN/TAP device tun15 opened
    Apr 13 21:39:55 vpnclient5[2695]: TUN/TAP TX queue length set to 100
    Apr 13 21:39:55 vpnclient5[2695]: do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
    Apr 13 21:39:55 vpnclient5[2695]: /sbin/ifconfig tun15 10.8.0.10 pointopoint 10.8.0.9 mtu 1500
    Apr 13 21:39:55 vpnclient5[2695]: /etc/openvpn/ovpn-up 5 tun15 1500 1558 10.8.0.10 10.8.0.9 init
    Apr 13 21:39:56 vpnclient5[2695]: /sbin/route add -net 192.168.2.0 netmask 255.255.255.0 metric 500 gw 10.8.0.9
    Apr 13 21:39:56 vpnclient5[2695]: /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.9

    tablica rutingu klietna
    Destination Gateway Genmask Flags Metric Ref Use Type Iface
    192.168.8.1 * 255.255.255.255 UH 0 0 0 WAN1 eth2
    10.8.0.9 * 255.255.255.255 UH 0 0 0 tun15
    192.168.7.0 * 255.255.255.0 U 0 0 0 WAN0 eth0
    192.168.2.0 10.8.0.9 255.255.255.0 UG 500 0 0 tun15
    10.8.0.0 10.8.0.9 255.255.255.0 UG 0 0 0 tun15
    192.168.1.0 * 255.255.255.0 U 0 0 0 LAN br0
    192.168.8.0 * 255.255.255.0 U 0 0 0 WAN1 eth2
    default 192.168.8.1 0.0.0.0 UG 0 0 0 WAN1 eth2


    192.168.7.0 - to internet - klient jest za natem i nie ma publicznego adresu (czyli ruter za ruterem)


    Serwer open vpn

    # Tunnel options
    proto udp
    multihome
    port 1194
    dev tun21
    sndbuf 0
    rcvbuf 0
    keepalive 15 60
    daemon vpnserver1
    verb 3
    status-version 2
    status status 10
    comp-lzo adaptive
    plugin /usr/lib/openvpn-plugin-auth-pam.so openvpn

    # Server Mode
    server 10.8.0.0 255.255.255.0
    client-config-dir ccd
    client-to-client
    duplicate-cn
    push "route 192.168.2.0 255.255.255.0 vpn_gateway 500"
    push "redirect-gateway def1"

    # Data Channel Encryption Options
    cipher AES-128-CBC

    # TLS Mode Options
    ca ca.crt
    dh dh.pem
    cert server.crt
    key server.key

    # Custom Configuration
    #client-to-client
    #push "route 192.168.2.0 255.255.255.0"
    #topology subnet
    #route 192.168.2.0 255.255.255.0
    #push "route 10.8.0.0 255.255.255.0"
    #route 10.8.0.0 255.255.255.0


    Klient open vpn
    remote adres publiczny serwera 1194
    float
    nobind
    proto udp
    dev tun
    sndbuf 0
    rcvbuf 0
    keepalive 15 60
    comp-lzo adaptive
    auth-user-pass
    client
    cipher AES-128-CBC
    ns-cert-type server



    Serwer route

    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    xxx.xxx.x.1 * 255.255.255.255 UH 0 0 0 vlan2
    239.255.255.250 * 255.255.255.255 UH 0 0 0 br0
    192.168.2.0 * 255.255.255.0 U 0 0 0 br0
    10.8.0.0 * 255.255.255.0 U 0 0 0 tun21
    xxx.xxx.x.0 * 255.255.252.0 U 0 0 0 vlan2
    127.0.0.0 * 255.0.0.0 U 0 0 0 lo
    default xxx.xxx.xx.x 0.0.0.0 UG 0 0 0 vlan2

    xxx.xxx.xx.1 to publiczny adres serwera vpn


    Serwer iptable
    iptables -t nat --list

    Chain PREROUTING (policy ACCEPT)
    target prot opt source destination
    ACCEPT udp -- anywhere anywhere udp dpt:1194
    VSERVER all -- anywhere xxx.xxx.xxx.xxx

    Chain INPUT (policy ACCEPT)
    target prot opt source destination

    Chain OUTPUT (policy ACCEPT)
    target prot opt source destination

    Chain POSTROUTING (policy ACCEPT)
    target prot opt source destination
    MASQUERADE all -- !xxx.xxx.xxx.xxx anywhere
    MASQUERADE all -- 192.168.2.0/24 192.168.2.0/24

    Chain LOCALSRV (0 references)
    target prot opt source destination

    Chain PCREDIRECT (0 references)
    target prot opt source destination

    Chain VSERVER (1 references)
    target prot opt source destination
    DNAT tcp -- anywhere anywhere tcp dpt:8383 to:192.168.2.1:80
    DNAT tcp -- anywhere anywhere tcp dpt:9090 to:10.8.0.3:8080
    VUPNP all -- anywhere anywhere

    Chain VUPNP (1 references)
    target prot opt source destination

    Chain YADNS (0 references)
    target prot opt source destination
  • #6 17904725
    przeqpiciel
    Specjalista Sieci, Internet
    Posty: 2499
    Pomógł: 285
    Ocena: 238
    serwer jest na routerze czy to odrebna maszyna ?
    tablica routeingu z klienta pokazuje, że sieć 192.168.1.0 255.255.255.0 On-link 192.168.1.40 306 jest podłączona bezpośrednio, uważam że klient znajduje się już w tej sieci, którą chcesz pingować, czyli pingi "zostają" po stronie klienta a nie są routowane do VPN'a
  • #7 17905138
    helios128
    Poziom 9  
    Posty: 13
    Ocena: 2
    Serwer jest na ruterze. Ten ruting co opisales jest z kompa o ip 192.168.1.40 podpietego do rutera o adresie 192.168.1.2 wiec nic dziwnego ze nalezy juz do tej sieci.
    Problem jest taki ze z serwera o adresie 192.168.2.1 nie moge pingac sieci 192.168.1.0

Podsumowanie tematu

✨ Użytkownik skonfigurował połączenie VPN między dwoma routerami w trybie TAP, umożliwiającym wzajemne widzenie się komputerów w dwóch różnych sieciach. Serwer w sieci A nasłuchuje na porcie 8080, a serwer w sieci B na porcie 8383. Użytkownik ma dostęp do obu serwerów lokalnie, ale napotyka problemy z dostępem do serwera w sieci B z zewnętrznego połączenia (np. z telefonu). Wskazano, że problem może wynikać z błędnej konfiguracji adresacji sieci oraz braku odpowiednich tras statycznych, co uniemożliwia pingowanie z serwera w sieci B do urządzeń w sieci A. Sugerowane rozwiązania obejmują zmianę adresacji sieci oraz dodanie tras statycznych w konfiguracji OpenVPN.
Wygenerowane przez model językowy.
REKLAMA