l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na

Transkrypt

l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach x509 8.09.x , 10.03.x
Jako, że windows wspiera natywnie protokół tunelowania l2tp postanowiłem przedstawić opis
dotyczący zestawienia tunelu szyfrowanego za pomocą tenże protokołu l2tp przy użyciu
programu
xl2tpd po jednej
stronie kamikadze
Openwrt
oraz clientów windows i openwrt jako clienta tenże tunelu. Całe łącze będzie szyfrowane za
pomocą
ipsec
wykorzystując
Racoon
po stronie linux i windows. Wszystko to opierać będzie się na certyfikatach
x509
.
27.07.2010: Testowano na Backfire 10.03.x na routerze wr1043nd.
Konfigurację klientów windows opisałem na końcu mojego artykułu .
Konfigurację OpenWrt jako client l2tp+ipsec przedstawiłem na końcu.
1 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
Założenia
Adres publiczny WAN IP Routera OpenWrt : 218.97.26.22
Adres i maska sieci LAN Routera openWrt : 192.168.1.0/24
Adres ip dns i wins w naszej sieci LAN : 192.168.1.1
Adres Publiczny clienta VPN l2tp : 0.0.0.0/0 - adres nieznany
(0.0.0.0)Windows <=============> (218.97.26.22)openwrt(192.168.1.0/24)
Nazwa DNS od strony Openwrt: l2tp.vpn.dyndns.org
Nazwa DNS od strony clienta : laptop.vpn.dyndns.org
Najlepiej aby były to adresy dns.
2 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
Szyfrowanie przy wykorzystaniu certyfikatów x509 w trybie transportowym ipsec
Aby nie było problemów z komunikacją z za nat dla clienta windows został użyty protokuł vpn
traversal_nat, który potrafi przebić się z za routerów natujących. Aby było to możliwe
przeważnie trzeba zostawić załączone opcje np. w asmax BR-604G:
Enable IPsec pass through on VPN connection
Enable L2TP pass through on VPN connection
Instalacja
Instalujemy pakiety xl2tpd, racoon i ew. openssl
opkg install ipsec-tools libopenssl openssl-util xl2tpd kmod-ppp ppp
opkg install ipsec-tools kmod-crypto-aead kmod-crypto-aes kmod-crypto-authenc
kmod-crypto-core kmod-crypto-des kmod-crypto-hmac kmod-crypto-md5 kmod-crypto-sha1
kmod-ipsec kmod-ipsec4
Od wersji Backfire nie ma modułu kmod-crypto-aead
3 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
musimy jeszcze utworzyć plik ładujący dodatkowe moduły w czasie startu systemu - są
wymagane do poprawnej pracy- UWAGA !!! TYLKO w kamikadze 8.09.x
echo af_key >> /etc/modules.d/10-ipsec
echo ah4 >> /etc/modules.d/10-ipsec
echo esp4 >> /etc/modules.d/10-ipsec
echo xfrm_user >> /etc/modules.d/10-ipsec
echo xfrm4_mode_beet >> /etc/modules.d/10-ipsec
echo xfrm4_mode_transport >> /etc/modules.d/10-ipsec
echo xfrm4_mode_tunnel >> /etc/modules.d/10-ipsec
echo xfrm4_tunnel >> /etc/modules.d/10-ipsec
Konfiguracja po stronie Openwrt pakietu xl2tpd
Pliki konfiguracyjne są umieszczone w następujących katalogach
/etc/xl2tpd/xl2tpd.conf
/etc/xl2tpd/l2tp-secrets
/etc/ppp/options.xl2tpd
/etc/ppp/chap-secrets
4 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
Zawartość pliku /etc/xl2tpd/xl2tpd.conf:
[global] port = 1701 ;
[lns default] ip range = 192.168.222.10-192.168.222.100 local ip = 192.168.222.1 length bit = yes require chap = yes refuse pap = yes require authentication = yes name = VPN l2tp for Formaplan ppp debug = yes pppoptfile = /etc/ppp/options.xl2tpd Adresy ip 192.168.222. są potrzebne do zestawienia połączenia ppp gdzie:
192.168.222.1 - jest to adres ip na serwerze, który zostanie utworzony w czasie startu xl2tpdmoże to być interfjes ppp0
192.168.222.10-192.168.222.100 - zakres adresów przydzielany clientom
Adresy muszą być inne jak te które wykorzystujemy we własnej sieci tak aby nie było kolizji.
5 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
Zawartość pliku /etc/xl2tpd/l2tp-secrets:
Tego pliku nie wykorzystujemy
Zawartość pliku /etc/ppp/options.xl2tpd:
auth
idle 1800
mtu 1460
mru 1460
debug
proxyarp
+mschap-v2
ms-dns 192.168.1.1
ms-wins 192.168.1.1
logfd 2
logfile /var/log/xl2tpd.log
ipcp-accept-local
ipcp-accept-remote
#noccp
nodefaultroute
lock
crtscts
connect-delay 5000
Zawartość pliku /etc/ppp/chap-secrets:
6 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
# Secrets for authentication using CHAP
# client server secret IP addresses
username_vpn * password_vpn 192.168.222.10
Troszkę wyjaśnienia w/w wpisu
Otóż adres ip przy wpisie danego usera oznacza, że ten user zawsze będzie dostawał adres ip
192.168.222.10
Przyda się do kontroli reguł firewalla
Jeśli nie chcemy konkretnych ip możemy wpisać gwiazdkę zamiast adresu ip. i wtedy wiersz
będzie wyglądał następująco:
# Secrets for authentication using CHAP
# client server secret IP addresses
username_vpn * password_vpn *
Hasło podajemy otwartym tekstem.
Jeśli wykorzystujemy Domenę to hasło winno wyglądac wedle shematu:
7 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
# Secrets for authentication using CHAP
# client server secret IP addresses
DOMENAusername_vpn * password_vpn *
Konfiguracja firewalla na OpenWrt:
Zawartość pliku /etc/config/firewall
config rule
option src wan
option proto esp
option target ACCEPT
config rule
option src wan
option proto ah
option target ACCEPT
config rule
option src wan
option proto ipcomp
option target ACCEPT
config rule
option dest_port 500
option proto udp
option target ACCEPT
config rule
option dest_port 4500
option proto udp
8 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
option target ACCEPT
config include
option path /etc/firewall.user
Zawartość pliku /etc/firewall.user:
#reduły dla xl2tpd + racoon
iptables -I INPUT -m policy --dir in --pol ipsec -p udp --dport 1701 -j ACCEPT
iptables -I FORWARD -i ppp+ -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD -i ppp+ --src 192.168.222.10 -j ACCEPT
iptables -I INPUT -i ppp+ -p tcp --dport 53 -j ACCEPT
iptables -I INPUT -i ppp+ -p udp --dport 53 -j ACCEPT
iptables -t nat -I postrouting_rule -p ipcomp -j ACCEPT
iptables -t nat -I postrouting_rule -p ah -j ACCEPT
iptables -t nat -I postrouting_rule -p esp -j ACCEPT
9 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
Teraz nasz client o adresie ip. 192.168.222.10 będzie miał dostęp do naszej sieci LAN po vpn.
Jeśli chcemy puścić wszystkie komputery do LAN możemy wykorzystać regułkę:
iptables -I FORWARD -i ppp+ --src 192.168.222.0/24 -j ACCEPT
Konfiguracja Racoon na Openwrt:
w katalogu /etc/racoon utwórz 4 pliki i 1 katalog
touch /etc/racoon/psk.txt
touch /etc/racoon/racoon.conf
touch /etc/racoon/setkey.conf
touch /etc/init.d/racoon
10 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
mkdir /etc/racoon/certs
oraz nadaj uprawnienia do wykonywania
chmod +x /etc/racoon/setkey.conf
chmod +x /etc/init.d/racoon
chmod 600 /etc/racoon/psk.txt
Plik konfiguracyjny /etc/racoon/racoon.conf winien wyglądać następująco:
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";
log info;
listen
{
isakmp 218.97.26.22 [500];
isakmp_natt 218.97.26.22 [4500];
11 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
}
timer
{
natt_keepalive 10sec;
}
remote anonymous {
exchange_mode main;
doi ipsec_doi;
generate_policy on;
situation_identity_only;
lifetime time 28800 sec;
my_identifier asn1dn;
peers_identifier asn1dn;
verify_identifier on;
verify_cert on;
ca_type x509 "/etc/ssl/cacert.pem";
certificate_type x509 "newcert.pem" "newkey.pem";
passive on;
initial_contact off;
nat_traversal on;
#ike_frag=on;
proposal_check obey;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method rsasig;
dh_group 2;
}
}
sainfo anonymous {
pfs_group 2;
lifetime time 3600 sec;
encryption_algorithm aes,3des ;
authentication_algorithm hmac_sha1,hmac_md5 ;
compression_algorithm deflate;
}
12 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
Plik /etc/racoon/setkey.conf winien wyglądać:
#!/usr/sbin/setkey -f
flush;
spdflush;
#FPW
spdadd 218.97.26.22[1701] 0.0.0.0/0 udp -P out ipsec
esp/transport//require;
spdadd 0.0.0.0/0 218.97.26.22[1701] udp -P in ipsec
esp/transport//require;
Plik /etc/init.d/racoon winien zawierać:
#!/bin/sh /etc/rc.common
START=60
start() {
echo Uruchamiam tunel ipsec racoon...
if [ ! -e /var/racoon ]
then
mkdir /var/racoon
fi
setkey -f /etc/racoon/setkey.conf
racoon -f /etc/racoon/racoon.conf
}
stop() {
killall racoon
}
13 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
a następnie wykonać
/etc/init.d/racoon enable
/etc/init.d/racoon start
/etc/init.d/xl2tpd enable
/etc/init.d/xl2tpd start
Do katalogu /etc/racoon/certs wrzucamy nasz certyfikat publiczny i prywatny serwera patrz
artykuł generowanie certyfikatów
Przypominam tylko, iż w czasie generowania certyfikatów powstają nam pliki:
newcert.pem - certyfikat publiczny newkey.pem - klucz prywatny certyfikatu
newreq.pem - request
to nasze wygenerowane pliki certyfikatu
14 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
W OpenWrt używamy skryptu CA.sh
Jeśli chcemy mieć weryfikację certyfikatów poprzez listy crl (zakładam że CA już masz)
wykonujemy w katalogu (przy założeniu, iż w tym katalogu generowałeś certyfikaty swoje)
/usr/lib/ssl/misc
openssl ca -gencrl -out demoCA/crl/crl.pem
openssl crl -in demoCA/crl/crl.pem -outform der -out demoCA/crl/cert.crl
oraz ca to musimy zrobić linki symboliczne z utworzonych plików do :
# ln -s demoCA/crl/crl.pem `openssl x509 -hash -noout -in demoCA/cacert.pem`.r0
#ln -s demoCA/cacert.pem `openssl x509 -hash -noout -in demoCA/cacert.pem`.0
Wiersz
peers_identifier asn1dn;
może wyglądac inaczej patrz na końcu artykułu .
15 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
Od strony OpenWrt to już wszystko. Już nic więcej nie musimy robić.
jakby były jakieś problemy z certyfikatami obejrzyj sobie przykładowe wygenerowane przeze
mnie certyfikaty Punkt.9
UWAGA !!! ERRATA
W Backfire ostatnich wydania jest błąd który winien zostać poprawiony. Niestety developerzy
tak przerobili firewalla że nie da się w żaden sposób wstawić na początek głównych łańcuchów
własnych reguł iptables. Jeśli masz problemy z nawiązaniem połączenia zerknij koniecznie na
reguły firewalla
iptables -t nat -L -v
w szczególności łańcuchów POSTROUTING. Nasze reguły dodane do firewalla MUSZĄ być
przed łańcuchami
zone_lan_nat
zone_wan_nat
16 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
inaczej nie będzie poprawnie działał tunel
Czyli jeśli masz np. taką kolejność
Chain POSTROUTING (policy ACCEPT 246 packets, 18433 bytes)
pkts bytes target prot opt in out source destination
854 61486 zone_wan_nat all -- any eth0.2 anywhere anywhere
1 84 zone_lan_nat all -- any br-lan anywhere anywhere
246 18433 postrouting_rule all -- any any anywhere anywhere
to nie będą działać wpisy w postrouting_rule. Nawet jak dodasz reguły w /etc/firewall.user do
głównego łańcucha POSTROUTING to przynajmniej na dzień dzisiejszy reguły zostaną dodane
za łańcuchami zone_lan_nat i zone_wan_nat
Jedynym rozwiązaniem jest przeniesienie naszych reguł do skryptu uruchamiającego firewall
/etc/init.d/racoon
Czyli usuwamy nasze wpisy z pliky /etc/firewall.user i wstawiamy je np. tak jak poniżej:
Plik /etc/init.d/racoon winien zawierać:
#!/bin/sh /etc/rc.common
START=98
start() {
echo Uruchamiam tunel ipsec racoon...
if [ ! -e /var/racoon ]
17 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
then
mkdir /var/racoon
fi
setkey -f /etc/racoon/setkey.conf
racoon -f /etc/racoon/racoon.conf
#reduły dla xl2tpd + racoon
iptables -I INPUT -m policy --dir in --pol ipsec -p udp --dport 1701 -j ACCEPT
iptables -I FORWARD -i ppp+ -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD -i ppp+ --src 192.168.222.10 -j ACCEPT
iptables -I INPUT -i ppp+ -p tcp --dport 53 -j ACCEPT
iptables -I INPUT -i ppp+ -p udp --dport 53 -j ACCEPT
iptables -t nat -I postrouting_rule -p ipcomp -j ACCEPT
iptables -t nat -I postrouting_rule -p ah -j ACCEPT
iptables -t nat -I postrouting_rule -p esp -j ACCEPT
}
stop() {
killall racoon
#reduły dla xl2tpd + racoon
18 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
iptables -D INPUT -m policy --dir in --pol ipsec -p udp --dport 1701 -j ACCEPT
iptables -D FORWARD -i ppp+ -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -D FORWARD -i ppp+ --src 192.168.222.10 -j ACCEPT
iptables -D INPUT -i ppp+ -p tcp --dport 53 -j ACCEPT
iptables -D INPUT -i ppp+ -p udp --dport 53 -j ACCEPT
iptables -t nat -D postrouting_rule -p ipcomp -j ACCEPT
iptables -t nat -D postrouting_rule -p ah -j ACCEPT
iptables -t nat -D postrouting_rule -p esp -j ACCEPT
}
Alternatywą w/w zmian jest uaktualnienie pakietu firewall do najnowszej wersji
opkg install http://ecco.selfip.net/backfire/packages/firewall_2-21_all.ipk
po wgraniu w/w aktualizacji reguły spokojnie mogą zostać jak w oryginalnym opisie.
19 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
Konfigurację klientów l2tp+ipsec opisałem na końcu mojego artykułu .
Konfiguracja klienta l2tp+ipsec na podstawie OpenWrt 8.09.1
Przedstawię tylko pliki konfiguracyjne ponieważ opis w zasadzie jest podobny jak wyżej
(położenie plików konfiguracyjnych, certyfikatów, etc.)
Konfiguracja xl2tpd na client Openwrt:
20 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
Zawartość pliku /etc/xl2tpd/xl2tpd.conf:
[global] port = 1701 access control = no
;
[lac nazwa_clienta]
lns = 218.97.26.22
length bit = yes
require chap = yes
refuse pap = yes
require authentication = yes
name = formaplan
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
Zawartość pliku /etc/ppp/options.xl2tpd:
user username_vpn
noipdefault
#usepeerdns
noaccomp
noauth
idle 1800
mtu 1460
mru 1460
refuse-eap
debug
logfd 2
logfile /var/log/xl2tpd.log
ipcp-accept-local
ipcp-accept-remote
nodefaultroute
lock
crtscts
connect-delay 5000
21 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
Zawartość pliku /etc/ppp/chap-secrets:
# Secrets for authentication using CHAP
# client server secret IP addresses
username_vpn * password_vpn *
Konfiguracja Racoon na client Openwrt:
Plik konfiguracyjny /etc/racoon/racoon.conf winien wyglądać następująco:
path certificate "/etc/racoon/certs";
log info;
timer
{
natt_keepalive 10sec;
}
remote 218.97.26.22 {
22 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
exchange_mode main;
doi ipsec_doi;
generate_policy on;
situation_identity_only;
lifetime time 28800 sec;
my_identifier asn1dn;
peers_identifier asn1dn;
verify_identifier on;
verify_cert off;
ca_type x509 "/etc/ssl/cacert.pem";
certificate_type x509 "newcert.pem" "newkey.pem";
passive off;
initial_contact on;
nat_traversal on;
#ike_frag=on;
proposal_check obey;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method rsasig;
dh_group 2;
}
}
sainfo anonymous {
pfs_group 2;
lifetime time 3600 sec;
encryption_algorithm aes,3des ;
authentication_algorithm hmac_sha1,hmac_md5 ;
compression_algorithm deflate;
}
Plik /etc/racoon/setkey.conf winien wyglądać:
#!/usr/sbin/setkey -f
flush;
spdflush;
23 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
#FPW
spdadd 0.0.0.0/0 218.97.26.22[1701] udp -P out ipsec
esp/transport//require;
spdadd 218.97.26.22[1701] 0.0.0.0/0 udp -P in ipsec
esp/transport//require;
Plik /etc/init.d/racoon winien zawierać:
#!/bin/sh /etc/rc.common
START=60
start() {
echo Uruchamiam tunel ipsec racoon...
if [ ! -e /var/racoon ]
then
mkdir /var/racoon
fi
setkey -f /etc/racoon/setkey.conf
racoon -f /etc/racoon/racoon.conf
}
stop() {
killall racoon
}
a następnie wykonać
/etc/init.d/racoon enable
24 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
/etc/init.d/racoon start
/etc/init.d/xl2tpd enable
/etc/init.d/xl2tpd start
Konfiguracja firewalla na client l2tp OpenWrt:
Zawartość pliku /etc/config/firewall
config rule
option src wan
option proto esp
option target ACCEPT
config rule
option src wan
option proto ah
option target ACCEPT
config rule
option src wan
option proto ipcomp
option target ACCEPT
config rule
option dest_port 500
option proto udp
option target ACCEPT
25 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
config rule
option dest_port 4500
option proto udp
option target ACCEPT
config include
option path /etc/firewall.user
Zawartość pliku /etc/firewall.user:
#reduły dla xl2tpd + racoon
iptables -I INPUT -m policy --dir in --pol ipsec -p udp --dport 1701 -j ACCEPT
iptables -I FORWARD -i ppp+ -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD -i ppp+ --src 192.168.222.1 -j ACCEPT
iptables -t nat -I postrouting_rule -p ipcomp -j ACCEPT
iptables -t nat -I postrouting_rule -p ah -j ACCEPT
iptables -t nat -I postrouting_rule -p esp -j ACCEPT
26 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
UWAGA !!! ERRATA
Patrz errate powyżej. schemat podobny. Jak nie działa przenieść reguły do pliku
/etc/init.d/racoon
I to już wszystko jeśli chodzi o konfigurację klienta l2tp po ipsec dla OpenWrt.
Uruchomienie tunelu na OpenWrt:
Aby uruchomić/zestawić połaczenie wydaj komendę:
echo "c nazwa_clienta" > /var/run/xl2tpd/l2tp-control
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.222.1
Aby wyłączyć/zerwać połączenie wydaj komendę:
echo "d nazwa_clienta" > /var/run/xl2tpd/l2tp-control
gdzie "nazwa_clienta" to nasza nazwa zdefiniowana w sekcji LAC w pliku xl2tpd.conf.
27 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
UWAGI:
Jest to połączenie VPN typu host-net. To nie jest tunel łączący dwie sieci. Dlatego zestawienie
tunelu jest ręcznie robione.
Pewnie dzięki odpowiedniej konfiguracji routingu i firewala dało by się uzyskać połączenie typu
net-net.
Konfiguracja działa bez problemu za natem.
Ps.
Możemy uzyskać połączenie typu net->net (takie pseudo tunel). Ważne jest to, że mamy dostęp
do sieci odległej z każdego komputera w naszej sieci. Wadą jest to, że z odległej sieci będzie
ciężko się dostać do naszych kompów wewnątrz bo są po prostu za NAT. Do zrobienia
połączenia po prostu użyjemy SNAT. Aby uruchomić/zestawić połączenie wydaj na routerze z
OpenWrt poniższe komendy:
iptables -t nat -I POSTROUTING -d 192.168.1.0/24 -j SNAT --to 192.168.222.10
echo "c nazwa_clienta" > /var/run/xl2tpd/l2tp-control
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.222.1
iptables -I FORWARD --src 10.0.0.0/24 -j ACCEPT
ip route flush cache
Aby wyłączyć/zerwać połączenie wydaj komendę:
28 / 29
l2tp czyli VPN zestawiony na podstawie xl2tpd + ipsec racoon na certyfikatach - 8.09.1
Wpisany przez rpc
poniedziałek, 02 listopada 2009 11:11 - Poprawiony piątek, 18 lutego 2011 17:39
iptables -t nat -D POSTROUTING -d 192.168.1.0/24 -j SNAT --to 192.168.222.10
echo "d nazwa_clienta" > /var/run/xl2tpd/l2tp-control
route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.222.1
iptables -D FORWARD --src 10.0.0.0/24 -j ACCEPT
ip route flush cache
gdzie
10.0.0.0/24 to nasza sieć wewnętrzna w domu
192.168.222.10 to adres ip jaki otrzymaliśmy od serwera l2tp
192.168.222.1 to adres ip gw. połączenia Peer to Peer od strony firmy czyli serwera l2tp
Jak chcemy możemy sobie wrzucić to wszystko do skryptu i jego odpalać.
29 / 29