Linux'ta bir VPN tünelinin gerçekten çalışıp çalışmadığı nasıl kontrol edilir
Arayüz bayrakları, rota sorguları, 220 numaralı tablo ve el sıkışma zaman damgaları farklı soruları yanıtlar. Her betik adımını öncülünü kanıtlayan teste bağlayın.
Cron her on dakikada bir tamamen sağlıklı bir VPN'i yeniden başlatır ve aynı iş ölü bir tanesini bir hafta boyunca çalışır bırakır. Her iki hata da «ayakta»yı en az dört ayrı olgu varken tek bir olgu saymaktan kaynaklanır. Bir aygıt yönetimsel olarak etkin, doğru rotalanmış, tamamen şifrelenmiş olabilir ve yine de işe yarar hiçbir şey taşımaz. Önce gözlemleri ayırın, denetim neredeyse kendi kendine yazılır.
Bağlantı bayrakları aygıtı anlatır, yolu değil
Herkesin kopyaladığı denetim, tamamen sıfırlardan oluşan bir donanım adresi arar. Bu hile bazı sürücülerde gerçek arayüzü bir yer tutucudan ayırır, geri kalanında hiçbir şey kanıtlamaz, çünkü tun aygıtının bildirecek MAC'i bile yoktur. ip -brief link show tun0 bunun yerine bayraklar verir: UP bir yöneticinin aygıtı etkinleştirdiğini, ve LOWER_UP sürücünün bağlantıyı kullanılabilir saydığını gösterir. Birlikte okunduğunda, aygıtın var olduğunu ve yönetimsel olarak kapalı olmadığını söylerler. Hiçbiri paketin gidecek bir yeri olduğunu söylemez.
OpenVPN tun aygıtını rotalar kurulmadan önce oluşturur, bu yüzden hiçbir şey rotalanmamışken bayraklar kusursuz görünebilir. Onları ön koşul olarak görün, asla yanıt olarak değil.
Paketin nereye gideceğini sorun
Rota sorgusu bayrakların yanıtlayamadığı soruyu yanıtlar. ip route get 10.8.0.1 from 10.8.0.2 arayüzü, kaynak adresi ve çekirdeğin kullanacağı tabloyu adlandırır; bölünmüş tünelin tam olarak buna karşı denetlenmesi gerekir. Kaynak adresi olmadan başka bir şey soruyorsunuz, politika tabanlı yönlendirmede yanıt kaynağa göre değişebilir. Bu, en ucuz dürüst testtir, çünkü trafiğinizin kullanacağı aynı kurallara danışır.
WireGuard için el sıkışmayı ekleyin. wg show her eş için son el sıkışma zaman damgasını yazdırır ve ilerlemeyi durduran damga, arayüz bayrakları ne derse desin eşin gittiği anlamına gelir. Yakın zamanda el sıkışma olmayan yapılandırılmış arayüz, ev yapımı izlemede en sık görülen yanlış pozitiflerden biridir.
220 numaralı tablo IPsec'in hikâyesini anlatır
strongSwan, rota kurulumu etkinken görüşülen seçiciler için rotaları 220 numaralı tabloya kurar. ip route list table 220 bu yüzden görüşüleni rotalanmıştan ayırır: yüklü bir bağlantının yanındaki boş tablo, IKE ve CHILD SA'ların kalktığını ama onlara hiçbir trafiğin yönlendirilmediğini gösterir. Şunu denetleyin: ip xfrm state yanında, çünkü kurulu güvenlik ilişkilerini ve uç noktalarını listeler.
Tuzak politikası dikkat edilmesi gereken durumdur. Yönlendirmek yerine ilgi çekici trafiği bekler, bu yüzden bir şey tüneli tetikleyene kadar tablo boş kalır.
Yönetici durumu ve daemon durumu farklı listelerdir
NetworkManager yalnızca sahibi olduğu bağlantıları listeler. nmcli -t -f NAME,TYPE connection show --active doğrudan wg-quick veya bir OpenVPN daemonu tarafından başlatılan tünel için hiçbir şey döndürmez.
Bu ayrım, bir betiğin iki yöneticiden hangisine soracağına karar vermesi gerektiğinde önemlidir. Bu ana makinede tünele gerçekten sahip olanı seçin ve diğerinin sessizliğini yok sayın. İkisi de varsa hangisinin yetkili olduğuna karar verin ve ikincisini kapatın, çünkü tek bir arayüzde rotaları yeniden yazan iki yönetici kimsenin yeniden üretemeyeceği arızalar üretir. Eksik kayıt yönetici hakkında bilgidir, tünel hakkında değil.
Sonraki adımı ihtiyaç duyduğu teste bağlayın
Bir UDP bağlantı noktasını yoklamak hazır olma hakkında hiçbir şey kanıtlamaz, çünkü UDP'de el sıkışma yoktur ve nc -u paket çıkar çıkmaz başarılı olur. Sonraki adımın gerçekte ne tükettiğini test edin: yönlendirilmiş bağlantı noktasına bir TCP bağlantısı, tünel içindeki bir ana makineye istek, yalnızca orada çözülen bir ad. Beklemeyi bir zaman aşımı ve deneme sayısıyla sınırlayın ve tükendiğinde yüksek sesle başarısız olun.
İstemci kancalar sunduğunda kancalar yoklamayı yener. --up ve --down OpenVPN komut dosyaları arayüz durumu değiştikten sonra çalışır, bu yarışı tamamen ortadan kaldırır, ancak daemonun sakladığı ayrıcalıklarla çalışırlar. OpenVPN user ve group aracılığıyla ayrıcalıksız bir hesaba indiyse, kanca o hesap olarak çalışır. Ardından bir sistem hizmetini yeniden başlatmak, tam olarak bu komuta izin vermek için sudo gerektirir. Yeniden denemeyi cron döngüsü yerine hizmet yöneticisine bırakın: başlatma sınırı olan sınırlı bir yeniden başlatma politikası bozuk tüneli ortaya çıkarır, sınırsız bir döngü ise onu sonsuza kadar gizler.