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
Kod: Zaznacz cały
nano /etc/ipsec.conf
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
Kod: Zaznacz cały
nano /etc/ipsec.secrets
Kod: Zaznacz cały
: PSK "haslo_psk"
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
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
1. tworzymy plik: forward.sh
Kod: Zaznacz cały
nano /etc/init.d/forward.sh
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
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
Kod: Zaznacz cały
reboot
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