Защо VPN интерфейсът ви постоянно напуска зоната си във firewalld
Зоната се задържа, докато тунелът се свърже отново, после изчезва. Разберете дали NetworkManager или firewalld притежава този интерфейс, преди да поставите командата.
Добавяте tun0 към правилната зона, приложението започва да работи и поправката се изпарява при следващото повторно свързване. Повторното изпълнение на същата команда работи, което създава впечатление, че firewalld е забравил. Не е забравил; нещо с по-силно право върху този интерфейс го е преназначило.
Зоната се задържа, докато интерфейсът не бъде създаден наново
Присвояването на зона във firewalld за даден интерфейс е обвързване, а обвързванията са вързани към обекта на интерфейса във вида, в който съществува сега. VPN клиент, който разрушава устройството и го създава наново, произвежда нов обект, а новият започва от това, което каже компонентът, който присвоява. Затова симптомът се повтаря при всяко повторно свързване, а не при всеки пакет.
Същата логика обяснява поведението при рестартиране: обвързванията по време на изпълнение не преживяват рестарт, а постоянните обвързвания се отнасят само за устройства, които firewalld смята за свои.
Преди да промените нещо, разберете кой компонент присвоява зоната.
Прочетете три неща, преди да промените нещо
Запишете зоната, която интерфейсът има в момента, активните зони с техните интерфейси и постоянния списък с интерфейси за зоната, която възнамерявате. Изпълнете тези заявки преди промяната, след повторно свързване и след рестарт. Сравняването на трите резултата показва дали обвързването се заменя, пренебрегва или просто се прилага късно. Ако постоянният списък вече назовава устройството, а зоната по време на изпълнение не е съгласна, нещо отменя вашата редакция.
Записвайте и действителното име на устройството на всяка стъпка, защото тунел, който днес попада на tun0, утре може да попадне на tun1.
Запазено обвързване към общо име не е проверка на идентичност и две минути запис спестяват час догадки.
Когато NetworkManager притежава връзката
Ако NetworkManager управлява VPN връзката, профилът му носи зоната и я предава на firewalld, когато връзката се активира. Тогава постоянно обвързване на интерфейс във firewalld за същото устройство може да бъде пренебрегнато, защото собственик е NetworkManager. Задайте зоната на връзката и потвърдете, че редактирате VPN профила, а не несвързана физическа връзка или временен запис.
Промяната на това свойство може да засегне активна връзка веднага.
Дръжте път за управление на разположение и прочетете политиката на целевата зона, преди да я приложите. Редактирането на полето ZONE в ifcfg файл е правилно само там, където този файл все още е източникът на конфигурация.
Когато firewalld притежава обвързването
За самостоятелен тунел с умишлено стабилно име на интерфейса постоянната промяна на интерфейса е правилният инструмент. Приложете я чрез презареждането или жизнения цикъл, който използва внедряването ви, после прегледайте състоянието по време на изпълнение, защото редакция само в постоянните настройки описва намерение, а не това, което е активно. Двете могат да се разминават толкова дълго, колкото отнема презареждането.
Ако името на интерфейса е динамично, поддържайте присвояването през жизнения цикъл на връзката, вместо да се състезавате с който тунел първи заеме името.
Не хвърляйте интерфейса в trusted само за да проработи приложението.
Тествайте презареждането, повторното свързване и рестарта
Една промяна е завършена само когато преживее и трите.
Първо презаредете, защото там изчезват редакциите само по време на изпълнение. След това свържете тунела отново, защото там замененият интерфейс губи обвързването си. След това рестартирайте, защото там най-накрая се показва несъответствието на собственика. Записвайте зоната на всеки етап и я сравнявайте с намерението, което сте записали, и отбележете коя стъпка е създала разликата.
Ако зоната е правилна, а приложението все още се проваля, проблемът е в правилата на зоната или в класификация по източник, а не в членството. Документацията на firewalld за връзките и интерфейсите е справката за това как трябва да работи собствеността.
Запишете собственика, стойността и очаквания резултат в runbook, и следващото преназначаване ще бъде обяснимо.