Erinevus lehekülje "IPsec VPN kasutamine OpenBSD'ga" redaktsioonide vahel
(→CheckPoint Firewall-1 ja OpenBSD IPSec koos kasutamine) |
(→OpenBSD v. 4.9 arvutid omavahel RSA võtmetega) |
||
(ei näidata sama kasutaja 15 vahepealset redaktsiooni) | |||
2. rida: | 2. rida: | ||
* PFS - Perfect Forward Security | * PFS - Perfect Forward Security | ||
+ | * PFX - Personal information Exchange | ||
===Tunneling režiim=== | ===Tunneling režiim=== | ||
277. rida: | 278. rida: | ||
Licensees: "passphrase:parool" | Licensees: "passphrase:parool" | ||
Conditions: app_domain == "IPsec policy" && esp_present == "yes" && esp_enc_alg != "null" -> "true"; | Conditions: app_domain == "IPsec policy" && esp_present == "yes" && esp_enc_alg != "null" -> "true"; | ||
+ | |||
+ | ===IKE v2 kasutamine=== | ||
+ | |||
+ | TODO | ||
+ | |||
+ | ====OpenBSD v. 4.9 arvutid omavahel parooliga==== | ||
+ | |||
+ | Moodustada mõlemas arvutis nt selline seadistusfail | ||
+ | |||
+ | # cat /etc/iked.conf | ||
+ | ikev2 active esp proto icmp from 192.168.10.51 to 192.168.10.52 \ | ||
+ | local 192.168.10.51 peer 192.168.10.52 \ | ||
+ | psk "parool" | ||
+ | |||
+ | Käivitada mõlemas arvutis iked deemon | ||
+ | |||
+ | # iked -dv | ||
+ | |||
+ | Küsida tekkinud flows'id | ||
+ | |||
+ | # ipsecctl -sa | ||
+ | FLOWS: | ||
+ | flow esp in from 192.168.10.52 to 192.168.10.51 peer 192.168.10.52 srcid FQDN/obsd-49-1.auul dstid FQDN/obsd-49-2.auul type use | ||
+ | flow esp out from 192.168.10.51 to 192.168.10.52 peer 192.168.10.52 srcid FQDN/obsd-49-1.auul dstid FQDN/obsd-49-2.auul type require | ||
+ | |||
+ | SAD: | ||
+ | esp tunnel from 192.168.10.51 to 192.168.10.52 spi 0x18279006 auth hmac-sha2-256 enc aes-256 | ||
+ | esp tunnel from 192.168.10.52 to 192.168.10.51 spi 0x326a6bd8 auth hmac-sha2-256 enc aes-256 | ||
+ | |||
+ | ====OpenBSD v. 4.9 arvutid omavahel RSA võtmetega==== | ||
+ | |||
+ | Esmalt tuleb ühes arvutis ikectl utiliidiga tekitada CA ja osaliste sertifikaadid, kopeerida teise arvuti sertifikaadid teisse arvutisse, kusjuures sertifikaatidel on | ||
+ | |||
+ | * CN - 192.168.10.51 | ||
+ | * email - root@192.168.10.51 | ||
+ | |||
+ | man ikectl lõpus kirjeldatud moel tegutsedes tekivad arvutisse sellised failid | ||
+ | |||
+ | # find /etc/iked -type f | ||
+ | /etc/iked/ca/ca.crt | ||
+ | /etc/iked/certs/192.168.10.51.crt | ||
+ | /etc/iked/private/local.key | ||
+ | /etc/iked/local.pub | ||
+ | |||
+ | kus | ||
+ | |||
+ | * ca.crt - CA juursert | ||
+ | * 192.168.10.51.crt - ike serveri sertifikaat | ||
+ | * local.key - sertifikaadi avalikule võtmele vastav privaatne võti | ||
+ | * local.pub - sertifikaadi avalik võti | ||
+ | |||
+ | Nt sobib kasutada sellise sisuga seadistusfaili | ||
+ | |||
+ | # cat /etc/iked.conf | ||
+ | ikev2 "ipsec-yhendus" passive esp \ | ||
+ | from 192.168.111.0/24 to 192.168.100.0/24 \ | ||
+ | local 192.168.10.52 peer 192.168.10.51 \ | ||
+ | srcid 192.168.10.52 dstid 192.168.10.51 \ | ||
+ | rsa | ||
+ | |||
+ | Käivitada tuleb esamlt passive ja seejärel active osapool, tulemusena tekib | ||
+ | |||
+ | # ipsecctl -sa | ||
+ | FLOWS: | ||
+ | flow esp in from 192.168.100.0/24 to 192.168.111.0/24 peer 192.168.10.51 srcid IPV4/192.168.10.52 dstid IPV4/192.168.10.51 type use | ||
+ | flow esp out from 192.168.111.0/24 to 192.168.100.0/24 peer 192.168.10.51 srcid IPV4/192.168.10.52 dstid IPV4/192.168.10.51 type require | ||
+ | |||
+ | SAD: | ||
+ | esp tunnel from 192.168.10.52 to 192.168.10.51 spi 0x2af0b543 auth hmac-sha2-256 enc aes-256 | ||
+ | esp tunnel from 192.168.10.51 to 192.168.10.52 spi 0x2bf2362a auth hmac-sha2-256 enc aes-256 | ||
+ | |||
+ | ====Win7 ja OpenBSD v. 4.9==== | ||
===Debugimine=== | ===Debugimine=== | ||
303. rida: | 376. rida: | ||
* http://www.pro-bono-publico.de/openbsd/ipsec/index.html | * http://www.pro-bono-publico.de/openbsd/ipsec/index.html | ||
* Google: IPsec Advanced Toubleshooting Guide | * Google: IPsec Advanced Toubleshooting Guide | ||
+ | * http://www.mail-archive.com/misc@openbsd.org/msg74592.html | ||
+ | * Google: Trust Management for IPsec | ||
+ | * http://tutorials.papamike.ca/pub/obsd_ipsec.html | ||
+ | * http://en.wikipedia.org/wiki/PFX | ||
+ | * http://www.smallnetbuilder.com/lanwan/lanwan-howto/24429-howtoxpipsec | ||
+ | * www.zeroshell.net/listing/l2tp.pdf | ||
+ | * IPSec and NAT - http://undeadly.org/cgi?action=article&sid=20090127205841 | ||
+ | * Google: Using IPSec in Windows 2000 and XP | ||
+ | * http://www.freebsddiary.org/ipsec-wireless-xp.php |
Viimane redaktsioon: 11. märts 2011, kell 02:02
Sisukord
Mõisted
- PFS - Perfect Forward Security
- PFX - Personal information Exchange
Tunneling režiim
Olgu kuskil internetis teine sarnane võrk ('TUVIKE') st OpenBSD tulemüür ning selle taga kohtvõrk ning olukord, et teise kohtvõrgu TUVIKE teenustele, nt failiserverile mis asub aadressil 192.168.3.22, usaldatakse ligi esimese võrgu KALAKE kasutajaid.
_______ wire - 192.168.3.0/24 ________ | | __|__ em0 192.168.3.254/24 | | TUVIKE | | |_____| | fxp0 172.16.2.1/28 | internet | __|__ fxp0 172.16.1.17/28 | | KALAKE | | |_____| | em0 192.168.1.254/24 | |_______ wire - 192.168.1.0/24 _________
Failiserverile (ja võimalikele muudele TUVIKE võrgu teenustele) ligipääsu saaks korraldada võrgu KALAKE kasutajatele põhimõtteliselt kahel viisil
- TUVIKE kohtvõrgu tulemüüri välisel seadmel porte sobivalt suunates sisevõrgu serverile
- moodustades virtuaalse võrgu (VPN), näiteks IPsec tehnika abil
Järgnevalt kirjeldame kuidas toimub IPsec abil VPN võrgu moodustamine ning selle kasutamine.
IPsec abil moodustub üle avaliku interneti kahe tulemüüri vahel IP kihi tasemel tunnel, mis praktiliselt tähendab seda, et näib nagu KALAKE ja TUVIKE kohtvõrgud oleksid ühendatud sama tulemüüri külge. Nt, KALAKE võrgust saab otse pöörduda kasutades TUVIKE kohtvõrgu failiserveri aadressi TUVIKE kohtvõrgu failiserveri poole.
IPsec tunneli moodustamiseks tuleb KALAKE tulemüüris moodustada fail /etc/ipsec.conf sisuga
ike esp from 192.168.1.0/24 to 192.168.3.0/24 peer 172.16.2.1
ning TUVIKE tulemüüris fail /etc/ipsec.conf sisuga
ike passive esp from 192.168.3.0/24 to 192.168.1.0/24 peer 172.16.1.17
Ning kopeerida KALEKE tulemüüri failisüsteemist fail /etc/isakmpd/local.pub TUVIKE tulemüüri failiks
/etc/isakmpd/pubkeys/ipv4/172.16.1.17
ning kopeerida TUVIKE tulemüüri failisüsteemist fail /etc/isakmpd/local.pub KALAKE tulemüüri failiks
/etc/isakmpd/pubkeys/ipv4/172.16.2.1
Peale nimetatud failide moodustamist tuleb esmalt TUVIKE tulemüüris käivitada isamkpd ning anda anda ipsecctl käsk
# isakmpd -K # ipsecctl -f /etc/ipsec.conf
ning seejärel KALAKE tulemüüris sama.
Lisaks tuleb veenduda, et pf tulemüüri reeglid võimaldaksid IPsec tunneliga seotud andmevahetust. Selleks tuleb arvestada, et kaks IPsec osapoolt kasutavad suhtlemiseks esp protkolli ning udp protokolli puhul porti 500. Tulemüüris toimub tunnelisse liiklusse sisenemine seadme enc0 kaudu, samuti selle seadme kaudu väljub tulemüürist tunnelist liiklus, kusjuures vastavalt toimub andmete krüptimine ja dekrüptimine - enc0 seadet tcpdump programmiga pealt kuulates on võimalik jälgida krüptimata andmevahetust.
Selleks, et veenududa tunneli töötamises sobib kuulata tulemüüri välisel st füüsilisel seadmel võrku esp protokolli osas pealt
# tcpdump -n -i fxp0 esp 23:17:06.533589 esp 172.16.1.17 > 172.16.2.1 spi 0xA8A05056 seq 70 len 884 (DF) 23:17:06.534239 esp 172.16.2.1 > 172.16.1.17 spi 0x45CFA056 seq 71 len 436 (DF) 23:17:06.559449 esp 172.16.1.17 > 172.16.2.1 spi 0xA8A05056 seq 71 len 884 (DF) 23:17:06.560104 esp 172.16.2.1 > 172.16.1.17 spi 0x45CFA056 seq 72 len 452 (DF) 23:17:06.601676 esp 172.16.1.17 > 172.16.2.1 spi 0xA8A05056 seq 72 len 100 (DF) 23:17:06.638905 esp 172.16.1.17 > 172.16.2.1 spi 0xA8A05056 seq 73 len 100 (DF)
TUVIKE failiserveri kasutamine KALAKE võrgus paiknevast Solaris kliendist toimuks tavapärasel moel
bash# mount -F nfs -o vers=3 192.168.3.22:/data /data
Lisaks IPsec reeglite kehtestamisele saab ipsecctl utiliidi abil vaadata, millised on parasjagu kehtivad nn flow'd, KALAKE tulemüüris avaneb nt selline pilt
# ipsecctl -sf flow esp in from 192.168.3.0/28 to 192.168.1.0/24 peer 172.16.2.1 srcid 172.16.1.17/32 dstid /172.16.2.132 type use flow esp in from 192.168.1.0/28 to 192.168.3.0/24 peer 172.16.2.1 srcid 172.16.1.17/32 dstid /172.16.2.132 type require
Kahe hosti vaheline IPsec ühendus
Eesmärgil, et kaks nö tavalisel moel võrku ühendatud arvutit saaks omavahel turvaliselt üle IPsec suhelda, peab neil mõlemad olema kasutada teise avalik võti, nii nagu eelpool kirjeldatud ning kirjeldatud sellise sisuga seadistusfailid
R1 # cat /etc/ipsec.conf ike passive esp from 10.1.7.108 to 10.1.7.107
R2 # cat /etc/ipsec.conf ike esp from 10.1.7.107 to 10.1.7.108
Käivitamiseks öelda isakmpd ja ipsecctl järjekorras, et isakmpd passive'is enne ja siis teise ning seejärel ipsecctl passivis enne ja siis teises
# isakmpd -Kdv 051651.821617 Default isakmpd: phase 1 done: initiator id 10.1.7.107, responder id 10.1.7.108, src: 10.1.7.107 dst: 10.1.7.108 051651.829162 Default isakmpd: quick mode done: src: 10.1.7.107 dst: 10.1.7.108
# ipsecctl -f /etc/ipsec.conf
Võtmete tekitamine
# /usr/sbin/openssl genrsa -out /etc/isakmpd/private/local.key 1024 # chmod 600 /etc/isakmpd/private/local.key # openssl rsa -out /etc/isakmpd/local.pub -in /etc/isakmpd/private/local.key -pubout
# openssl rsa -out /etc/isakmpd/local.pub -in /etc/isakmpd/private/local.key -pubout
gif seadme abil
Tundub, et vahel on populaarne kasutada ipsec'i koos gif või gre seadmetega, üks võimalik skeem võiks olla selline
_______ wire - 192.168.3.0/24 ________ | | __|__ em0 192.168.3.254/24 | | TUVIKE | | gif0 10.0.10.2 |_____| | fxp0 172.16.2.1/28 | internet | __|__ fxp0 172.16.1.17/28 | | KALAKE | | gif0 10.0.10.1 |_____| | em0 192.168.1.254/24 | |_______ wire - 192.168.1.0/24 _________
gif seadmed seadistatakse sellisete /etc/hostname.gif0 failidega, kalakeses
tuvike # cat /etc/hostname.gif0 10.0.10.2 10.0.10.1 netmask 255.255.255.0 tunnel 172.16.2.1 172.16.1.17
ja kalakeses
kalake # cat /etc/hostname.gif0 10.0.10.1 10.0.10.2 netmask 255.255.255.0 tunnel 172.16.2.17 172.16.1.2
Peale gif seadmete moodustamist peab saama ühest teise poole pöörduda, aga kusjuures mitte kohalikku.
Seejärel tuleb ipsec seadistada selliselt
tuvike # cat /etc/ipsec.conf ike esp tunnel from 192.168.3.0/24 to 192.168.1.0/24 peer 10.0.10.1 ike esp transport from 10.0.10.2 to 10.0.10.1
kalake # cat /etc/ipsec.conf ike esp tunnel from 192.168.1.0/24 to 192.168.3.0/24 peer 10.0.10.2 ike esp transport from 10.0.10.1 to 10.0.10.2
Redundantne IPsec lüüs
OpenBSD IPsec implementatsioon võimaldab seadistada käima redundantse IPsec lüüsi. See tähendab praktiliselt seda, et IPsec nn kliendiga tegeleb üks nö loogiline IPsec server, mis koosneb kahest füüsilisest OpenBSD arvutist, kusjuures igal ajahetkel tegeleb IPsec klientidega üks või teine füüsiline arvuti.
Tööpõhimõte
Sellist redundantset asjakorraldus sobib kujutama selline skeem
___ | | |___| 172.31.1.31 | --------|------- 172.31.1.0/24 | _|_ 172.31.1.254 | | kliendi IPsec lüüs (mitte-redundantne) |___| | 192.168.100.1 ..... .... ..... . .. .. . . internet ...... .. .. .... . | | -----|---------|--------|------- | 192.168.10.1 | .11 _|_ carp0 _|_ .12 teenusepakkuja redundantne IPsec lüüs | | | | | A | | B | |___| |___| .11 | carp1 | .12 | 10.0.13.254 | -|-------|------------------|--------------- 10.0.13.0/24 | _|_ | | 10.0.13.13 |___| kliendile huvipakkuva võrgu arvuti
Seadistamine
IPsec arvutites sobib kasutada nt selliseid /etc/ipsec.conf seadistusfaile
- kliendi IPsec lüüs
ike esp from 172.31.1.0/24 to 10.0.13.0/24 peer 192.168.10.1
- teenusepakkuja IPsec lüüs A
ike passive esp from 10.0.13.0/24 to 172.31.1.0/24 local 192.168.10.1 peer 192.168.100.1
- teenusepakkuja IPsec lüüs B
ike passive esp from 10.0.13.0/24 to 172.31.1.0/24 local 192.168.10.1 peer 192.168.100.1
Arvutites A ja B on kasutuses vastavalt nt sellise sisuga /etc/sasyncd.conf failid
peer 10.0.13.12 interface carp1 sharedkey 0x349fec85c11f6b658d5c457d4668e035f11dfdccb849d5053a8763747b74db70
ning
peer 10.0.13.11 interface carp1 sharedkey 0x349fec85c11f6b658d5c457d4668e035f11dfdccb849d5053a8763747b74db70
kusjuures oluline on, et selles failis ei oleks kommentaare ega tühje ridu (viimane rida lõpeb reavahetusega).
Käivitamine
Süsteemi käivitamiseks tuleb öelda redundantsetes lüüsides nt
# isakmpd -KvdS # ipsecctl -f /etc/ipsec.conf # sasyncd -dv
ning kliendi lüüsis
# isakmpd -Kvd # ipsecctl -f /etc/ipsec.conf
Kasutamine
TODO
Jõudlus
TODO: kas smp abistab üle IPsec toimuvale andmevahetuskiirusele kaasa
Katse näitab, et muus osas samadel tingimusel on IPsec liiklus 2-3x aeglasem, nt 27 MBait/s vs 12 MBait/s.
Paketifiltri seadistamine
TODO
CheckPoint Firewall-1 ja OpenBSD IPSec koos kasutamine
Nö vaikimisi-harju keskmise juhtumi CheckPoint Firewall-1 r65 ja OpenBSD IPSec ühendus puhul võiks sobida kasutada OpenBSD v. 4.8 poolel sellise sisuga seadistusfaile
/etc/ipsec.conf
ike esp from 11.0.7.0/24 to 10.254.254.0/24 \ local 192.168.111.114 peer 192.168.49.162 \ main auth hmac-sha1 enc aes-256 group modp1024 \ quick auth hmac-sha1 enc aes-256 group modp1024 \ psk parool
kus
- ike ... from ... to -
- local ... peer -
- main - faas 1
- quick - faas 2
- psk - parool, mis on mõlemal poolel sama
/etc/isakmpd/isakmpd.conf
[General] Default-phase-1-lifetime= 3600,60:86400 Default-phase-2-lifetime= 3600,60:86400
/etc/isakmpd/isakmpd.policy
Authorizer: "POLICY" Licensees: "passphrase:parool" Conditions: app_domain == "IPsec policy" && esp_present == "yes" && esp_enc_alg != "null" -> "true";
IKE v2 kasutamine
TODO
OpenBSD v. 4.9 arvutid omavahel parooliga
Moodustada mõlemas arvutis nt selline seadistusfail
# cat /etc/iked.conf ikev2 active esp proto icmp from 192.168.10.51 to 192.168.10.52 \ local 192.168.10.51 peer 192.168.10.52 \ psk "parool"
Käivitada mõlemas arvutis iked deemon
# iked -dv
Küsida tekkinud flows'id
# ipsecctl -sa FLOWS: flow esp in from 192.168.10.52 to 192.168.10.51 peer 192.168.10.52 srcid FQDN/obsd-49-1.auul dstid FQDN/obsd-49-2.auul type use flow esp out from 192.168.10.51 to 192.168.10.52 peer 192.168.10.52 srcid FQDN/obsd-49-1.auul dstid FQDN/obsd-49-2.auul type require SAD: esp tunnel from 192.168.10.51 to 192.168.10.52 spi 0x18279006 auth hmac-sha2-256 enc aes-256 esp tunnel from 192.168.10.52 to 192.168.10.51 spi 0x326a6bd8 auth hmac-sha2-256 enc aes-256
OpenBSD v. 4.9 arvutid omavahel RSA võtmetega
Esmalt tuleb ühes arvutis ikectl utiliidiga tekitada CA ja osaliste sertifikaadid, kopeerida teise arvuti sertifikaadid teisse arvutisse, kusjuures sertifikaatidel on
- CN - 192.168.10.51
- email - root@192.168.10.51
man ikectl lõpus kirjeldatud moel tegutsedes tekivad arvutisse sellised failid
# find /etc/iked -type f /etc/iked/ca/ca.crt /etc/iked/certs/192.168.10.51.crt /etc/iked/private/local.key /etc/iked/local.pub
kus
- ca.crt - CA juursert
- 192.168.10.51.crt - ike serveri sertifikaat
- local.key - sertifikaadi avalikule võtmele vastav privaatne võti
- local.pub - sertifikaadi avalik võti
Nt sobib kasutada sellise sisuga seadistusfaili
# cat /etc/iked.conf ikev2 "ipsec-yhendus" passive esp \ from 192.168.111.0/24 to 192.168.100.0/24 \ local 192.168.10.52 peer 192.168.10.51 \ srcid 192.168.10.52 dstid 192.168.10.51 \ rsa
Käivitada tuleb esamlt passive ja seejärel active osapool, tulemusena tekib
# ipsecctl -sa FLOWS: flow esp in from 192.168.100.0/24 to 192.168.111.0/24 peer 192.168.10.51 srcid IPV4/192.168.10.52 dstid IPV4/192.168.10.51 type use flow esp out from 192.168.111.0/24 to 192.168.100.0/24 peer 192.168.10.51 srcid IPV4/192.168.10.52 dstid IPV4/192.168.10.51 type require SAD: esp tunnel from 192.168.10.52 to 192.168.10.51 spi 0x2af0b543 auth hmac-sha2-256 enc aes-256 esp tunnel from 192.168.10.51 to 192.168.10.52 spi 0x2bf2362a auth hmac-sha2-256 enc aes-256
Win7 ja OpenBSD v. 4.9
Debugimine
# isakmpd -vd -D 9=99
kus
- 9 - class (vt man isakmpd)
- 99 - debug level (vt man isakmpd)
Märkused
- OpenBSD v. 4.7 IPSec sisaldab IPsec/HMAC-SHA2 parandusi (vt http://www.openbsd.org/47.html) ja selleks, et OpenBSD v. 4.7 IPsec saaks suhelda varasemate OpenBSD versioonidega (nt 4.5), sobib kasutada /etc/ipsec.conf failis nt ridu
ike esp from 192.168.1.0/24 to 192.168.3.0/24 peer 172.16.2.1 quick auth hmac-sha1 enc aes
ja
ike passive esp from 192.168.3.0/24 to 192.168.1.0/24 peer 172.16.1.17 quick auth hmac-sha1 enc aes
Kasulikud lisamaterjalid
- http://www.kernel-panic.it/openbsd/vpn/index.html
- http://www.packetmischief.ca/openbsd/doc/ipsec.html
- http://www.pro-bono-publico.de/openbsd/ipsec/index.html
- Google: IPsec Advanced Toubleshooting Guide
- http://www.mail-archive.com/misc@openbsd.org/msg74592.html
- Google: Trust Management for IPsec
- http://tutorials.papamike.ca/pub/obsd_ipsec.html
- http://en.wikipedia.org/wiki/PFX
- http://www.smallnetbuilder.com/lanwan/lanwan-howto/24429-howtoxpipsec
- www.zeroshell.net/listing/l2tp.pdf
- IPSec and NAT - http://undeadly.org/cgi?action=article&sid=20090127205841
- Google: Using IPSec in Windows 2000 and XP
- http://www.freebsddiary.org/ipsec-wireless-xp.php