Жазбаларыңызда common name мен мекенжай бар, және барлығы клиентті жоятын сияқты көрінетін үш пәрмен бар. Тек біреуі ғана қалағаныңызды жасайды, ал таңдау қазір жүріп тұрған сессияны аяқтау, келесі кіруді қабылдамау немесе қосылу құқығын мүлдем алу қажеттігіне байланысты. Бірдеңеге тиіспес бұрын шын мәнінде иемденген сәйкестігіңізді оқыңыз, өйткені OpenVPN пулы кейін сол туннель мекенжайын басқа сессияға береді.

Шын мәнінде қандай сәйкестігіңіз бар

3-нұсқаның күй файлы — әдеттегі бастапқы нүкте. CLIENT_LIST бөлімі common name, нақты мекенжайды, байт санағыштарын және қосылу уақытын ұстайды; ROUTING TABLE бөлімі виртуалды мекенжайды соңғы сілтеме уақыт белгісімен бірге common name-ге сәйкестендіреді. Common name — тұрақты сәйкестік. Виртуалды мекенжай — бұл тағайындау, ал NAT артындағы нақты мекенжай серверде ештеңе өзгермей-ақ сессиялар арасында өзгеруі мүмкін.

Басқару интерфейсі status пәрмені арқылы ұқсас көрініс ұсынады және әр сессияға клиент ID қосады. client-kill дәл осы ID-ны күтеді, және бұл туннель мекенжайы емес. Қосылу сәтінде қай common name қай мекенжайды алғанын білу қажет болса, client-connect скриптінің ортасында екеуі де, сенімді сыртқы мекенжаймен бірге бар, бірақ бұл скрипт OpenVPN пайдаланушысы ретінде орындалады және жазылатын журнал жолын қажет етеді.

What you holdWhere it came fromWhat it can act on
Common nameCLIENT_LIST, or the auth hookkill, and credential revocation
Client IDstatus on the management socketclient-kill, that one session
Tunnel addressROUTING TABLE, client-connect environmentNothing durable, the address is recycled

Қазір өлтір, кіруде қабылдама, мүлдем жой

Басқару интерфейсіндегі екі жою пәрмені де сессия әрекеттері. kill common name немесе нақты мекенжай мен портты алады; client-kill клиент ID-сын алады және сол дананы бірден аяқтайды. Ешқайсысы бөгет емес: жарамды сертификат пен құпия сөзі бар шығарылған клиент бірнеше секундта қайта қосылады, бұл сынақ peer-ін қайта пайдаланғанда жақсы, ал ноутбук ұрланғанда пайдасыз.

client-deny — басқа түрдегі шешім. Ол әдетте аутентификация немесе client-connect ілгегінен шығарылады және сессияны себеппен қабылдамайды, сондықтан қосылысты тоқтататын емес, кіруді қабылдамайтын саясатқа сәйкес келеді. Құжаттама сонымен қатар TLS қайта келіссөздері кезінде шығарылған бас тарту қайта келісілген кілтті жарамсыз ететінін, ал қолданыстағы сессия өтпелі терезе жабылғанша жұмысын жалғастыра алатынын ескертеді. Талап клиенттің қазір кетуі болса, құжатталған жауап — client-kill.

Тұрақты жою осының бәрінен төмен. Сертификатты жойыңыз және crl-verify сервер шын мәнінде қайта жүктейтін тізімді нұсқайтынына көз жеткізіңіз, ccd каталогындағы клиентке тән конфигурация файлын өшіріңіз немесе аутентификация ілгегі сұрайтын backend-те тіркелгіні өшіріңіз. Жою да лезде емес: әдепкі reneg-sec параметрлерімен орнатылған сессия қайта келіссөзге дейін жұмысын жалғастыра алады, сондықтан сессия әрекеті мен тіркелгі деректері әрекеті бірін-бірі толықтырады, балама емес.

Басқару сокеті бос па?

Басқару интерфейсі бір уақытта бір клиентке қызмет көрсетеді. Егер GUI немесе бақылау демоны қосылысты әлдеқашан ұстап тұрса, скриптіңіз оның қасына қосыла алмайды, және клиентке байланысты таза сәтсіздікке ұшыраудың орнына бар клиентті ығыстыруыңыз мүмкін. Оның құпия сөзі сол сокетте ашық мәтінмен жүреді, сондықтан ол жергілікті мекенжайға немесе unix сокетіне тиесілі, ешқашан ашық интерфейске емес.

Сокетті ала алмағанда, әлі де нұсқаларыңыз бар және олардың бәрі баяуырақ. Егер бақылайсыз, әуелі GUI сессиясын босатыңыз, немесе тіркелгі деректері қабатының жолын қабылдап, келесі қайта келіссөзді күтіңіз. Істемеу керек нәрсе — бір клиенттен құтылу үшін қызметті қайта іске қосу, өйткені бұл барлық басқа сессияларды да аяқтайды және осы сессияның күй файлындағы дәлелдерді жояды.

Тірі серверде орындайтын ретіміз

Қосылыңыз, ағымдағы күйді оқыңыз, жаңа ғана оқыған ID бойынша әрекет етіңіз, содан кейін оны қайта оқыңыз. Құжаттан көшірілген мәндер қате адамды өлтірудің ең кең тараған жолы.

status                     # note the client ID and common name
client-kill 3              # end that session now
kill Test-Client           # alternative: by common name
status                     # confirm the session is gone

Жоғарыдағы ат пен нөмір — орын толтырғыштар, ал ID-лар басқа клиенттер ажырағаннан кейін қайта пайдаланылады. Бірдеңені орындалды деп жазудан бұрын жолдың жоқтығын растаңыз және қосылған клиенттер саны бірнеше емес, бірге жылжығанын тексеріңіз.

Оның тыс қалғанын растаңыз

Common name-ді, туннель мекенжайын, сыртқы мекенжайды және жою минутын жазып алыңыз. Егер сол common name бір минуттан кейін қайта пайда болса, сессия әрекеті істеді, ал тіркелгі деректері қабаты істемеді, бұл ешқашан күшіне енбеген пәрменді жөндеуден мүлдем өзгеше.

Содан кейін клиент жағынан сынаңыз. Жойылған сертификат келесі қол алысуда сәтсіз болуы керек; егер ол әлі қосылса, CRL мүлдем оқылмайды, және бұл хабарлауға тұрарлық табыс. Не әрекетті аяқтау қажеттігіне қарай таңдаңыз, екінші status-мен растаңыз және жауап сессиядан ұзақ сақталуы керек болса, тіркелгі деректері қабатын түзетіңіз.

Қатысты мақалалар