IPsec

Allikas: Kuutõrvaja

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.

Tunnel transport.png

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
  1. Administraator seadistab setkey utiliidi abiga SPD poliitika.
  2. Kernel registreerib sissetulnud paketi, vaatab SPD poliitikat ja teeb otsuse, et kas krüpteerida pakett
  3. Kui otsus on Jah, hangib kernel IPsec-SA jaoks võtme SADilt
  4. Kui see ei õnnestu saadab kernel päringu võtme saamiseks racoonile.
  5. Racoon vahetab võtme kasutades IKEt teise ühenduse loodud Ipsec-SAga.
  6. Racoon suskab saadud võtme SADi.
  7. 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.

20110930 1257358 image002 725705 1285 0.png

IPsec VPN kasutamine OpenBSD'ga

IPSec kasutamine Debianiga

IPSec kasutamine FreeBSD'ga

http://et.wikipedia.org/wiki/IPsec

http://math.ut.ee/~mroos/turve/praks/ipsec/