IPsec заснован на рутама предаје табели рутирања одлуку коју су раније доносили селектори политике. На Linux-у део који то омогућава је XFRM интерфејс: виртуелни уређај чији се саобраћај упарује са IPsec стањем преко идентификатора интерфејса, а не преко селектора. Прављење једног траје једну команду и ништа не доказује о томе да ли тунел постоји. Уређај је кука између рутирања и безбедносне политике, и обе стране те куке морају бити конфигурисане пре него што било шта буде заштићено.

Шта уређај јесте, а шта није

XFRM интерфејс је ручка за рутирање. Пакети рутирани у њега упарују се са XFRM политикама које се позивају на исти идентификатор интерфејса, и ако постоје политика и стање, бивају инкапсулирани. Без њих интерфејс постоји, бројачи стоје, а саобраћај иде негде без користи.

То је прва дијагностичка подела. Рута у уређај је чињеница рутирања, инсталирано стање је безбедносна чињеница, а бројач који расте на уређају није ни једно ни друго. Када људи кажу да је тунел подигнут јер интерфејс показује UP, они описују заставице везе виртуелног уређаја који нема сопственог партнера. Заставица значи да је уређај направљен и укључен, ништа више.

Још једна граница: идентификатор интерфејса није име. Два уређаја са сличним именима и различитим идентификаторима не деле стање, а веза конфигурисана са погрешним идентификатором инсталира стање које ниједна рута никада неће користити.

Направите један правилним редоследом

Почните од спољног уређаја и броја који ћете такође ставити у конфигурацију демона. Пример користи eth0 као спољни интерфејс и 42 као идентификатор, адресе које треба да замените својим.

Подигните уређај, затим потврдите идентификатор који је језгро забележило пре него што додирнете VPN конфигурацију:

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]*'

Сада конфигуришите везу у strongSwan-у са истим идентификатором, јер демон мора да инсталира политике и стања која се на њега позивају. Поставите локални и удаљени селектор саобраћаја на опсег који намеравате да рутирате, затим усмерите тај опсег у уређај. Конфигурација демона и табела рутирања морају да се сложе и око идентификатора и око одредишта, и ниједна не обезбеђује другу.

Држите IKE и ESP изван руте тунела

Подразумевана рута усмерена у XFRM уређај хвата инкапсулиране пакете и саобраћај који они носе. Резултат је петља: мрежни пролаз покушава да пошаље свој ESP кроз тунел који ESP треба да изгради.

Решење је конкретнија рута за спољну адресу партнера кроз физички интерфејс, која побеђује подразумевану јер се поклапа са више битова. Рутирање засновано на ознакама ради исти посао када неколико тунела дели једну табелу, и strongSwan документује оба приступа за распоређивања заснована на рутама.

Шта год да изаберете, проверите да спољни пакет излази без инкапсулације. Брза провера је да пингујете спољну адресу партнера након што се тунел подигне; ако то не успе док је интерфејс подигнут, сумњајте на пресретање, а не на доступност. Исто размишљање важи и за IKE порт, јер сопствени UDP саобраћај демона не сме да се рутира у уређај који он покушава да успостави.

Проверите бројаче на два места пре него што оптужите шифровање

Бројачи интерфејса и бројачи стања мере различите фазе. Пакети рутирани у уређај повећавају бројач уређаја чак и када ниједно стање не одговара, док се бројачи стања померају само за саобраћај који је заиста био инкапсулиран.

Прочитајте оба, затим прочитајте поглед демона на подређену асоцијацију:

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

Раст бројача уређаја уз празан излаз стања значи да рутирање ради, а политика се не поклапа, обично грешка у идентификатору или селектору. Раст бројача стања док удаљена страна ништа не извештава значи да пакети излазе, али не стижу или не пролазе аутентификацију, што указује на путању или конфигурацију партнера. Наведена подређена асоцијација без саобраћаја је проблем селектора на једном крају, а не покварен шифрар.

Одлучите ко инсталира руте

Два власника једне табеле рутирања уобичајен су извор треперена. Ако демон инсталира руте аутоматски, ваш менаџер мреже не сме такође да инсталира подразумевану руту кроз исти уређај, а ручна рута коју дода стартна скрипта биће уклоњена следећи пут када се демон реконфигурише.

Изаберите једног власника и запишите то. Када руте припадају демону, држите стартну скрипту изван табеле и допустите дефиницији везе да опише селекторе саобраћаја. Када их поседује менаџер мреже, искључите аутоматску инсталацију и прихватите да демон неће поправити руту која недостаје при поновном повезивању.

Правила прослеђивања и заштитног зида су одвојена одлука поврх тога, јер мрежном пролазу који пропушта саобраћај других домаћина треба обоје. IPsec заснован на рутама чини тај саобраћај лаким за изражавање обичним алатима за рутирање; он не чини слој политике опционим.

Повезани чланци