VPN l2tp/IPsec server działa na Ubuntu 16.04 ale na 18 i 20 już nie

Instalacja i konfiguracja oprogramowania sieciowego.
ckarol86
Piegowaty Guziec
Piegowaty Guziec
Posty: 3
Rejestracja: 12 gru 2020, 12:07
Płeć: Mężczyzna
Wersja Ubuntu: 16.04

VPN l2tp/IPsec server działa na Ubuntu 16.04 ale na 18 i 20 już nie

Post autor: ckarol86 »

Cześć,
W oparciu o różne źródła:
https://kayama.dp.ua/blog/ubuntu-16-04- ... -serv.html
https://blog.gabrielzima.pl/tag/n2n/
utworzyłem sobie instrukcję jak krok po kroku uruchomić zewnętrzne IP (wystawić na świat jakieś usługi) za pomocą VPSa i VPNa l2tp/IPsec za pomocą programów: 'strongswan' oraz 'xl2tpd'.

Całość działa świetnie po przeklejeniu komend na Ubuntu 16.04, nie muszę nic więcej konfigurować poza tym co udostępniam poniżej.

Problem w tym że takie rozwiązanie nie działa na Ubuntu 18 ani na 20.
Czy ktoś zna rozwiązanie dlaczego? Co takiego się zmieniło w 18 i 20?


Cześć,
W oparciu o różne źródła:
https://kayama.dp.ua/blog/ubuntu-16-04- ... -serv.html
https://blog.gabrielzima.pl/tag/n2n/
utworzyłem sobie instrukcję jak krok po kroku uruchomić zewnętrzne IP (wystawić na świat jakieś usługi) za pomocą VPSa i VPNa l2tp/IPsec za pomocą programów: 'strongswan' oraz 'xl2tpd'.

Całość działa świetnie po przeklejeniu komend na Ubuntu 16.04, nie muszę nic więcej konfigurować poza tym co udostępniam poniżej.

Problem w tym że takie rozwiązanie nie działa na Ubuntu 18 ani na 20.
Czy ktoś zna rozwiązanie dlaczego? Co takiego się zmieniło w 18 i 20?


Dołączam listę komend i opis (mógłby to admin gdzieś wrzucić jako poradnik, jest sprawdzone i działa).


Część A po stronie VPSa - konfiguracja serwera VPN:


1. na VPSie instalujemy Ubuntu 16.04, następnie instalujemy programy: 'strongswan' i 'xl2tpd'

Kod: Zaznacz cały

apt update
apt -y install strongswan xl2tpd
2. edytujemy plik: ipsec.conf

Kod: Zaznacz cały

nano /etc/ipsec.conf
usuwamy zawartość i wklejamy:

Kod: Zaznacz cały

conn L2TP-IPSEC
    authby=secret
    rekey=no
    keyingtries=3
    type=transport
    esp=aes128-sha1
    ike=aes128-sha-modp1024
    ikelifetime=8h
    keylife=1h
    left= 77.44.33.22 # <<< tutaj wpisujemy publiczen IP VPSa
    leftprotoport=17/1701
    right=%any
    rightprotoport=%any/%any
    rightsubnet=0.0.0.0/0
    auto=add
    dpddelay=30
    dpdtimeout=120
    dpdaction=clear
    #force all to be nat'ed. because of iOS
    forceencaps=yes
3. edytujemy plik: ipsec.secrets

Kod: Zaznacz cały

nano /etc/ipsec.secrets
usuwamy zawartość i wklejamy linikę jak niżej w cudzysłowie wpisujemy hasło (niektóre znaki specjalne w haśle są nieakceptowalne):

Kod: Zaznacz cały

: PSK "haslo_psk"
4. edytujemy plik: options.xl2tpd

Kod: Zaznacz cały

nano /etc/ppp/options.xl2tpd

Kod: Zaznacz cały

require-mschap-v2
refuse-mschap
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
idle 1800
mtu 1410
mru 1410
connect-delay 5000
lock
hide-password
local
#debug
modem
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
5. edytujemy plik: xl2tpd.conf

Kod: Zaznacz cały

nano /etc/xl2tpd/xl2tpd.conf

Kod: Zaznacz cały

[global]
ipsec saref = no
debug tunnel = no
debug avp = no
debug network = no
debug state = no
access control = no
rand source = dev
port = 1701
auth file = /etc/ppp/chap-secrets

[lns default]
ip range = 192.168.1.10-192.168.122.20
local ip = 192.168.1.1
require authentication = yes
name = l2tp
pass peer = yes
ppp debug = no
length bit = yes
refuse pap = yes
refuse chap = yes
pppoptfile = /etc/ppp/options.xl2tpd

6. edytujemy plik: chap-secrets

Kod: Zaznacz cały

nano /etc/ppp/chap-secrets

Kod: Zaznacz cały

uzytkownik_1      l2tpd   SXt7jm5sY5SYUH		10.2.0.2
uzytkownik_2      l2tpd   983GT834riuysfrf		10.2.0.3
uzytkownik_3      l2tpd   98435ksdflaqe[][p		10.2.0.4

7. restartujemy usługi:

Kod: Zaznacz cały

sudo /etc/init.d/xl2tpd restart
sudo systemctl restart strongswan
Część B, po stronie VPSa - przekierowanie portów:

1. tworzymy plik: forward.sh

Kod: Zaznacz cały

nano /etc/init.d/forward.sh
2. wklejamy zawartość jak niżej
w tym przypadku przekierowujemy ruch z na porcie 443 na urządzenie podłączone do VPNa które ma IP 10.2.0.1.

Kod: Zaznacz cały

#!/bin/bash

sysctl net.ipv4.ip_forward=1


iptables -F
iptables -X
iptables -t nat -X
iptables -t nat -F
iptables -t mangle -F
iptables -t mangle -X

ip route add 192.168.1.0/24 via 192.168.1.1
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.2.0.1:443
2. zmieniamy uprawnienia i dodajemy go to autostartu:

Kod: Zaznacz cały

chmod 755 /etc/init.d/forward.sh
chmod +x /etc/init.d/forward.sh
cd /etc/init.d/
sudo update-rc.d forward.sh defaults
3. restartujemy VPNa

Kod: Zaznacz cały

reboot
Po restarcie przechodzimy do konfiguracji klienta VPN.


Część C, po stronie routera:

1. tworzymy profil klienta VPN na routerze, dysku sieciowym, komputerze itd. z danymi:

przykładowe dane użyte powyżej:

Typ połączenia l2tp/IPsec (z kluczem wstępnym)
PSK: haslo_psk
Login: uzytkownik_1
Hasło: SXt7jm5sY5SYUH
Adres serwera: 77.44.33.22


Dodatkowo dla użytkowników mikrotika dla powyższej konfiguracji trzeba oprócz domyślnych ustawień wpisać:

Kod: Zaznacz cały

/ip ipsec proposal
set default enc-algorithms=aes-256-cbc auth-algorithms=sha1 lifetime=3600s pfs-group=none
Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 4707
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: x86_64

Re: VPN l2tp/IPsec server działa na Ubuntu 16.04 ale na 18 i 20 już nie

Post autor: jacekalex »

Miej logi i patrzaj w logi.

Poza tym Ipsec nie rozumie trybu klient-serwer tylko strona lewa i prawa.

Jak kiedyś spróbujesz połączyć się z tym VPN np przez LTE z sieci z NAT, np mam taką w A2mobile,
to prędzej własne uszy obgryziesz, niż się Ipseciem połączysz.

Do VPN bierz lepiej od razu usługę VPN typu klient <=> serwer, czyli OpenVPN albo OpenSSH.
Jest też nowy, "jeszcze ciepły" ale też działający w układzie klient<=>server tunel VPN Wireguard.
Też dosyć banalny w konfiguracji.

W tych trzech przypadkach tylko serwer musi mieć publiczny IP, klient może być nawet za podwójnym za NAT na dowolnym adresie prywatnym, a całość będzie działać.

OpenVPN jest dosyć prosty w konfiguracji, a OpenSSH jest bajecznie prosty w konfiguracji, używaniu kluczy uwierzytelniających
i zestawianiu tuneli.

To by było na tyle
:craz:
Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux :)
ckarol86
Piegowaty Guziec
Piegowaty Guziec
Posty: 3
Rejestracja: 12 gru 2020, 12:07
Płeć: Mężczyzna
Wersja Ubuntu: 16.04

Re: VPN l2tp/IPsec server działa na Ubuntu 16.04 ale na 18 i 20 już nie

Post autor: ckarol86 »

Zaopatrzę się w logi i prześlę.
Dzięki za uwagi.
Używam takiego rozwiązania od roku i wszystko działa poprawnie - niedługo znika wsparcie dla 16.04 dla chcę to przenieść na 18 - inaczej bym nie ruszał czegoś co działa.
Nie zauważyłem problemów z połączeniem, używam takiej konfiguracji dla LTE z telefonu, z modemu w laptopie i wielu innych miejscach i jest OK.
Dla mnie najważniejszym wymogiem jest brak jakichkolwiek programów klienckich: Android, iOS, Windows - wpisuje adres, login, hasło, klucz i już.
ckarol86
Piegowaty Guziec
Piegowaty Guziec
Posty: 3
Rejestracja: 12 gru 2020, 12:07
Płeć: Mężczyzna
Wersja Ubuntu: 16.04

Re: VPN l2tp/IPsec server działa na Ubuntu 16.04 ale na 18 i 20 już nie

Post autor: ckarol86 »

Udało mi się uruchomić na Ubuntu 18.
Ale po połączeniu do VPNa nie mam Internetu, tzn nie działają strony www, mam do nich pinga na komputerze ale połączenie albo jest nieudane albo czasem mam błąd certyfikatu - tak samo było na Ubuntu 16.04
ODPOWIEDZ

Wróć do „Sieci, serwery, Internet”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość