Rûte-basearre IPsec jout de rûtetabel in beslissing dy't earder troch beliedsselektors nommen waard. Op Linux is it stik dat dit mooglik makket de XFRM-ynterface: in firtueel apparaat wêrfan't it ferkear troch in ynterface-identifisearder, net troch in selektor, oan IPsec-tastân keppele wurdt. Ien meitsje kostet ien opdracht en bewisset neat oer de fraach oft der in tunnel is. It apparaat is in heak tusken rûtering en befeiligingsbelied, en beide kanten fan dy heak moatte konfigurearre wêze foardat eat beskerme is.

Wat it apparaat is en wat it net is

In XFRM-ynterface is in rûteringshânfet. Pakketten dy't deryn rûte wurde, wurde keppele oan XFRM-belied dat nei deselde ynterface-identifisearder ferwiist, en as der in belied en in tastân binne, wurde se ynkapsulearre. Sûnder dy bestiet de ynterface, bliuwe de tellers stil, en giet it ferkear nei in plak dêr't it neat oan hat.

Dat is de earste diagnostyske splitsing. In rûte it apparaat yn is in rûteringsfeit, in ynstallearre tastân is in befeiligingsfeit, en in teller dy't op it apparaat omheech giet is gjin fan beide. As minsken sizze dat de tunnel omheech is om't de ynterface UP toant, beskriuwe se de keppelingsflaggen fan in firtueel apparaat dat gjin eigen pear hat. De flagge betsjut dat it apparaat makke en ynskeakele is, net mear.

Noch in grins: de ynterface-identifisearder is gjin namme. Twa apparaten mei like namme en ferskillende identifisearders diele gjin tastân, en in ferbining dy't mei de ferkearde identifisearder konfigurearre is, ynstallearret in tastân dy't gjin rûte ea brûke sil.

Bou ien yn 'e goede folchoarder

Begjin mei it bûtenapparaat en in nûmer datsto ek yn 'e daemonkonfiguraasje setst. It foarbyld brûkt eth0 as bûtenynterface en 42 as identifisearder, adressen dy'tsto ferfange moatst troch dyn eigen.

Helje it apparaat omheech en befêstigje dan de identifisearder dy't de kernel fêstlein hat foardatsto de VPN-konfiguraasje oanrekest:

sudo ip link add xfrm0 type xfrm dev eth0 if_id 42
sudo ip link set xfrm0 up
ip -d link show xfrm0 | grep -o 'if_id [0-9]*'

Konfigurearje no de ferbining yn strongSwan mei deselde identifisearder, want de daemon moat belied en tastannen ynstallearje dy't dêrnei ferwize. Set de pleatslike en fiere ferkearsselektors op it berik datsto rûte wolst, en rûte dat berik dan it apparaat yn. De daemonkonfiguraasje en de rûtetabel moatte it sawol oer de identifisearder as oer de bestimmings iens wêze, en gjinien leveret de oare.

Hâld IKE en ESP bûten de tunnelrûte

In standertrûte dy't it XFRM-apparaat yn wiist, fangt sawol de ynkapsulearre pakketten as it ferkear dat se drage. It resultaat is in lus: de gateway besiket syn eigen ESP troch de tunnel te stjoeren dy't ESP bouwe moat.

De oplossing is in mear spesifike rûte foar it bûtenadres fan 'e pear fia de fysike ynterface, en dy wint fan 'e standert om't er mear bits treft. Merk-basearre rûtering docht itselde wurk as ferskate tunnels ien tabel diele, en strongSwan dokumintearret beide oanpakken foar rûte-basearre útrols.

Watsto ek kiest, ferifiearje dat it bûtenpakket sûnder ynkapsulaasje fuortgiet. In flugge kontrôle is de bûtenadres fan 'e pear te pingjen nei't de tunnel omheech is; as dat misleit wylst de ynterface omheech is, fertink dan ûnderskepping en net berikberens. Deselde redenearring jildt foar de IKE-poarte, want it eigen UDP-ferkear fan 'e daemon mei net it apparaat yn rûte wurde dat er besiket op te setten.

Kontrolearje tellers op twa plakken foardatsto fersifering de skuld joust

Ynterface-tellers en tastânstellers mjitte ferskillende fazen. Pakketten dy't it apparaat yn rûte wurde, ferheegje it apparaat sels as gjin inkele tastân oerienkomt, wylst de tastânstellers allinnich bewege foar ferkear dat wier ynkapsulearre wie.

Lês beide, lês dan de werjefte fan 'e daemon fan 'e bemiddelingsassosjaasje:

ip -s link show xfrm0
sudo ip xfrm state list | grep -E 'src|proto|mode'
sudo swanctl --list-sas

Tellers fan it apparaat dy't omheech gean mei in lege tastânútfier betsjutte dat rûtering wurket en it belied net oerienkomt, meastentiids in flater yn 'e identifisearder of selektor. Tastânstellers dy't omheech gean wylst de fiere kant neat meldt, betsjutte dat de pakketten fuortgeane mar net oankomme of autentikaasje misse, wat op it paad of de pearkonfiguraasje wiist. In fermelde bemiddeling mei nul ferkear is in selektorprobleem oan ien ein, gjin brutsen sifer.

Beslis wa't de rûtes ynstallearret

Twa eigners foar ien rûtetabel binne de gewoane boarne fan flapping. As de daemon rûtes automatysk ynstallearret, mei dyn netwurkbehearder net ek in standertrûte troch itselde apparaat ynstallearje, en in hânmjittige rûte dy't in startskript tafoeget sil by de folgjende rekonfiguraasje fan 'e daemon fuortsmiten wurde.

Kies ien eigner en skriuw dat op. As de daemon de rûtes hat, hâld it startskript bûten de tabel en lit de ferbiningsdefinysje de ferkearsselektors beskriuwe. As de netwurkbehearder se hat, skeakelje automatyske ynstallaasje út en akseptearje dat de daemon in ûntbrekkende rûte by opnij ferbinen net reparearret.

Trochstjoer- en firewallregels binne dêrop in aparte beslissing, want in gateway dy't it ferkear fan oare hosts trochlitten moat beide hawwe. Rûte-basearre IPsec makket dat ferkear maklik út te drukken mei gewoane rûteringsark; it makket de beliedslaach net opsjoneel.

Relatearre artikelen