Име ланца није кука: iptables наспрам nftables
Ланац је контејнер; кука одлучује да ли језгро њега прегледа. Упоредите уграђене ланце iptables-а са основним ланцима nftables-а пре измене правила.
Оба заштитна зида могу да филтрирају прослеђени VPN саобраћај, а правила причвршћују на путању пакета на различите начине. iptables има уграђене ланце унутар табеле, па FORWARD постоји као именована тачка куке. nftables одваја име ланца од његовог типа, куке и приоритета, што значи да обичан ланац назван FORWARD не филтрира ништа. Поређење два модела објашњава зашто запис који изгледа исправно у једном алату нема дејства у другом.
Ланац је контејнер. Да ли га језгро прегледа зависи од имплементације и од тога како га скуп правила причвршћује.
Два модела, два различита причвршћивања
У iptables-у табела filter долази са три уграђена ланца, INPUT, FORWARD и OUTPUT, а -N ствара кориснички дефинисан ланац који дејствује само када се на њега скочи из једног од њих. Приручник nftables-а уместо тога дефинише основне ланце, који објављују свој тип, куку и приоритет, и обичне ланце, који то не чине. Основни ланац може носити било које име, а обичан ланац назван FORWARD не добија никаква својства од своје ознаке. То је цела разлика и она је невидљива у упутству које приказује само текст правила.
Компатибилни позадински слојеви додају други разлог да се понашање не закључује из имена команде. Документација iptables-а бележи операције које се разликују под iptables-nft, па третирајте изворни nftables, iptables-nft и наследни скуп правила као три система, а не као три правописа једног.
Прочитајте грешку у њеном стварном контексту
Табела која недостаје, неуспех дозволе, недоступна могућност језгра и именовани ланац који недостаје јесу четири различита налаза, а само један се односи на ланац. Забележите верзију алата, затражену породицу адреса и табелу, мрежни простор имена и прву тачну грешку. Затим проверите која компонента поседује скуп правила: служба заштитног зида или пролаз којим управља производ може да генерише сопствене ланце и редослед. Додавање изворног ланца поред њих оставља управљану политику нетакнутом, а попис збуњујућим.
Простор имена контејнера може да садржи другачији скуп правила од домаћина, па команда извршена у погрешном контексту не може да покаже који је ланац видео прослеђени пакет. Повишење привилегија зато што очекивани ланац није био видљив није дијагноза.
Бројачи доказују достизање, не пресуду
Бројачи правила кажу да је правило достигнуто. Не кажу да је касније правило дозволило операцију и не доказују да је свака алтернативна путања одбијена. Читајте их током једног безопасног овлашћеног тока, заједно са редоследом правила и причвршћивањем ланца, и третирајте их као једно запажање, а не пресуду. Бројач различит од нуле на правилу drop значи да је саобраћај на њега наишао; о саобраћају који није наишао не говори ништа.
IP прослеђивање у језгру је потпуно засебно подешавање. Постојање ланца не укључује прослеђивање, а одсуство познате ознаке не значи да је прослеђивање стало.
Опишите ток који желите да заштитите
Запишите један захтев клијента после декапсулације: његов извор, одредиште, породицу адреса и да ли се завршава на пролазу или пролази кроз њега. Улаз локалне службе и прослеђени саобраћај посматрају се на различитим тачкама, па им требају различита правила и различити тестови. За мостни VPN проверите и путању моста, јер ланац на IP нивоу не надгледа Ethernet оквире аутоматски.
Сачувајте независан приступ за опоравак пре измене удаљеног пролаза. Затим потврдите предвиђени ток и потребна одбијања под истим скупом правила. Нови празан ланац са познатим именом није поправка.
Поређење се завршава једним питањем: коју куку језгро заиста позива за овај пакет? Одговорите на то и име ланца престаје да буде важно.