Genel bir proxy, VPN üzerinden özel bir kaynağa nasıl ulaşır
Ters proxy, bir tünel üzerinden özel bir kaynaktan genel bir site sunabilir. Onu açığa çıkarmadan önce yayınlamayı, TLS uç noktalarını ve kullanıcı kabulünü ayırın.
Bir siteyi tünel üzerinden yayınlamak ve kullanıcılara VPN erişimi vermek aynı kabloyu paylaşan iki farklı düzenlemedir. İlkinde, genel bir ters proxy ziyaretçinin isteğini kabul eder ve tünel üzerinden kimsenin doğrudan ulaşamadığı bir kaynağa iletir. İkincisinde, kullanıcı uygulamaya hiç erişilebilir olmadan önce VPN'e katılmalıdır. İki açıklamayı karıştırmak, özel bir arka ucun sonunda herkese açık hale gelmesinin yoludur.
Bir diyagramda aynı görünen iki model
Bir şey seçmeden önce okları çizin. Genel yayınlama modeli tarayıcıdan proxy'ye HTTPS üzerinden, ardından proxy'den kaynağa tünel üzerinden gider ve kaynak internete asla bir bağlantı kabul etmez. Yalnızca VPN modeli istemciden ağ geçidine gider ve uygulamaya yalnızca o yolun içinden erişilebilir. Kullanıcının dizüstü bilgisayarı uygulamayla aynı ağda oturur ve o modelin bütün amacı budur.
Modeller kimin kimlik doğruladığı ve nerede doğruladığı konusunda ayrışır. İlkinde proxy genel giriştir ve gelen her isteği, düşmanca olanlar dahil, üzerinde yapılandırılmış politikaya tabi olarak iletir. İkincisinde kapının kendisi erişilebilirliktir ve bu kaba ama gerçek bir kabuldür.
TLS nerede durur ve gerçekte neyi kanıtlar
Tarayıcı ile proxy arasındaki TLS o sıçramayı korur ve tarayıcının ziyaret etmeyi amaçladığı siteyi doğrulamasına izin verir. Proxy TLS'i sonlandırırsa, istek iletilmeden önce o süreç içinde okunabilir biçimde var olur. Kaynağa ikinci bir TLS oturumu sonraki sıçramayı koruyabilir ve uygulamanın uç noktasını ayrıca doğrulayabilir. Oturumların hiçbiri hangi insanın uygulamayı kullanabileceğine karar vermez. Proxy'deki joker sertifika da o ikinci sıçramaya uzanmaz.
Bu, insanların şifrelenmiş sözcüğünde özetlediği kısımdır. Gizlilik, bütünlük ve sunucu kimliği taşıma özellikleridir; yetkilendirme uygulamanın kararıdır. Tünelin arkasındaki özel adres sokete kimin ulaşabileceğini değiştirir, ulaştıktan sonra kimin oturum açabileceğini değil.
İletilen başlıklara yalnızca proxy'den güvenin
İstemci adresine göre günlük tutan veya yetkilendirme yapan uygulamalar genellikle proxy'nin eklediği başlığı okur. Bu başlık yalnızca metindir, dolayısıyla kaynağa doğrudan ulaşabilen her şey istediği adresi talep edebilir. Kaynağı yalnızca proxy'nin tünel adresinin bağlanabileceği şekilde sınırlayın ve uygulamayı başlığı yalnızca o adresten kabul edecek biçimde yapılandırın.
curl -s -o /dev/null -w '%{http_code}
' -H 'X-Forwarded-For: 203.0.113.9' http://172.20.5.40/
Bu istek proxy olmayan bir ana bilgisayardan başarılı olursa, kaynak görmezden gelmesi gereken bir başlığa güveniyordur. Uygulamaya dokunmadan önce dinleyiciyi düzeltin. Ret, sahte bir adres taşıyan günlük satırından çok daha iyi bir sonuçtur.
Kaynağı tam olarak tek bir yerden erişilebilir tutun
Kaynağın dinleyicisini tünel adresine bağlayın veya proxy'ye doğru bir güvenlik duvarıyla çevreleyin, ardından gerçekte neyin dinlediğini doğrulayın. Joker bağlamayla başlatılan bir hizmet, ana bilgisayarın sahip olduğu her arayüzde bağlantı kabul eder, yönlendirilebilir olduğunu unuttuğunuz arayüz dahil. Dinleme tablosu temel gerçektir, uygulamayı düşündüğünüz yapılandırma dosyası değil. Joker bağlama kasıtlıysa, güvenlik duvarı yine de onu daraltan bileşen olmalıdır.
ss -ltnp | grep -E ':(80|443)'
Yönetim arayüzleri için de aynı incelemeyi yapın, çünkü olağan kazara açığa çıkma orada olur. Ardından iki modeli ayrı ayrı yazın: proxy üzerinden genel site ve yalnızca tünel üzerinden erişilebilen yönetim arayüzü. Sunucunun bir VPN'in arkasında olduğu cümlesi bunların hiçbirini söylemez.