OpenWrt VPN bölgesi, yönlendirme ve maskeleme: hangisi gerekli?
Bölge girişi, yönlendirme ve maskeleme farklı sorulara yanıt verir. WAN bölgesini açmadan önce VPN trafiğinizin neye ihtiyacı olduğuna karar verin.
Her VPN OpenWrt ile karşılaştığında üç değişiklik birbirine karışır: bir bağlantı noktası açmak, yönlendirmeye izin vermek ve maskelemeyi açmak. Farklı sorulara yanıt verirler ve genellikle yalnızca biri gerçek gereksinimdir. Her denetimi yönettiği trafik rolüne göre okumak bir tahmini karara dönüştürür ve değişiklik yanlış olduğunda hangi belirtinin bekleneceğini de söyler. Hatırladığınız onay kutusuyla değil, başarısız olan rolle başlayın.
Bir denetime dokunmadan önce trafik rolünü adlandırın
Bölge girişi yönlendiricinin kendisine neyin ulaşabileceğine karar verir. Bölge çıkışı yönlendiricinin kendi oluşturduğu trafiği kapsar, bölge yönlendirmesi bir bölgeden geçen trafik için varsayılan değerdir ve maskeleme çıkışta kaynak adresinin yeniden yazılıp yazılmayacağına karar verir. Bunlar dört farklı sorudur ve bölge ilkesi dördüne de aynı anda aynı değerle yanıt verir, bu yüzden tüm bölgeye yönelik bir değişiklik kaba bir araçtır. Adlandırılmış bir kural, diğerlerine dokunmadan bunlardan birine yanıt verebilir.
Yararlı harita trafik rolüne göredir, çünkü bir şey başarısız olduğunda gözlemleyebildiğiniz şey odur. Aşağıdaki her rolün onu belirleyen bir denetimi ve ona işaret eden bir belirtisi vardır:
| Traffic role | Control that decides it | Where it lives in the config | Symptom when it is wrong |
|---|---|---|---|
| A client reaching a listener on the router | Input policy of the zone that carries the connection, or a rule for the port | option input in the zone stanza, or a named rule | The handshake never completes and the tunnel log says nothing |
| A tunnel client reaching the router itself | Input policy of the tunnel zone | option input in the VPN zone | A ping to the gateway fails |
| A tunnel client reaching another LAN host | Forwarding from the tunnel zone to the LAN zone | config forwarding plus the zone assignment | The gateway answers and the file share times out |
| The router's own traffic leaving the WAN | Output policy, and translation if the far side needs it | option output and option masq | The tunnel never establishes, or replies vanish |
Yönlendiricide dinleyen bir hizmet tek bir dar giriş kuralına ihtiyaç duyar
Yönlendiricideki OpenVPN sunucusu yönlendiriciye adreslenmiş trafik alır, bu nedenle dış bağlantısı onu taşıyan bölgenin giriş ilkesine bağlıdır. Yapılandırılmış taşıma ve bağlantı noktasına izin verin, o bölgedeki diğer her şeyi reddedilmiş bırakın. Tek bir bağlantı noktası kuralı tüm bölge için izinden çok daha küçük bir değişikliktir ve bir yıl sonra da açıklayabileceğiniz kural odur.
İki şey o kuralı tutmayı güvenli kılar: hizmetin gerçekte kullandığı bağlantı noktasını adlandırır ve bölge tanımının yanında durur, böylece sonraki kişi neden var olduğunu görür. Aşağıdaki satırlar yalnızca biçimdir, bağlantı noktası sunucuda yapılandırılanı temsil eder. Hizmet taşındığında o bağlantı noktasını iki yerde de değiştirin, çünkü eski olanda kalan bir kural denetime kadar görünmez.
config zone
option name 'wan'
option input 'REJECT'
option forward 'REJECT'
option output 'ACCEPT'
option masq '1'
config rule
option name 'allow-openvpn'
option src 'wan'
option proto 'udp'
option dest_port '1194'
option target 'ACCEPT'Yeniden yüklemeden önce doğrulayın, çünkü güvenlik duvarı dosyasındaki bir sözdizimi hatası yönlendiriciyi çalışan bir kural kümesi olmadan bırakabilir. fw4 kullanan bir sürümde denetim ayrı bir komuttur ve bozuk bloğu sessizce kabul etmek yerine yüksek sesle başarısız olur. Yalnızca denetim geçtikten sonra yeniden yükleyin ve önceki dosyayı geri koyabileceğiniz bir yerde saklayın.
fw4 check
service firewall reloadİstemci isteği girişten değil yönlendirmeden geçer
Kimlik doğrulamadan sonra, LAN hizmeti isteyen bir tünel istemcisinin isteği yönlendirilmiş bir akış üretir, bu nedenle bunu belirleyen denetim tünel bölgesi ile LAN bölgesi arasındaki yönlendirme ilişkisidir. Tünel arabirimini istediğiniz bölgeye atayın, ardından yönü, kaynakları ve hizmeti bildirin. Bölge ataması yönlendirme kuralına anlam veren şeydir ve ikisi ancak birlikte okunduğunda anlaşılır. Tünel bölgesini kaynak, LAN bölgesini hedef olarak adlandıran bir yönlendirme ilişkisi tek bir bilinçli karar olarak okunur, oysa tüm bölge için iki izin bir kaza olarak okunur.
Yönlendiricinin kendisine ulaşmak hâlâ giriş yolunu kullanır, bu yüzden ağ geçidine ping atmak arkasındaki dosya paylaşımı hakkında hiçbir şey söylemez. Bu iki başarısızlık farklı bloklarda yaşar ve farklı değişikliklerle düzeltilir. Herhangi birini değiştirmeden önce iki yolu ayrı ayrı yazın.
Maskeleme bir yönlendirme kararıdır, izin değil
Maskeleme seçilen giden trafiğin kaynak adresini yeniden yazar. Uzak tarafın dönüş yolu olmadığı bir çıkış tasarımını kurtarabilir ve adresleri günlükleyen veya adrese göre yetkilendiren her hizmetten bireysel istemci adreslerini de gizler. Kapatmak, dönüş yoluyla ilgili bir yönlendirme seçimidir, gelen bir deliği kapatan güvenlik anahtarı değildir. Çeviri açıkken çalışan ve kapatıldığı anda başarısız olan bir tünelde genellikle dönüş yolu eksiktir, güvenlik duvarı kuralı değil.
Yönlendirilmiş alternatif, çeviri yerine uzak tarafta bir dönüş yolu gerektirir. Hiçbir seçenek güvenlik duvarı iznini veya uygulama hesabını sağlamaz, bu yüzden maskelemeyi kapatmak hiçbir yere ulaşamayan bir tünel istemcisini neredeyse hiç düzeltmez. IPv4 ve IPv6 ilkelerini de ayrı ele alın, çünkü tek bir çeviri ayarı iki aileyi de tanımlamaz.
Kararı izin verilen ve reddedilen bir istekle kanıtlayın
İzin verilmesi gereken bir istek ve reddedilmesi gereken bir istek gönderin, ardından her kararı veren denetimi belirleyin. Rastlantıyla yüklenen bir sayfa kanıt değildir; kanıt, eşleşen kuraldır, eşleştiği zincirde. Ret, başarı kadar önemlidir, çünkü her şeye izin verilmek yerine ilkenin bir şey yaptığını gösterir.
Güncel bir sürümde iki komut bu kanıtı verir. İstek kabul edildiğinde eşleşen kuralın sayacı hareket eder ve kural için günlükleme açtıysanız günlük düşürmeyi gösterir:
nft list chain inet fw4 forward_wan
logread -f | grep -i -E 'DROP|REJECT'Herhangi bir güvenlik duvarı ilkesini değiştirmeden önce hâlâ kullanabildiğiniz bir yönetim yolu saklayın ve yapılandırmanın sahibinin doğrulama ve geri alma sürecini izleyin. Sizi yönlendiricinin dışında kilitleyen bir değişiklik test sonucu değil, ikinci bir olaydır. Her gözlemin yanına bölgeyi ve trafik rolünü yazın, böylece sonuç çifti şanslı bir sayfa yüklemesini betimlemek yerine ilkeyi açıklasın.