Güvenlik duvarı dosyasını açmadan önce izne karar verin: kimliği doğrulanmış istemciler yalnızca belirli bir alt ağa bağlantı açabilir ve ağ geçidi, istemci ek rotalar kursa bile diğer her geçiş yolunu reddetmelidir. O cümle tasarımın kendisidir ve aşağıdaki her kural onu uygulamak için vardır. Daha geniş bir şey, örneğin tüm özel adres alanı, tünelden internete çıkış veya eşler arası trafik, kendi kararını gerektiren başka bir tasarımdır. Kurallar ayrıca bilerek sıkıcıdır, çünkü akıllı bir güvenlik duvarı kimsenin sonradan denetleyemediği olandır.

Önce topolojiyi ve izni yazın

Örnek, kullanıcı alanındaki TUN aygıtının adı olan bir Community OpenVPNtun0 sunucusu, istemci havuzu 10.77.0.0/24 ve bağlı tek bir alt ağ 192.168.60.0/24 ile lan0 üzerinde çalışır. IPv4 yönlendirmesi zaten çalışıyor ve LAN'ın havuza dönüş rotası zaten var, dolayısıyla burada hiçbir şey ikisi arasındaki çeviriye bağlı değil.

Bu ana bilgisayardaki güvenlik duvarı UFW'ye aittir ve hiçbir kapsayıcı kural kümesi ya da ayrı nftables tablosu daha erken bir kabul yolu kuramaz. Filtreyi atlayan bir akış boşaltma kısayolu koruma zincirlerini yalnızca süs yapar, bu yüzden hiçbirinin etkin olmadığını doğrulayın. OpenVPN'in kendi client-to-client yönlendirmesini kapalı bırakın, çünkü işletim sisteminin filtresinden asla geçmeyen eşler arası trafik bununla sınırlandırılamaz. Dış dinleyici ve yönetim kuralları olduğu gibi kalır, çünkü bu değişiklik güvenlik duvarını değiştirmek yerine şifresi çözülmüş tünel trafiğini yönetir.

Korumaları UFW'nin erken kabullerinden önce yerleştirin

Bir rota izni ve ardından gelen ret, katı bir sınır için yeterli değildir. Stok before kuralları, herhangi bir kullanıcı kuralına bakılmadan önce kurulmuş trafiği ve bazı ICMP'yi kabul eder, bu yüzden geçen hafta izin verilen bir akış yalnızca hâlâ durumu olduğu için yeni hedef kısıtlamasının dışında kalabilir. UFW dosyalarını yedekleyin ve düzenlemeden önce bant dışı bir konsolu açık tutun.

Dosyanın *filter bölümünde /etc/ufw/before.rules, mevcut bildirimlerin yanında ve herhangi bir kural satırından önce iki zincir bildirin.

:vpn-src-guard - [0:0]
:vpn-reply-guard - [0:0]

Bildirimlerden hemen sonra ve giriş ile yönlendirme izinlerinden önce içlerine atlayın ve neyi geçirdiklerini tanımlayın.

-A ufw-before-input -i tun0 -j DROP
-A ufw-before-forward -i tun0 -j vpn-src-guard
-A ufw-before-forward -o tun0 -j vpn-reply-guard

-A vpn-src-guard -o lan0 -d 192.168.60.0/24 -s 10.77.0.0/24 -m conntrack --ctdir ORIGINAL -j RETURN
-A vpn-src-guard -j DROP

-A vpn-reply-guard -i lan0 -d 10.77.0.0/24 -s 192.168.60.0/24 -m conntrack --ctstate RELATED,ESTABLISHED --ctdir REPLY -j RETURN
-A vpn-reply-guard -j DROP

Bölümün geri kalanını ve COMMIT satırını koruyun. İkinci bir filtre tablosu yapıştırmak veya ilgisiz kuralları silmek, bir güvenlik duvarı değişikliğinin kesintiye dönüşme yoludur ve dosya, önemli olan tek kopya olmaktan bir yeniden başlatma uzaktadır.

Her korumanın neyi geçirip neyi reddettiğini okuyun

İlk zincir işlemeye yalnızca kaynak havuzda olduğunda, hedef o tek alt ağ olduğunda, çıkış arayüzü LAN olduğunda ve paket akışının özgün yönünde ilerlediğinde devam eder. Tünelden gelen diğer her şey atılır; havuz dışındaki bir kaynak ve izin verilen alt ağın ötesindeki her hedef buna dahildir.

Eşler arası bir paket tun0 içine girer ve oradan çıkar, bu yüzden hedef denetimine ulaşmadan önce LAN arayüz testinde başarısız olur. LAN'dan istemcilere yeni bağlantılar da yanıt yönü testinde başarısız olur, bu da ters geri arama yolunu varsayılan olarak kapatır.

Hedef RETURN olağan UFW politikasını yürürlükte tutar. Bu zincirler filtreler ve sonra eklediğiniz rota izni, hayatta kalan bir paketin kabul edilip edilmeyeceğine hâlâ karar verir. Tam da bu ayrım, izin verilen alt ağı daha sonra tek bir yerde değiştirmenizi sağlar. Korumalar paketleri doğrudan kabul etseydi, gelecekteki her kuralın iki kez eklenmesi gerekirdi.

Alt ağa yetki verin ve yan kapıları kapatın

Önce rota iznini önizleyin, sonra uygulamak için önizleme bayrağını kaldırın: sudo ufw --dry-run route allow in on tun0 out on lan0 from 10.77.0.0/24 to 192.168.60.0/24. Ardından kullanıcı kurallarının sırasını gözden geçirin, çünkü daha erken bir ret hâlâ daha sonraki bir izni yener. Tüm alt ağ için izin de yanlış biçimdir, yalnızca bir ana bilgisayarın HTTPS bağlantı noktası erişilebilir olması gerektiğinde.

Giriş atmasının ne yaptığına dikkat edin: tünel istemcileri ağ geçidinin kendisindeki hiçbir hizmete ulaşamaz, LAN adresine bağlı bir DNS dinleyicisi dahil. Orada DNS barındırmak, atmadan önce bilinçli bir istisna ve gözden geçirilmiş bir izin sözleşmesi gerektirir. UFW IPv6'yı yönetiyorsa, tun0 için before6.rules dosyasında da uygun atmalar ekleyin, çünkü bir IPv4 hedef listesi IPv6 paketleri hakkında hiçbir şey söylemez.

Önizlemeyi değil, yüklenen politikayı doğrulayın

Yeniden yüklemeyi önizleyin, bir bakım penceresinde uygulayın ve canlı kural kümesini okuyun.

sudo ufw --dry-run reload
sudo ufw show raw

Tünel korumalarının varsayılan durum ve ICMP izinlerinden önce göründüğünü doğrulayın. Düz ufw status elle düzenlenmiş before kurallarını göstermez, bu yüzden operatörler bir kural eksik olduğu sonucuna varır, oysa kural gerçekte yüklenmiştir. Bir parça aramak yerine ham listeyi yukarıdan aşağıya okuyun. Korumalar bir durum izninden sonra görünüyorsa, sınır dosyanın ima ettiğini yapmıyor demektir.

Sonra metni değil davranışı test edin. İzin verilen bir ana bilgisayara yeni bir bağlantı açın ve yanıtı izleyin, zararsız bir isteği alt ağ dışındaki bir hedefe yönlendirin ve öldüğünü doğrulayın, eşler arası bir bağlantı deneyin, ağ geçidinde yerel bir hizmet deneyin ve istenmeyen bir LAN'dan istemciye bağlantı deneyin. Değişiklikten önce var olan kapsam dışı bir akış ekleyin ve makinenin tüm izleme tablosunu boşaltmak yerine yalnızca o akışı temizleyin.

Sınırları kuralların yanına not edin: bu geçişi sınırlar ve başka hiçbir şeyi. Bir istemciyi kendi internet bağlantısını kullanmaktan alıkoymaz, izin verilen bir LAN ana bilgisayarının trafiği ileri iletmesini engellemez ve izin verilen hizmetler içindeki kimlik doğrulamanın yerini almaz.

İlgili makaleler