Rota tabanlı IPsec, XFRM arayüzüyle nasıl çalışır
XFRM arayüzü, rota tabanlı IPsec'e yönlendirme yapacağı bir aygıt verir. if_id, arkasındaki güvenlik ilişkileri ve dış rota hepsi uyuşmalıdır.
Rota tabanlı IPsec, yönlendirme tablosuna eskiden ilke seçicilerinin verdiği kararı devreder. Linux'ta bunu mümkün kılan parça XFRM arayüzüdür: trafiği seçici yerine bir arayüz tanımlayıcısıyla IPsec durumuyla eşleştirilen sanal bir aygıt. Bir tane oluşturmak tek bir komut alır ve bir tünelin var olup olmadığına dair hiçbir şey kanıtlamaz. Aygıt, yönlendirme ile güvenlik ilkesi arasında bir kancadır ve o kancanın iki tarafı da bir şey korunmadan önce yapılandırılmalıdır.
Aygıt nedir ve ne değildir
XFRM arayüzü bir yönlendirme tutamacıdır. İçine yönlendirilen paketler aynı arayüz tanımlayıcısına başvuran XFRM ilkeleriyle eşleştirilir ve bir ilke ile bir durum varsa bunlar kapsüllenir. Bunlar yoksa arayüz vardır, sayaçlar hareketsiz kalır ve trafik işe yaramayan bir yere gider.
Bu ilk tanılama ayrımıdır. Aygıtın içine giden rota bir yönlendirme gerçeğidir, kurulu durum bir güvenlik gerçeğidir ve aygıtta artan sayaç ikisi de değildir. İnsanlar arayüz UP gösterdiği için tünel ayakta dediğinde, kendi eşi olmayan sanal bir aygıtın bağlantı bayraklarını anlatırlar. Bayrak, aygıtın oluşturulduğu ve etkinleştirildiği anlamına gelir, fazlası değil.
Bir sınır daha: arayüz tanımlayıcısı bir ad değildir. Benzer adlara ve farklı tanımlayıcılara sahip iki aygıt durumu paylaşmaz ve yanlış tanımlayıcıyla yapılandırılmış bir bağlantı, hiçbir rotanın asla kullanmayacağı bir durum kurar.
Doğru sırayla bir tane kurun
Dış aygıttan ve daemon yapılandırmasına da yazacağınız bir sayıdan başlayın. Örnek, dış arayüz olarak eth0 ve tanımlayıcı olarak 42 kullanır; bunlar kendi adreslerinizle değiştirmeniz gereken adreslerdir.
Aygıtı ayağa kaldırın, ardından VPN yapılandırmasına dokunmadan önce çekirdeğin kaydettiği tanımlayıcıyı doğrulayın:
sudo ip link add xfrm0 type xfrm dev eth0 if_id 42
sudo ip link set xfrm0 up
ip -d link show xfrm0 | grep -o 'if_id [0-9]*'Şimdi bağlantıyı strongSwan'da aynı tanımlayıcıyla yapılandırın, çünkü daemon ona başvuran ilkeleri ve durumları kurmalıdır. Yerel ve uzak trafik seçicilerini yönlendirmeyi düşündüğünüz aralığa ayarlayın, sonra o aralığı aygıta yönlendirin. Daemon yapılandırması ve yönlendirme tablosu hem tanımlayıcı hem de hedefler konusunda anlaşmalıdır ve hiçbiri diğerini sağlamaz.
IKE ve ESP'yi tünel rotasının dışında tutun
XFRM aygıtına işaret eden varsayılan rota, kapsüllenmiş paketleri ve taşıdıkları trafiği yakalar. Sonuç bir döngüdür: ağ geçidi kendi ESP'sini ESP'nin kurması gereken tünelden göndermeye çalışır.
Çözüm eşin dış adresi için daha özel bir rota fiziksel arayüz üzerinden vermektir, bu varsayılanı yener çünkü daha fazla bitle eşleşir. Birkaç tünel bir tabloyu paylaştığında işaret tabanlı yönlendirme aynı işi yapar ve strongSwan rota tabanlı dağıtımlar için iki yaklaşımı da belgeler.
Ne seçerseniz seçin, dış paketin kapsüllenmeden çıktığını doğrulayın. Hızlı kontrol, tünel ayaktayken eşin dış adresine ping atmaktır; arayüz ayaktayken bu başarısız olursa erişilebilirlik yerine yakalamadan şüphelenin. Aynı mantık IKE portu için de geçerlidir, çünkü daemonun kendi UDP trafiği kurmaya çalıştığı aygıta yönlendirilmemelidir.
Şifrelemeyi suçlamadan önce sayaçları iki yerde kontrol edin
Arayüz sayaçları ve durum sayaçları farklı aşamaları ölçer. Aygıta yönlendirilen paketler hiçbir durum eşleşmese bile aygıtı artırır, oysa durum sayaçları yalnızca gerçekten kapsüllenen trafik için hareket eder.
İkisini de okuyun, sonra daemonun alt ilişkiye bakışını okuyun:
ip -s link show xfrm0
sudo ip xfrm state list | grep -E 'src|proto|mode'
sudo swanctl --list-sasDurum çıktısı boşken aygıt sayaçlarının artması, yönlendirmenin çalıştığı ve ilkenin eşleşmediği anlamına gelir, genellikle bir tanımlayıcı veya seçici hatasıdır. Uzak taraf hiçbir şey bildirmezken durum sayaçlarının artması, paketlerin çıktığı ama ulaşmadığı veya kimlik doğrulamada başarısız olduğu anlamına gelir, bu da yola veya eş yapılandırmasına işaret eder. Listelenen bir alt ilişkinin trafiği yoksa bu, bir uçtaki seçici sorunudur, bozuk şifre değildir.
Rotaları kimin kuracağına karar verin
Tek bir yönlendirme tablosu için iki sahip, dalgalanmanın olağan kaynağıdır. Daemon rotaları otomatik kuruyorsa ağ yöneticiniz de aynı aygıt üzerinden varsayılan rota kurmamalıdır ve bir başlangıç betiğinin eklediği elle rota, daemon bir sonraki yeniden yapılandırmasında kaldırılacaktır.
Bir sahip seçin ve bunu yazın. Rotalar daemona aitse başlangıç betiğini tablonun dışında tutun ve bağlantı tanımının trafik seçicilerini tanımlamasına izin verin. Bunlar ağ yöneticisine aitse otomatik kurulumu kapatın ve yeniden bağlanırken daemonun eksik bir rotayı onarmayacağını kabul edin.
Yönlendirme ve güvenlik duvarı kuralları bunun üzerine ayrı bir karardır, çünkü diğer ana makinelerin trafiğini geçiren bir ağ geçidi ikisine de ihtiyaç duyar. Rota tabanlı IPsec bu trafiği sıradan yönlendirme araçlarıyla ifade etmeyi kolaylaştırır; ilke katmanını isteğe bağlı hale getirmez.