Вы дадаяце tun0 у патрэбную зону, праграма пачынае працаваць, а выпраўленне знікае пры наступным перападключэнні. Паўторны запуск той самай каманды працуе, і гэта стварае ўражанне, што firewalld забыўся. Ён не забыўся; нешта з большым правам на гэты інтэрфейс перапрызначыла яго.

Зона трымаецца, пакуль інтэрфейс не будзе створаны нанова

Прызначэнне зоны firewalld для інтэрфейса — гэта прывязка, а прывязкі звязаныя з аб’ектам інтэрфейса ў яго цяперашнім выглядзе. Кліент VPN, які зносіць прыладу і стварае яе нанова, атрымлівае новы аб’ект, і новы пачынае з таго, што скажа кампанент, які прызначае. Менавіта таму сімптом паўтараецца пры кожным перападключэнні, а не пры кожным пакеце.

Тая ж логіка тлумачыць паводзіны пры перазагрузцы: прывязкі часу выканання не перажываюць перазапуску, а пастаянныя прывязкі дзейнічаюць толькі для прылад, якія firewalld лічыць сваімі.

Перш чым нешта змяняць, высветліце, які кампанент прызначае зону.

Прачытайце тры рэчы, перш чым нешта змяняць

Запішыце зону, якая зараз ёсць у інтэрфейса, актыўныя зоны з іх інтэрфейсамі і пастаянны спіс інтэрфейсаў для патрэбнай вам зоны. Выканайце гэтыя запыты да змены, пасля перападключэння і пасля перазагрузкі. Параўнанне трох вынікаў пакажа, ці прывязку замяняюць, ці ігнаруюць, ці проста прымяняюць позна. Калі пастаянны спіс ужо называе прыладу, а зона часу выканання з гэтым не згаджаецца, нешта перакрэслівае вашае выпраўленне.

Таксама запісвайце фактычнае імя прылады на кожным кроку, бо тунель, які сёння трапляе на tun0, заўтра можа трапіць на tun1.

Захаваная прывязка да агульнага імя не з’яўляецца праверкай асобы, а дзве хвіліны запісу эканомяць гадзіну здагадак.

Калі злучэннем валодае NetworkManager

Калі NetworkManager кіруе злучэннем VPN, яго профіль нясе зону і перадае яе firewalld пры актывацыі злучэння. Пастаянная прывязка інтэрфейса firewalld для той жа прылады можа тады ігнаравацца, бо ўласнік — NetworkManager. Задайце зону на злучэнні і ўпэўніцеся, што вы рэдагуеце профіль VPN, а не старонняе фізічнае злучэнне ці часовы запіс.

Змена гэтай уласцівасці можа адразу паўплываць на актыўнае злучэнне.

Трымайце шлях кіравання даступным і прачытайце палітыку мэтавай зоны, перш чым яе ўжываць. Рэдагаваць поле ZONE у файле ifcfg правільна толькі там, дзе гэты файл усё яшчэ з’яўляецца крыніцай канфігурацыі.

Калі прывязкай валодае firewalld

Для асобнага тунеля з наўмысна стабільным імем інтэрфейса пастаянная змена інтэрфейса — правільны інструмент. Ужывіце яе праз перазагрузку або жыццёвы цыкл, які выкарыстоўвае ваша разгортванне, затым агледзіце стан часу выканання, бо змена толькі ў пастаянных наладах апісвае намер, а не тое, што актыўна. Яны могуць разыходзіцца ўвесь час, патрэбны на перазагрузку.

Калі імя інтэрфейса дынамічнае, падтрымлівайце прызначэнне праз жыццёвы цыкл злучэння, замест таго каб гнацца з тым тунелем, які першым заняў імя.

Не кідайце інтэрфейс у зону trusted проста каб праграма запрацавала.

Праверце перазагрузку, перападключэнне і перазапуск

Змена завершаная толькі тады, калі яна перажывае ўсе тры.

Спачатку перазагрузіце, бо менавіта там знікаюць змены толькі часу выканання. Затым перападключыце тунель, бо менавіта там заменены інтэрфейс губляе прывязку. Затым перазапусціце, бо менавіта там нарэшце выяўляецца неадпаведнасць уласніка. Запісвайце зону на кожным этапе і параўноўвайце яе з намерам, які вы запісалі, і адзначце, які крок стварыў розніцу.

Калі зона правільная, а праграма ўсё яшчэ не працуе, праблема ў правілах зоны або ў класіфікацыі па крыніцы, а не ў членстве. Дакументацыя firewalld пра злучэнні і інтэрфейсы — гэта даведка пра тое, як павінна працаваць уласнасць.

Запішыце ўласніка, значэнне і чаканы вынік у runbook, і наступнае перапрызначэнне будзе тлумачальным.

Падобныя артыкулы