એક OpenVPN ક્લાયન્ટને બહાર કાઢવો: kill, deny કે સર્ટિફિકેટ રદ કરવું?
OpenVPNની ત્રણ ક્રિયાઓ ક્લાયન્ટને દૂર કરે છે, પણ દરેક અલગ વસ્તુ પૂરી કરે છે: જીવંત સત્ર, એક લોગિન પ્રયાસ, અથવા ફરી જોડાવાનો અધિકાર. ઓળખ પ્રમાણે પસંદ કરો.
તમારી નોંધમાં એક 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 hold | Where it came from | What it can act on |
|---|---|---|
| Common name | CLIENT_LIST, or the auth hook | kill, and credential revocation |
| Client ID | status on the management socket | client-kill, that one session |
| Tunnel address | ROUTING TABLE, client-connect environment | Nothing durable, the address is recycled |
હમણાં મારો, લોગિન વખતે નકારો, કાયમ માટે રદ કરો
મેનેજમેન્ટ ઇન્ટરફેસ માં બંને દૂર કરવાના આદેશો સત્ર-ક્રિયાઓ છે. kill common name અથવા વાસ્તવિક સરનામું અને પોર્ટ લે છે; client-kill ક્લાયન્ટ ID લે છે અને તે ઘટક તરત જ પૂરો કરે છે. બંનેમાંથી કોઈ અવરોધ નથી: માન્ય સર્ટિફિકેટ અને પાસવર્ડ ધરાવતો બહાર કાઢેલો ક્લાયન્ટ સેકન્ડોમાં ફરી જોડાય છે, જે પરીક્ષણ peer ફરી વાપરતી વખતે સારું છે અને લેપટોપ ચોરાય ત્યારે નકામું.
client-deny બીજા પ્રકારનો નિર્ણય છે. સામાન્ય રીતે તે authentication અથવા client-connect હૂકમાંથી જારી થાય છે અને કારણ સાથે સત્ર નકારે છે, તેથી તે એવી નીતિને અનુકૂળ છે જે લોગિન નકારે, એવીને નહીં જે જોડાણ તોડે. દસ્તાવેજીકરણ એ પણ ચેતવે છે કે TLS પુનઃવાટાઘાટ દરમિયાન જારી કરાયેલો ઇનકાર પુનઃનિર્ધારિત કીને અમાન્ય કરે છે જ્યારે હાલનું સત્ર સંક્રમણ વિન્ડો બંધ થાય ત્યાં સુધી ચાલી શકે છે. જો માંગ એ હોય કે ક્લાયન્ટ હવે ગયો હોય, તો દસ્તાવેજી જવાબ client-kill છે.
ટકાઉ દૂર કરવું એ આ બધાની નીચે છે. સર્ટિફિકેટ રદ કરો અને ખાતરી કરો કે crl-verify એવી સૂચિ તરફ નિર્દેશ કરે છે જે સર્વર ખરેખર ફરી લોડ કરે છે, ccd ડિરેક્ટરીમાં ક્લાયન્ટ-વિશિષ્ટ રૂપરેખા ફાઇલ નિષ્ક્રિય કરો, અથવા જે backendને authentication હૂક પૂછે છે ત્યાં ખાતું નિષ્ક્રિય કરો. રદ કરવું પણ તાત્કાલિક નથી: ડિફૉલ્ટ 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 સાથે ખાતરી કરો, અને જ્યારે જવાબ સત્ર કરતાં વધુ ટકવો જોઈએ ત્યારે ઓળખપત્ર સ્તર સુધારો.