IPsec
Sissejuhatus
IPSec kasutamine tundub olema selline teema, kus on nö sõltuvalt kasutusjuhust üks, teine või mõni järgmine lahendus sobivaim. Käesolev tekst dokumenteerib ära mõned teadaolevalt töötavad konkreetsed kasutusjuhud.
IPSec (Internet Protocol Security) esineb kahel kujul
- transport režiim - suhtlevad kaks otspunkti kusjuures ip paketi päised jäävad puutumatuks, tegeldakse paketi sees sisalduva tcp, udp, icmp vmt osaga. Ehk siis pakitakse IP paketi sisu.
- tunnel režiim - suhtlevad kahe lüüsi taga alamvõrkudes asuvad arvutid; tegeldakse kogu ip paketiga kapseldades ta uude, IPSec lüüsis moodustatud ip paketti ehk pakitakse terve IP pakett.
Viimasel juhul saab seda kasutada pakettide liigutamiseks ühest võrgust teise üle ebaturvalise võrgu, näiteks ehitada VPN üle Interneti. Nagu ka joonisel näha, lisatakse esimesel juhul paketti üks uus päis ja kõik ülevalpool IP kihti krüptitakse. Teisel juhul kapseldatakse aga terve pakett uue IP paketi sisse.
Tööpõhimõte
IPSec tunnelite algatamisel identifitseeritakse vastaspool, kasutades salasõnu või sertifikaate. Neid ei saadeta mitte avalikult üle Interneti, vaid kasutatakse IKE (Internet Key Exchange) mehhanismi. See tähendab, et üle Interneti saadetakse vaid sõrmejälgi, millest pole võimalik algseid salasõnu tuletada. Sarnaselt lepitakse kokku ka tunneli parameetrid, nagu kasutatav krüpteerimine ja otspunktide aadressid.
Lisaks on IPSecile võimalus luua tunneleid läbi maskeraadivate seadmete ehk niinimetatud NAT traversal (Network Address Translation maskeraadimine). See tähendab, et tunneli üks otspunkt, tavaliselt kaugtöötaja arvuti, võib paikneda maskeraadiva tulemüüri taga privaataadressväljas.
IPSec puhul toimub andmete krüptimine IP kihis, asjakohaste päiste lisamisel on võimalik saavutada
- AH (Authentication Header) - suhtlevate osapoolte autentsus
- ESP (Encapsulated Security Payload) - andmete salastatus ja terviklus
AH is not compatible with NAT. However, ESP is.
IPSec töös kasutatakse kahte sorti reegleid
- SA (Security Association) - reegilid, mis ütlevad, kuidas toimub andmete mingi tegevus, st autentsuse ja tervikluste tagamine, salastamine
- SP (Security Policy) - reeglid, mis ütlevad millisele andmevahtusele SA abil kirjeldatud reegleid rakendada
Neid reegleid hoitakse vastavates andmebaasides
- SAD - Security Association Database
- SPD - Security Policy Database
IPSec kasutamiseks tuleb mõlemas osalises kirjeldada kooskõlaliselt SA ja SP andmebaasid, põhimõtteliselt tuleb kernelile öelda vastavad reeglid ja seda saab teha nt programmi setkey abil. Kuna praktiliselt on aga ebamugav ja ka ebaturvaline käsitsi osapoolte koostööd tagada, siis on välja mõeldud IKE (Internet Key Exchange) Protocol. IKE on implementeeritud Debian ja FreeBSD süsteemis nt tarkvarana isakmpd ja Racoon.
Järgnev skeem seletab ipseci tööd ja pakettide liikumist läbi kerneli pisut täpsemalt.
setkey racoon <-------(IKE)-------> klient | ^ | (5) | | |(6) |(1) +-----+ +---+ | (4)| | v | v +-----+ (2) | (3) +-----+ | SPD |<----- kernel ------>| SAD | +-----+ | +-----+ |(7) v
- Administraator seadistab setkey utiliidi abiga SPD poliitika.
- Kernel registreerib sissetulnud paketi, vaatab SPD poliitikat ja teeb otsuse, et kas krüpteerida pakett
- Kui otsus on Jah, hangib kernel IPsec-SA jaoks võtme SADilt
- Kui see ei õnnestu saadab kernel päringu võtme saamiseks racoonile.
- Racoon vahetab võtme kasutades IKEt teise ühenduse loodud Ipsec-SAga.
- Racoon suskab saadud võtme SADi.
- Kernel saadab krüpteeritud paketi edasi.
Racoon kuulab ja vahetab pakette tavaliselt 500 pordil.
SAD ja SPD andmebaaside sisu nägemiseks on käsud
# setkey -D # dump SAD entries # setkey -DP # dump SPD entries
Veel üks skeem.
IPsec VPN kasutamine OpenBSD'ga