Forum

Reverse Proxy Ö...
 
Bildirimler
Hepsini Temizle

Reverse Proxy Önerisi (NGINX ya da ASP.NET MVC Metodu)

6 Yazılar
4 Üyeler
0 Reactions
1,297 Görüntüleme
(@SemihTUNALI)
Gönderiler: 32
Trusted Member
Konu başlatıcı
 

Bir proje üzerinde çalışıyorum ve proje, sql database gibi bilgileri bir hosting firmasına vermek istemiyorum. Kurumsal cloud şirketleri - azure ya da google cloud - de hem dedicated sunuculara göre pahalı, hem de işletim sistemi, sql lisansı gibi konularda aşırı zamlı hizmet veriyorlar. Bunun yanında band genişlikleri çok güçlü. Halihazırda çok iyi firewall ekipmanları var.

Şöyle bir senaryo / hikaye düşün; Ev ya da ofislerde kullanılan internet upload hızlarını bilirsin. En hızlısı şuan 20 mbit civarında. Dolayısı ile, gelen 20 mbit lık istekler filtrelenmiş olmalı. GB seviyesinde requestler olabilir, bunlar filtrelenerek ancak ve ancak doğal requestler iletilmeli. Zaten medya tarafı için CDN ler var. Bu durumda, 20 mbit upload verileri sql database de tutulan bilgilerden oluşacak, text bazlı anlayacağın.

Proje local bilgisayarda olacağından geriye birkaç seçenek kalıyor,

a) ya piyasada hali hazırda online cloud firewall reserve proxy hizmetlerini satın almak

b) ya da bir server ve ağ hizmeti kiralayıp halihazırda nginx + firewall protect hizmetlerini satın almak

Şöyle bir çözüm gerekiyor; ister a şıkkı ister b şıkkı olsun, gelen giden bağlantılar (request / response) için SSL temelli HTTPS bağlantılarının KORUNARAK İLETİLMESİ gerekiyor. Bunun yanı sıra, belirlenecek karaliste ip adreslerinden gelen bağlantıları da reddetmesi gerekmekte. Üstüne üstlük, hangi ip lerin karalistede olduğunu local bilgisayar otomatik olarak söylemeli, bir kullanıcı paneli vasıtası ile olmaz. Çünkü saniyede yüzlerde değişik ip den request gelebilir ve liste hızla değişebilir.

Proje local bilgisayarda olacağından geriye üç - beş seçenek kalıyor.

1) Local bilgisayara sophos ya da fortinet gibi donanımsal firewall cihazı satın almak (Bu pek iyi bir çözüm olarak gözükmüyor çünkü senaryoya / hikayeye göre olası gelen GB ölçeğindeki istek 20 mbit civarında olan band genişliğini kullanırsa firewall istekleri reddetse bile pek fayda vermeyecek)

2) Online Cloud Firewall destekli reverse proxy hizmetlerini kullanmak (GB ölçeğindeki trafiklere göre biraz pahalılar ve ne denli işe yaradıkları tartışılır, sanırım ülkemizde bu hizmeti veren yok, artı çoğu ip karalistesini sundukları kullanıcı panelinden alıyorlar, otomatik olanı yok gibi)

3) Dedicated sunucu ve ağ hizmeti satın alıp, nginx ve iyi bir firewall ürünü kullanmak. (Nginx yapılandırılması zor diyorlar, artı gelen portu direkt dinleyip routing yapıyor diyorlar, pek bir bilgim yok açıkçası. Eğer anlatılanlar gibi ise, nginx ile beraber kurulan firewall nginx portu dinleyip yönlendirdiğinden gelen istekleri nasıl fitreleyecek ? Olası kötü niyetli girişmleri nasıl tespit edecek ve durduracak? Karaliste ip adresleri ise nginx e nasıl tanıtılacağı da ayrı bir husus, komut satırı tabanlı bir yolu var ise, bu ip ler nginx e tanıtılabilir belki)

4) Dedicated sunucu ve ağ hizmeti satın alıp, symantec endpoint gibi iyi bir ürün kurduktan sonra, basit bir reverse proxy metodu bulmak. ASP.NET MVC için. Nginx gibi her konuda hizmet vermediğinden belki kaynak kodu 100 - 150 satır civarı olabilir. SSL temelli HTTPS bağlantıları korumalı, birden fazla request / response desteklenmeli, bir de taşınan HTTPS bağlantıları için gerçekte bağlanan client lara ait ipleri server (bu senaryoya / hikayeye göre local bilgisayar) bilemediğinden X-Forwarded-For HTTP (XFF) başlığı altında sunucuya bağlanan client a ait ip adresini söylemeli.

Aslında 4. seçenek en iyisi ve en cazip olanı gibi. 4. seçenekte olması gereken ASP.NET MVC metodu için;

http://kiwigis.blogspot.com.tr/2011/08/how-to-create-simple-proxy-in-aspnet.html

ya da

https://www.codeproject.com/Articles/7135/Simple-HTTP-Reverse-Proxy-with-ASP-NET-and-IIS

istenilen sonucu verir mi, proxy konusu üzerine bir bilgim olmadığından eksik taraflarını bilemiyorum.

Sizin için doğru seçenek ne olmalı ?

Teşekkürler...

 
Gönderildi : 18/12/2017 05:05

(@esersolmaz)
Gönderiler: 3204
Illustrious Member Yönetici
 

Semih bey selam,

Bir çok önerim olabilir ama kabaca uygulamadan bahsedebilirmisiniz.

Misal asimetrik teknolojiler gecikmelere yada darbogazlara sebep olabilir.  Web based bir proje olacagı için firewall dan daha çok bence web app firewall a ihtiyacınız oalacaktır.  Kara listeden gelen connection ları kesmek için ise bu işi l2 de cover edebilirseniz daha başarılı olabilir. app server tarafında bir av yazlımı kullanmak olmazsa olmaz ama sadece ona güvenemezsin bence.

Detaylı konuşulabilecek güzel bir projeye benziyor, şimdiden başarılar.

 

 

 
Gönderildi : 18/12/2017 14:09

(@SemihTUNALI)
Gönderiler: 32
Trusted Member
Konu başlatıcı
 

Selamlar,

Bir kaç yıldır üzerinde çalıştığım akademik bir proje, deneysel fizik simülasyonu, satın aldığım makinelerim gpu tabanlı işlem yapıyor ve daha sonra sonucu sql database üzerinde tutuyor. SQL database'imde bile sonuçlar memory optimization (Server 2016) olduğan RAM ve pci express SSD kullanıyor.

Dolayısı ile, cloud sistemlerdeki yetenekler astronomik hesaplamalar için uygun değiller. 20 Mbit bağlantı hızım var ve sadece doğal requestleri kabul etmek gerekiyor. Olası GB seviyesinde, sırf band genişliğini durdurmak amacıyla yapılan kötü niyetli girişimlerden de korunulması gerekiyor.

Bağlantı hızı 20 Mbit olduğundan, fortinet, sophos cihazlarının engellemeleri pek birşeyi değiştirmiyor. Çünkü gelen requestler bant genişliğini kullanmış olacaklar bu hikayeye göre.

Bana iyi bir firewall lazım, bu firewall geniş band bilgisayarda kurulmalı, gereken filtrelemelerden (ip adres bazlı ve kötü niyetli girişimleri eledikten sonra) aktarmalı.

 

Aslında şu diagram için bir çözüm arıyorum, diagram işlem aşamalarını gösteriyor;

Client 'lar ---------> Symantec EndPoint --------> Nginx (ya da başka bir aktarım metodu ya da yazılımı) -----------> Sunucu

 

--- tabii ki her türlü farklı önerinizi de duymak isterim bilemediğimden en uygun ve en kolay gözüken yöntemin bu olduğunu düşünüyorum ---

Burada anlamadığım nokta şudur; Nginx ya da birbaşka yazılım ya da metod devreye trafiği aktarma ve ip filtresine girmeden önce, symantex endpoint da olan firewall ağı ataklara karşı nasıl filtreler ?

Bu senaryoya göre nginx 443 portunu aktarıyor misal ama symantex önce filtrelesin sonra nginx filtrelenmiş içeriği aktarsın gibi bir çözüm nasıl yapılandırılabilir ?

 

Öneriniz için teşekkürler...

 
Gönderildi : 18/12/2017 22:04

(@volkanalkilic)
Gönderiler: 137
Estimable Member
 

Semih bey,

Bizim projelerde benzer ihtiyaçlar için uzun süredir  https://www.cloudflare.com  kullanıyoruz ve son derece memnunuz. Rate Limiting, Challenge Page, Access Rules, Web Application Firewall ve Browser Integrity Check gibi bir çok Firewall özelliği mevcut. 

İncelemenizi tavsiye ederim.

 
Gönderildi : 19/12/2017 01:05

(@SemihTUNALI)
Gönderiler: 32
Trusted Member
Konu başlatıcı
 

Volkan Bey merhabalar, bahsedilen senaryoya / hikayeye göre bir firewall proxy hizmeti midir bu ? Yoksa ancak kendi sunucuları üzerinde olan web sitelerini mi korumaktadırlar ?

 

linkini gönderdiğiniz siteyi gördüm, istediğimiz client ve sunucu arasında bir cloud firewall görevi görmesi. Yani uygulamayı ofis sunucusundan yayınlamak...

 

client -------> cloudflare -----------> sunucu

 

şeklinde çalışıyor anladığım kadarıyla, doğru mudur ? İhtiyacımız olan da sunucu kiralamak yerine ya da uygulamayı teslim etmek yerine sadece firewall proxy hizmetinden yararlanmak...

 

 hangi hizmeti satın almam gerekiyor firewall proxy tarzında bir güvenlik için ?

Teşekkürler.

 
Gönderildi : 19/12/2017 01:56

(@JiyanEpozdemir)
Gönderiler: 16
Active Member
 

Bende cloudflare’i fayda/maliyet dengesinde başarılı buluyorum. Cloudflare için on-prem ya da cloud ayrımı yok. Origin nerede olursa olsun proxy cdn hizmeti sunuyor. Ücretsiz planı var. Denemenizi öneririm. Kurulumu/konfigurasyonu kullanımı da oldukça basit. Client-Proxy arasında ücretsiz ssl trafik sağlıyabiliyor. Ücretli planlarında waf dahil bir çok gelişmiş hizmet ve araç sunuyor.

 
Gönderildi : 03/01/2018 01:55

Paylaş: