Serwer StrongSwan z klientami Windows 7 nie kieruje ruchu


Mam serwer z systemem strongSwan na instancji Amazon EC2, z którym chcę się połączyć za pomocą systemu Windows 7. Serwer strongSwan znajduje się w sieci prywatnej (IP 172.16.1.15 w sieci 172.16.0.0/17) i ruch jest do niego przekierowywany jako prywatny adres z publicznego adresu IP jest tym, co Amazon nazywa „elastycznym adresem IP”.
Chcę przypisać adresy klientów z innej prywatnej podsieci - 10.127.0.0/22 ​​- i kierować ruch między dwiema prywatnymi podsieciami. Zauważ, że podsieć 172.16.0.0/17 jest zarządzana przez Amazon, ale podsieć 10.127.0.0/22 ​​obecnie nie jest zarządzana przez nic (poza moim ipsec.conf).
Moi klienci Windows łączą się z VPN, ale nie mogą połączyć się z żadnym hostem w sieci prywatnej. Moja teoria mówi, że ma to związek z problemem routingu klienta lub brakiem niektórych wywołań iptables na serwerze, ale nie jestem dobry w żadnej domenie i utknąłem.
  • Zainstalowałem Ubuntu 12.04 i strongswan-ikev2 na moim serwerze.
  •          ipsec version       
    raporty
             Linux strongSwan U4.5.2/K3.2.0-52-virtual       
  • Zauważ, że zarówno klient, jak i serwer znajdują się za NAT (klient, ponieważ znajduje się w lokalnej sieci biurowej i serwer, ponieważ znajduje się w chmurze Amazon). Mam odblokowane porty UDP 500 i 4500 na panelu kontrolnym Amazon i zaporze klienta.
  • Mam włączone przekazywanie IPv4 na serwerze:
             echo 1 >/proc/sys/net/ipv4/ip_forward       
  • Zalogowałem się do interfejsu administratora Amazon VPC dla podsieci 172.16.0.0/17 i zezwoliłem na cały ruch do/z podsieci 10.127.0.0/23.
  • To jest/etc/ipsec.conf:
    config setup        plutostart=noconn %default        keyexchange=ikev2        dpdaction=clear        dpddelay=300s        rekey=noconn dlpvpn        left=172.16.1.15        leftauth=pubkey        leftcert=openssl-cert.pem        leftid=vpn.example.com        leftsubnet=172.16.0.0/17        right=%any        rightsourceip=10.127.0.0/22        rightauth=eap-mschapv2        rightsendcert=never        eap_identity=%any        auto=add
  • To jest/etc/ipsec.secrets:
    : RSA openssl-key.rsaTESTDOMAIN\testuser : EAP "testpassword"
  • To jest/etc/strongswan.conf:
    charon {        threads = 16        dns1 = 172.16.3.246}
  • Chcę używać dzielonego tunelowania, w którym tylko ruch sieci prywatnej 172.16.0.0/17 przechodzi przez VPN, a ruch związany z Internetem korzysta z lokalnej bramy klienta. Aby to zrobić, odznaczyłem pole wyboru Użyj domyślnej bramy w sieci zdalnej i zaznaczyłem pole wyboru Wyłącz dodawanie tras na podstawie klas w kliencie Windows.
  • Połączenie zakończone pomyślnie.
               ipconfig/all         
    przedstawia:
    PPP adapter strongswan:      Description . . . . . . . . . . . : strongswan      IPv4 Address. . . . . . . . . . . : 10.127.0.1(Preferred)      Subnet Mask . . . . . . . . . . . : 255.255.255.255      Default Gateway . . . . . . . . . :      DNS Servers . . . . . . . . . . . : 172.16.3.246
  • Jednak nie mogę pingować żadnego hosta w sieci 172.16.0.0/17. W rzeczywistości, jeśli wykonam nslookup, spróbuje skontaktować się z serwerem DNS określonym w strongswan.conf, ale Wireshark na tym serwerze DNS pokazuje, że nic nie ma. Nie mogę nawet pingować adresu 172.16.1.15 samego serwera strongSwan.
  • O ile rozumiem, reguły routingu należy dodać ręcznie w systemie Windows. Czym jednak powinny być Jedyną odpowiedzią, jaką mogłem wymyślić, jest dodanie trasy dla sieci 172.16.0.0/17, aby użyć adresu serwera VPN jako bramy za pomocą polecenia
               route add 172.16.0.0/17 172.16.1.15 if 45         
    ... Jednak to niczego nie zmieniło - ruch z mojego klienta VPN nie był kierowany do sieci 172.16.0.0/17.

Każda pomoc będzie mile widziana. Podziękować.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Wreszcie to działa, dzięki pomocy @ ecdsa tutaj i pewnej pomocy z kanału irc #strongswan.
  • Reguły routingu mojego klienta VPN były niekompletne. Musiałem dodać obie te reguły:
    route add 172.16.1.15/32 10.127.0.1route add 172.16.0.0/17 172.16.1.15
    Pierwsza z nich dodaje trasę dla prywatnego adresu IP serwera VPN, określając adres IP mojego klienta przypisany przez VPN jako bramę do niego (
                 route print           
    wyświetli to jako
                 on-link           
    AKA lokalnie dla tego interfejsu). Drugi robi to, co próbowałem zrobić z regułą trasy w moim pytaniu - dodaje trasę dla całej sieci prywatnej, określając serwer VPN jako bramę.
  • Musiałem wskazać
                 leftsubnet=172.16.0.0/17           
    na serwerze, w przeciwnym razie zasady IPsec nie zezwalają na ruch do podsieci niezależnie od tras.
  • Musiałem wskazać
                 leftfirewall=yes           
    na serwerze, aby wprowadzić odpowiednie reguły do ​​iptables.
  • Musiałem wyłączyć „sprawdzanie źródła/miejsca docelowego” w mojej instancji Amazon. Chociaż zezwoliłem na ruch z mojej podsieci VPN do/z grupy zabezpieczeń na pulpicie nawigacyjnym Amazon VPC nie zauważyłem, że jest jeszcze jeden parametr. Na pulpicie nawigacyjnym EC2 możesz kliknąć instancję prawym przyciskiem myszy i przejść do opcji Zmień źródło/miejsce docelowe. To sprawdzenie jest domyślnie włączone i uniemożliwia mojemu ruchowi VPN opuszczanie serwera VPN (i zapobiega przedostawaniu się ruchu z innych hostów VPC do mojej podsieci VPN do serwera VPN).

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się