Hizmet başlar, bir istemci ilişkilenir ve sunucu tarafında hiçbir zaman bir yol görünmez. Ya da arka plan programı başlamayı reddeder ve çalıştıramadığı bir komutu adlandırır. Her iki sonuç da genellikle bir sertleştirme kılavuzundan birlikte kopyalanan aynı üç satırı izler: ayrıcalıksız bir hesaba geçmek, gruptan vazgeçmek ve dosya sisteminin kökünü değiştirmek. Üçünden yalnızca biri dosyaları gizler ve yalnızca biri yönlendirme tablosunu değiştirme ayrıcalığını kaldırır. Bunları ayırmak, gerçekte hangi satırı istediğinizi öğrenmenin yoludur.

Hapishanenin kaldırdığı ama arka plan programının hâlâ ihtiyaç duyduğu şey

Kök değişikliği başlatmadan sonra gerçekleşir, bu yüzden arka plan programı zaten açtığı her şeyi korur ve daha sonra açacağı her şeyi kaybeder. Bağlantının bu noktadan sonra çalıştırdığı her yardımcı, yüklediği paylaşılan kitaplıklarla birlikte yeni kökün içinde var olmalıdır. Bir yapılandırma dosyasından ve bir sertifikadan oluşturulmuş bir hapishanede ikisi de yoktur.

Ayrıcalıksız bir hesaba geçmek ayrı bir kısıtlamadır. Root'tan vazgeçmiş bir süreç, ikili dosya tam orada olsa bile yolları değiştiremeyebilir veya bir arayüzü kaldıramayabilir, bu yüzden iki arıza ayrı ayrı teşhis edilmelidir.

Hangi düzeltmeye ihtiyacınız olduğuna üç koşul karar verir

İlk koşul, derlemenizin yolları nasıl kurduğudur. Yeni OpenVPN sürümleri arayüzü ve yönlendirme tablosunu süreç içinde yapılandırırken, daha eski paketler ve özel kurulumlar harici araçlara ya da up ve down betiklerine güvenir. Günlük bir komutu adlandırıyorsa, işin içinde harici bir araç vardır ve hapishane onu gizlemektedir. Günlük bunun yerine bir izin hatası gösteriyorsa, sorun hesaptır.

İkincisi bakımdır. Kopyalanmış ikili dosyalar içeren bir hapishane, bunları sağlayan paket her güncellendiğinde yenilenmelidir, aksi halde ilk güncelleme arkasında kırık bir tünel bırakır. Üçüncüsü, belirli bir denetimin gerçekten bir chroot gerektirip gerektirmediğidir; gereksinim aslında ayrıcalık ayrımıyla ilgiliyse, hesap değişikliği tek başına yeterli olabilir.

Signal in the logOther side of the boundaryRepair direction
Command not found after startupBinary and its libraries absent inside the new rootPopulate the jail, or drop the chroot line
Operation not permittedAccount lost the privilege to edit routesKeep the account privileged, or pre-create routes elsewhere
No such deviceJail lacks the tun device nodeCreate the node inside, or open it before the root change

Çalışan bir hapishanenin içermesi gerekenler

Komut çalıştıran bir hapishane, ikili dosyaya, bağlandığı her kitaplığa ve arka plan programının geç açtığı her aygıt düğümüne ihtiyaç duyar. Parçaları kopyalayın ve VPN olmadan test edin:

ldd /usr/sbin/ip
chroot /etc/openvpn/jail /sbin/ip route show
chroot /etc/openvpn/jail /sbin/ip link set tun0 up

İlk komut bağımlılıkları listeler ve insanların atladığı komut da budur. Bir kitaplık bulamayan kopyalanmış ikili dosya, eksik bir ikili dosyadan farklı bir iletiyle başarısız olur ve ikisi de istemci tarafından okunduğunda bir OpenVPN arızası gibi görünür. Komutu hapishane içinde elle çalıştırmak, hizmeti yeniden başlatmadan arızayı yeniden üretir.

Yapılandırmayı, sertifikaları ve varsa CRL'yi de hapishaneye kopyalayın, çünkü arka plan programının başlatmadan sonra yeniden okumayı beklediği bir dosya, kök değiştikten sonra bulunmayacaktır. Neyi kopyaladığınızı not edin, çünkü ağ paketinin bir sonraki güncellemesi orijinalleri değiştirir ve hapishaneyi eski kopyada bırakır.

Bunun yerine sertleştirmeyi küçültün

Hapishane yalnızca bir kılavuz öyle dediği için varsa, o tek satırı kaldırıp hesap kısıtlamalarını korumak savunulabilir bir sonuçtur. Arka plan programı dosya sistemi görünümünü korur ve sorundan kurtulur, ayrıcalık düşüşü ise uzun ömürlü süreçten root'u hâlâ kaldırır.

Neyin kaldığını ve nedenini yazın. Bir denetimi sessizce ve notsuz kaybeden bir yapılandırma, sertleştirmenin sürüklendiği yoldur ve bir sonraki denetim satırın neden kaybolduğunu soracaktır.

Seçmeden önce üç satırı ikiye ayırın

Yapılandırmayı kopyalayın, üç yönergenin hepsini devre dışı bırakın ve bir istemcinin bağlandığını ve beklenen yolların göründüğünü doğrulayın. Sonra yalnızca hesap satırlarını, ardından yalnızca chroot'u yeniden etkinleştirin. Tünelin kırıldığı adım sınırı belirler, ve hiçbir zaman neden olmayan bir hapishaneyi yeniden inşa etmekten kaçınırsınız.

Yeniden yönlendirme yaptığında, daha yüksek ayrıntı düzeyiyle bir istemci oturumu çalıştırın ve komutu ya da başarısız olan izni adlandıran satırı okuyun. O satır, istemcinin sonunda bildirdiği zaman aşımından daha değerlidir.

İlgili makaleler