Две групе клијената, један сервер: где спровести политику
Подмреже означавају групе, али их не изолују. Одлучите која путања прослеђивања поседује правило, затим напишите матрицу коју имплементација мора да спроведе.
Стављање две клијентске групе на различите подмреже изгледа као изолација, а није. Адресе описују одакле пакет наизглед долази, док је дозвола одлука коју доноси онај који га прослеђује. На то питање одговара конфигурација, а не маска, па одлучите која компонента прослеђује саобраћај између партнера пре него што напишете било какво правило.
Подмрежа је ознака, а не правило
Додела једног скупа по групи даје вам читљиве адресе и ништа друго. Клијент који прихвати додатну руту добио је достижност, а достижност није овлашћење. Дозвола за разговор налази се у одлуци о прослеђивању, која може да живи у демону или у кернелу, зависно од тога како је сервер конфигурисан.
Власништво над адресом чини префикс употребљивим као бирач групе. Сваки аутентификовани идентитет мора да одговара предвидљивој адреси или опсегу, а то мапирање пада чим неколико уређаја дели један акредитив и једну доделу. Решите идентитет и паралелност пре него што се ослоните на префикс извора, јер политика која нагађа која машина зове овлашћује погрешну у најгорем тренутку.
Изаберите путању која носи саобраћај између партнера
Када демон прослеђује пакете партнера унутар сопственог процеса, ти пакети никада не стижу до куке за прослеђивање домаћина, па их правило кернела не може видети. Искључите то унутрашње прослеђивање и кернел постаје тачка прослеђивања, где важе обична правила прослеђивања.
# peer forwarding inside the daemon: enforce with per-group policy instead of FORWARD rules
client-to-client
# kernel forwarding path: remove the line above, then filter in the forward chain
Истоварени канали података и сервери којима управља производ објављују сопствене моделе спровођења, зато потврдите који од њих покрећете уместо да претпостављате понашање заједнице. Квар који вреди избећи је правило које изгледа исправно на прегледу и никада се не пита током рада.
Напишите матрицу пре правила
Кратка матрица се лакше прегледа од скупа правила и она је уговор који имплементација мора да задовољи: партнери исте групе дозвољени, партнери преко група забрањени, обе групе дозвољене према једној именованој заједничкој услузи, све остало забрањено. Запишите та четири реда пре него што отворите уређивач ватрозида. Прегледач који не чита синтаксу правила ипак може да провери матрицу. Имплементација тада само мора да одговара редовима.
| Source | Destination | Decision |
|---|---|---|
| Group A address | Another Group A address | Allow |
| Group A address | A Group B address | Deny |
| Either group | The shared internal service | Allow |
| Either group | Anything not listed | Deny |
Држите три класе одредишта одвојено док је пишете. Услуга на домаћину VPN-а локални је улаз, други клијент је транзит партнера, а машина иза пролаза друга је путања прослеђивања. Једно издашно правило може случајно да дозволи сва три и тако групна политика постаје равна мрежа са додатним корацима. Запишите класу уз сваки ред да намера преживи следећу измену.
Сместите правила тамо где преживљавају
Додајте одлуке на исто место где се одржава остатак ватрозида, пре сваког дозвољавајућег правила које би их иначе прогутало. Редослед правила је део политике, а исправно правило смештено након широког одобрења не спроводи ништа. Забележите бројеве правила пре и после измене. Политика која постоји у уређивачу, али не у активном скупу правила, је план, а не контрола.
Одлучите шта се дешава са токовима који већ постоје када се политика промени, јер сесија отворена пре измене може да настави после ње. Ако члан који одлази мора одмах да изгуби приступ, скуп правила треба начин да прекине то стање уместо да чека да се веза сама затвори.
Учините правила трајним кроз механизам који поседује остатак ватрозида и забележите матрицу поред њих. Незабележена политика се поново изводи из памћења током следећег инцидента, обично од некога у журби.
Докажите то са обе стране
Тестирајте достижност унутар групе, неуспех између група и заједничку услугу са једног клијента у свакој групи. Један тест са једног клијента доказује половину матрице, а половина која се испушта обично је погрешна. Поновите смер забране двапут, јер кеширана сесија може да сакрије грешку у спровођењу. Забележите који сте пар тестирали да га следећа особа не понавља.
Поновите проверу на IPv6 ако га тунел носи и задржите уобичајену аутентификацију апликација. Префикс извора није налог, па пролазак кроз мрежну политику не значи да услуга треба да верује позиваоцу.