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
- 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
Tööpõhimõte
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.