Tek bir güvenlik duvarının arkasında birden fazla web sunucusu


8

Tek bir güvenlik duvarının arkasında birden fazla web sunucum var (SVN, Exchange vb.). Çeşitli sunucuların tümüne uzaktan erişebilmek istiyorum, ancak Hepsi aynı bağlantı noktasını (standart HTTPS) kullandığından bu mümkün mü?

Her birinin farklı bağlantı noktalarını dinlemesi için ayarladıysam, farklı bir alt etki alanı kullanarak her bir sunucuya erişebilmem mümkün olacaktı (svn.domain.com svn, mail.domain. com değişim sunucusuna işaret eder)? Yönlendiricimi, istemcinin istediği alt etki alanına bağlı olarak farklı bir bağlantı noktası iletecek şekilde kurmanın bir yolu olabilir mi?

İnsanlar normal olarak bu konuyu nasıl ele alır?

Yanıtlar:


9

Şahsen bir IP adresinin arkasında birden fazla sunucu sunarken apache'de ters proxy kullanmayı seviyorum. Birkaç yıl önce bunun üzerine bir makale yazdım.

Birden fazla web sunucunuz olması gereken zamanlar olabilir, ancak size yalnızca bir Genel IP Adresi verilmiştir. Karşılaştığınız sorun, birden çok etki alanınızın aynı IP adresini çözmesini sağlamak ancak farklı bir sunucuya işaret etmek istemeniz. Bu Apache ile çok yapılabilir. Özel bulutumda bir 192.168.1.2 adresine sahip bir ağ geçidi sunucusu yapılandırdım. Yerel adreslere sahip birkaç web sunucum var; Örneğin 192.168.1.10 ve 192.168.1.11.

Gateway sunucuma Apache ve mod_proxy dosyalarını yüklüyorum. Bu tamamlandıktan sonra, etki alanını iletmek için sanal ana bilgisayarları ayarlayabilirim.

<VirtualHost *:80>
   DocumentRoot /var/www/example.org
    ServerName *.example.org
    ProxyRequests Off
    <Proxy *>
      Order deny,allow
      Allow from all
    </Proxy>
    ProxyPreserveHost on
    ProxyPass / http://192.168.1.10/
    ProxyPassReverse / http://192.168.1.10
</VirtualHost>

<VirtualHost *:80>
   DocumentRoot /var/www/example.com
    ServerName *.example.com
    ProxyRequests Off
    <Proxy *>
      Order deny,allow
      Allow from all
    </Proxy>
    ProxyPreserveHost on
    ProxyPass / http://192.168.1.11/
    ProxyPassReverse / http://192.168.1.11/
</VirtualHost>

Apache'yi yeniden başlatın ve yönlendiricinizi 192.168.1.2 yerel adrese gelen bağlantıları kabul edecek şekilde yapılandırın. DocumentRoot'u aynı konuma (yani / var / www) işaret etmiş olsam da, genellikle SSL'yi zorlayabileceğim her site için .htaccess dosyalarım var (80.443'ü belirli etki alanı adlarına yönlendirme).

Bu rotadaki güzel şey, aynı IP Adresine sahip birden fazla HTTPS sunucusuna hizmet verebilmenizdir. Tek sorun Internet Explorer'ın 443 numaralı VirtualHost bağlantı noktasını veya adlandırılmış ana bilgisayarı tanımıyor olması ve bir sertifika hatası almanızdır. Ancak, Safari, Firefox ve Chrome, proxy olan etki alanı için ayrı ayrı sertifikaları tanır.


Bu tam olarak yapmak istediğim şey, ancak şu anda DNS'im olarak Windows etkin dizin sunucusunu kullandığımdan beri, bunu IIS'de gerçekleştirmeyi umuyordum, böylece ağımdaki tüm ağ geçidi / kimlik doğrulama işlerini aynı tutabilirim Sunucu - Bunu IIS'de nasıl yapacağınızı biliyor musunuz?
William

Lol, üzgünüm, bilmiyorum. Ancak, hangi IIS sürümünü kullanıyorsunuz?
kobaltz

IIS 8 - Kendi başıma halletmek istersem - En azından herhangi bir ipucunuz var mı? Aramam gereken anahtar kelimeler? Web sunucularına gelince bir n00b türüm (başka şeylerde de iyi olduğuma söz veriyorum!)
William

Windows Vista, Windows 7, Windows 8 ve Windows 10'daki Internet Explorer, sanal konakları tanımak için "Sunucu Adı Gösterimi" özelliğine sahiptir. Yalnızca Windows XP ve daha eski sürümlerde Internet Explorer bu eksikliği.
Damian Yerrick


1

Bunu, dahili ve harici DNS'inizde alt alanlar ayarlayarak gerçekleştirebilirsiniz. Hangi DNS'yi çalıştırdığınıza bağlı olarak neyi eklemeniz gerektiğini açıklayan iyi bir makale . Unutmayın, harici DNS'e giriş eklerken yaymanın zaman aldığını unutmayın.


Bu, iki anahtar noktanın eksik göründüğü bir soruyu cevaplamıyor: Bir güvenlik duvarının arkasında birden fazla sunucu (1), (2) harici bir IP adresi ve TCP / UDP bağlantı noktasını paylaşıyor. Hangisinin foo.example.comveya bar.example.commüşterinin hangisi olursa olsun , DNS sorgusu her zaman aynı IP'yi 203.0.113.4her iki şekilde de döndürecektir . Daha sonra müşteri HTTP isteğini 203.0.113.4ile yapmak için devam eder Host: bar.example.com. Müşteriyi kim arayacak, böylece konuşması gerçekten sona erecek barmi?
Synoli

1

Kobaltz's muhtemelen en iyi çözümdür.

Ancak, varsayılan olmayan bir bağlantı noktası kullanmak istiyorsanız, uygulamalardan birinin bağlantı noktası yönlendirmesini (aslında kaynak / hedef bağlantı noktasını değiştiren yalnızca NAT olanı) ayarlayabilirsiniz. Böylece, bunlardan biri https için normal 443 portu, diğeri 8443 gibi bir şey olarak temsil edilir. Diğer sunucuya göz atmak için girmeniz gerekir https://youipaddress:8443(veya bir kurulum varsa, DNS girişi). Elbette bu sadece farklı bir port numarası kullanmaya istekli iseniz çalışır, ancak yetenekler sınırlı olduğunda oldukça yaygın bir çözümdür.

Özel yapılandırma, NAT'ı (güvenlik duvarınız veya yönlendiriciniz) gerçekleştiren uç cihaza bağlı olarak büyük ölçüde değişecektir, ancak genel olarak şu şekilde çevirirsiniz:

dahili IP -> Harici IP (dış arabiriminizin IP'si olabilir) standart port (443) -> seçilen port (ör. 8443)

Port yönlendirme konusunda iyi bir makale.


0

İşte bir proxy sunucusu kurmak için Microsoft belgeleri.


1
Bu bağlantı soruyu cevaplayabilse de, cevabın temel kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak daha iyidir. Bağlantılı sayfa değişirse, yalnızca bağlantı yanıtları geçersiz olabilir.
Donald Duck
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.