Tek bir OpenVPN istemcisini atmak: kill, deny yoksa sertifikayı iptal etmek mi?
Üç OpenVPN eylemi istemciyi kaldırır, ama her biri başka bir şeyi bitirir: canlı bir oturumu, tek bir oturum açma denemesini ya da yeniden bağlanma hakkını. Kimliğe göre seçin.
Notlarınızda bir common name ve bir adres var, ve hepsi istemciyi kaldırıyor gibi görünen üç komut. İstediğinizi yalnızca biri yapar ve seçim, şu anda çalışan oturumu bitirmeniz, sonraki oturum açmayı reddetmeniz yoksa bağlanma hakkını tamamen almanız gerekip gerekmediğine bağlıdır. Bir şeye dokunmadan önce gerçekte sahip olduğunuz kimliği okuyun, çünkü OpenVPN havuzu aynı tünel adresini daha sonra başka bir oturuma verir.
Gerçekte hangi kimliğe sahipsiniz
Sürüm 3 durum dosyası olağan başlangıç noktasıdır. CLIENT_LIST bölümü common name'i, gerçek adresi, bayt sayaçlarını ve bağlantı süresini taşır; ROUTING TABLE bölümü sanal bir adresi son başvuru zaman damgasıyla birlikte common name'e eşler. Common name kararlı kimliktir. Sanal adres bir atamadır ve NAT arkasındaki gerçek adres, sunucuda hiçbir şey değişmeden oturumlar arasında değişebilir.
Yönetim arayüzü status komutuyla benzer bir görünüm sunar ve her oturum için bir istemci ID'si ekler. client-kill tam da bu ID'yi bekler ve bu tünel adresi değildir. Bağlantı anında hangi common name'in hangi adresi aldığını bilmeniz gerekiyorsa, client-connect betiğinin ortamında her ikisi ve güvenilen dış adres bulunur, ancak o betik OpenVPN kullanıcısı olarak çalışır ve yazılabilir bir günlük yoluna ihtiyaç duyar.
| 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 |
Şimdi öldür, girişte reddet, kalıcı olarak iptal et
Yönetim arayüzündeki iki kaldırma komutu da oturum eylemidir. kill bir common name ya da gerçek adres ve port alır; client-kill istemci ID'sini alır ve o örneği hemen sonlandırır. Hiçbiri engel değildir: geçerli sertifikası ve parolası olan atılmış bir istemci saniyeler içinde yeniden bağlanır, bu bir test eşini geri dönüştürürken iyidir ve bir dizüstü bilgisayar çalındığında işe yaramaz.
client-deny farklı türde bir karardır. Genellikle bir kimlik doğrulama ya da client-connect kancasından verilir ve oturumu bir gerekçeyle reddeder, bu yüzden bağlantıyı kesen değil oturum açmayı reddeden bir politikaya uyar. Belgeler ayrıca TLS yeniden müzakere sırasında verilen bir reddin, yeniden müzakere edilen anahtarı geçersiz kıldığını, mevcut oturumun ise geçiş penceresi kapanana kadar sürebileceğini uyarır. Gereksinim istemcinin hemen gitmesiyse, belgelenmiş yanıt client-kill.
Kalıcı kaldırma tüm bunların altındadır. Sertifikayı iptal edin ve crl-verify'in sunucunun gerçekten yeniden yüklediği bir listeye işaret ettiğinden emin olun, ccd dizinindeki istemciye özgü yapılandırma dosyasını devre dışı bırakın ya da kimlik doğrulama kancasının sorguladığı arka uçta hesabı devre dışı bırakın. İptal de anlık değildir: varsayılan reneg-sec ayarlarıyla kurulmuş bir oturum yeniden müzakere edene kadar çalışmaya devam edebilir, bu yüzden oturum eylemi ve kimlik bilgisi eylemi birbirini tamamlar, alternatif değildir.
Yönetim soketi boş mu?
Yönetim arayüzü aynı anda tek bir istemciye hizmet eder. Bir GUI ya da izleme arka plan süreci bağlantıyı zaten tutuyorsa, betiğiniz onun yanına eklenemez ve istemciye bağlı olarak temiz biçimde başarısız olmak yerine mevcut olanı dışarı itebilirsiniz. Parolası o soket üzerinden düz metin olarak gider, bu yüzden yerel bir adrese ya da unix soketine aittir, asla genel bir arayüze değil.
Soketi alamadığınızda hâlâ seçenekleriniz var ve hepsi daha yavaştır. Kontrol ediyorsanız önce GUI oturumunu bırakın ya da kimlik bilgisi katmanı yolunu kabul edip bir sonraki yeniden müzakereyi bekleyin. Yapmamanız gereken şey, bir istemciden kurtulmak için hizmeti yeniden başlatmaktır, çünkü bu diğer tüm oturumları da bitirir ve bu oturumun durum dosyası kanıtlarını yok eder.
Canlı bir sunucuda çalıştırdığım sıra
Bağlanın, mevcut durumu okuyun, az önce okuduğunuz ID üzerinde işlem yapın, sonra yeniden okuyun. Bir belgeden kopyalanan değerler yanlış kişiyi öldürmenin en yaygın yoludur.
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 goneYukarıdaki ad ve numara yer tutucudur ve ID'ler diğer istemciler bağlantıyı kestikten sonra yeniden kullanılır. Bir şeyi tamamlandı olarak yazmadan önce satırın olmadığını doğrulayın ve bağlı istemci sayısının birkaç değil bir arttığını kontrol edin.
Uzakta kaldığını doğrulayın
Common name'i, tünel adresini, dış adresi ve kaldırma dakikasını kaydedin. Aynı common name bir dakika sonra yeniden görünürse oturum eylemi işe yaramış, kimlik bilgisi katmanı yaramamıştır; bu, hiç yürürlüğe girmemiş bir komutun onarımından tamamen farklıdır.
Sonra istemci tarafından test edin. İptal edilmiş bir sertifika bir sonraki el sıkışmada başarısız olmalıdır; hâlâ bağlanıyorsa CRL hiç okunmuyordur ve bu, bildirmeye değer bulgudur. Eylemi neyi bitirmeniz gerektiğine göre seçin, ikinci bir status ile doğrulayın ve yanıt oturumdan daha uzun sürmesi gerektiğinde kimlik bilgisi katmanını düzeltin.