Спрете правилната OpenVPN връзка: преден план, systemd или NM
Командата, която прекъсва тунел, зависи от това кой го е стартирал. Сравнете собствениците на предния план, systemd, NetworkManager и OpenVPN 3, преди да изпратите сигнал.
Затварянето на прозорец на терминала не е същото като затваряне на тунел, а убиването на процес не е същото като спиране на услуга. В Linux командата, която действително прекъсва връзката, зависи от това кой компонент е стартирал връзката и следователно притежава жизнения ѝ цикъл. Сравнението по-долу обхваща четирите подредби, които най-вероятно ще срещнете, и идентификатора, който всяка от тях изисква.
Клиенти на преден план и демонизирани клиенти
Клиент, стартиран на ръка в терминал, принадлежи на този терминал. Ctrl+C предава прекъсване, клиентът разваля интерфейса си и тунелът приключва. Нищо друго не трябва да бъде уведомявано.
Клиент, стартиран чрез обвивка на shell и оставен на заден план, не принадлежи на никого конкретно и точно в този случай хората посягат към killall. Първо намерете процеса, потвърдете, че командният му ред споменава профила, който имате предвид, и след това изпратете нормалния сигнал за прекратяване. Наблюдаван процес, убит под своя наблюдател, просто ще бъде рестартиран, затова идентифицирането на собственика е по-важно от избора на сигнал. Изпращайте сигнал към групата процеси само след като сте потвърдили, че никой друг тунел не я споделя.
SIGUSR1 не е прекъсване; той иска от клиента да рестартира тунела.
Инстанции на systemd
Когато unit притежава връзката, unit е обектът, който трябва да се спре. Шаблонните инстанции като openvpn-client@office носят името на профила и спирането на шаблонната цел вместо инстанцията може да засегне всеки клиент на хоста.
systemctl list-units 'openvpn-client@*'
systemctl stop [email protected]
Прочетете ExecStart на unit, когато не сте сигурни кой профил е заредила инстанцията.
Разрешена unit ще се върне при следващото зареждане, което е отделно решение от спирането ѝ сега. Забранявайте я само след като решите, че връзката не трябва да се връща, и запишете това решение там, където следващият администратор ще го намери.
Профили на NetworkManager
Профил, управляван от NetworkManager, не е процес, на който можете да изпратите сигнал. Мениджърът притежава жизнения цикъл и обектът, върху който трябва да се действа, е активната връзка, идентифицирана с UUID, а не с показваното име. Прочитането на активния списък първо показва и дали втори тунел работи под име, което не сте очаквали.
nmcli connection show --active
nmcli connection down uuid actual-uuid
Показваните имена се повтарят, а името на файла на профила не е неговият идентификатор, затова копирайте UUID от списъка. Ако връзката се върне веднага, нещо я активира: запис secondaries на базова връзка, скрипт на диспечера или флаг за автоматично свързване. Спирането на връзката на мениджъра е правилната първа стъпка, а повторното активиране е следващият въпрос. Не изтривайте профила, за да спрете повторното активиране, защото това премахва и идентификационните данни, които може да ви трябват утре.
Справочникът с команди на мениджъра документира как се избира цел за down.
Сесии на OpenVPN 3
OpenVPN 3 Linux използва модел на сесии, а не процес за всеки тунел. Преглеждате сесиите, които услугата познава, след което действате върху един път на сесия. Пътят е идентификаторът и не е взаимозаменяем с име на конфигурация.
openvpn3 sessions-list
openvpn3 session-manage --path /net/openvpn/v3/sessions/... --disconnect
Прекъсването на всички сесии е различно действие и трябва да бъде умишлено.
Един хост може да съдържа сесии на няколко потребителя, затова първо направете списък и потвърдете собственика на сесията, която ще прекратите.
Какво да проверите след това
Проверете три неща след всяко от тези спирания: списъкът с активни връзки вече не съдържа тунела, интерфейсът е изчезнал и търсенето на маршрут за вътрешен адрес вече не избира устройство на тунел. След това решете какво ще се случи при следващото зареждане.
ip -brief address
ip route get 10.8.0.1
Премахването на интерфейс на ръка не спира собственика и оставя почистването наполовина.
Прекъсването сега, предотвратяването на следващото автоматично стартиране и разрешаването на трафик извън VPN след това са три отделни избора. Направете всеки от тях изрично.