Имате common name и адреса во белешките и три команди што сите изгледаат како да отстрануваат клиент. Само една го прави тоа што го сакате, а изборот зависи од тоа дали треба да ја завршите сесијата што работи сега, да го одбиете следното најавување или целосно да го одземете правото да се поврзувате. Прочитајте го идентитетот што навистина го имате пред да допрете нешто, бидејќи базенот на OpenVPN подоцна ја дава истата тунелска адреса на друга сесија.

Кој идентитет навистина го имате

Датотеката за состојба од верзија 3 е вообичаената почетна точка. Секцијата CLIENT_LIST го носи common name, вистинската адреса, бројачите на бајти и времето на поврзување; секцијата ROUTING TABLE ја пресликува виртуелната адреса на common name со временска ознака на последната референца. Common name е стабилниот идентитет. Виртуелната адреса е доделување, а вистинската адреса зад NAT може да се промени меѓу сесии, без ништо на серверот да се промени.

Интерфејсот за управување прикажува сличен поглед преку својата команда status и додава ID на клиент по сесија. Токму тој ID го очекува client-kill, и тоа не е тунелската адреса. Ако треба да знаете кој 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 и поправете го слојот на акредитиви кога одговорот треба да трае подолго од сесијата.

Поврзани статии