ABD dışındaki tüm bağlantıların engellenmesi, 80 numaralı bağlantı noktasının dışında yüksek sunucu yüküne neden olur mu?


16

Çoğu sunucu gibi (sanırım), 7/24 hizmetimizi zorlamaya çalışan insanlar var. CpHulk IP'lerini kara listeye aldım, ancak ilk etapta bu kadar ilerlemeseler daha iyi olurdu. Kendim ve sunucum 80'den farklı bağlantı noktalarında sunucuya bağlanan tek kişilerdir, bu yüzden 80 numaralı bağlantı noktası dışında ABD dışındaki tüm ülkelerden bağlantıları engellemek istiyorum. Bunu ayarlamak için sunucumla iletişim kurdum, ancak onlar son derece yüksek bir sunucu yükü oluşturacağını söyledikleri için tereddüt ettiler. 32 GB RAM ile CentOS 6.6 ve iptables çalıştıran özel bir Xeon 1230 sunucusudur.

İlk olarak, bunu yapmamak için bir neden var mı? İkincisi, ev sahibimin bana söyledikleri doğru mu? Üçüncüsü, bunu yüksek performans etkisi olmadan başarmanın bir yolu var mı?


12
Barındırma bağlantınızın bahsetmediği talihsiz bir durum "Ancak, daha az bakım, daha iyi güvenlik ve Açık Sunucu Reddetme olarak adlandırılan düşük sunucu yükü ile istediğiniz aynı şeyi yapmanın endüstri standardı bir yolu var. ve 20 dakika içinde senin için ayarlayacağım. " -
Oturdukları

sadece kötüye kullandıklarında onları engelle ... bakım bu şekilde minimal ... tam bir tablo ile güncel tutmak zorunda
Skaperen

Yanıtlar:


33

Her IP aralığını engellemek için özel kurallar ayarlamak (her aralığı listeleyerek) yanlış yaklaşımdır.

Yönetim bağlantı noktalarına tüm trafiği bırakmak için iptables içindeki varsayılan kuralları ayarlayın. Ardından, yalnızca güvenilir IP'lerinizden (sizin ve ana makineniz) erişime izin vermek için kurallar ekleyin.

Varsayılan olarak her şeyi engelleme ve yalnızca onaylı trafiğe izin verme genellikle "açık reddetme" olarak adlandırılır ve en iyi yöntem olarak kabul edilir. Bu durumda, barındırıcınızın endişe duyduğu performans etkisini önlemeye de yardımcı olur.


Biliyorsanız, güvenlik duvarından yalnızca birkaç IP'ye açıkça izin vererek herkesi örtük olarak reddettiğinizde neden açık bir şekilde reddediyorsunuz?
Ben

Gerçekten bu konuda örtük bir şey yok ...
mr-sk

Beyaz listeye eklemek için potansiyel bir endişe uzaktan erişimdir. Güvenilir bir VPN'e (bu sunucudan ayrı olarak) ihtiyacınız olacak ve IP aralığına da izin vereceksiniz.
Foo Bar

9

Bunu yapmak için, bir ülkenin kendisiyle ilişkili bir ila birkaç bin netblokun olduğu her netblock için bir tane olmak üzere on binlerce güvenlik duvarı kuralı eklemeniz gerekir.

Bir istek geldiğinde, her bir kurala göre kontrol edilmesi gerekir , bu da birkaç düzine hatta belki de birkaç yüz kural için çok az zaman alır, ancak kullanmanız gereken kadar kuralla, (1) her istek önemli ölçüde yavaşlayacak ve (2) çok fazla CPU kullanacaktır.

Önemli bir performans etkisi olmadan bunu yapmanın yolu, zaten yapmakta olduğunuz şeyi yapmaktır: sadece sorunlu olan belirli adresleri engellemek.


Cevabınız için teşekkürler, Michael. Yalnızca ABD tabanlı IP'lere izin vermenin bir yolu yok , bu nedenle yalnızca bir kuralı kontrol etmeniz gerekiyor mu?
Big Iron

2
@BigIron Tabii ki hayır. Ayrıca ABD'de on binlerce netblok var. Her iki şekilde de kaybedersiniz.
Michael Hampton

1
@SamuelEdwinWard Hayır, değil. Her tarafa yayılmalarına rağmen, genellikle bu tür blok listelerinin sayısı birkaç yüz girdiden fazla değildir.
Michael Hampton

1
Yavaşlamanın ne kadar önemli olduğuna dair bir referansınız var mı? Tüm kural kümeleri oldukça verimsiz görünse de doğrusal bir arama, en azından bir ikili arama, 60.000 kural tablosunda arama yapmanın tabloya sadece 16 prob alacağı ve trafiğin web sunucusuna geçmesine izin vermekten daha hızlı olabileceği anlamına gelir. isteği sunmak için disk G / Ç yürütmek zorunda. Iptables'da büyük kural kümelerinde metrik bulamadım.
Johnny

1
@Johnny netfilter (iptables) kuralları ne yazık ki doğrusal olarak işler: serverfault.com/questions/334885/…
Ross Ridge

5

İhtiyacınız olan şey ipsets adlı bir araçtır

IP kümeleri, Linux çekirdeğinin içinde ipset yardımcı programı tarafından yönetilebilen bir çerçevedir. Türüne bağlı olarak, şu anda bir IP seti IP adreslerini, (TCP / UDP) port numaralarını veya MAC adreslerini içeren IP adreslerini bir şekilde kaydedebilir;

Burada dikkat edilmesi gereken önemli nokta şimşek çakmasıdır! Çünkü ip ağlarının çok sayıda iptables kuralları yüzlerce veya binlerce satır yerine tek bir karma ile temsil edilebilir.

Engellenen ülkeler için bu örneğe bakın :


1

Bu şekilde yapılıp yapılmayacağına dair biraz göz ardı etmek iyi bir fikirdir, iptables için GeoIP modülü ile istediğinizi yapabilirsiniz .

Modülü oluşturduktan ve kurduktan sonra (ve IP listelerinizi aylık olarak güncel tuttuktan sonra ), tek tek ülkeleri engellemek için aşağıdakileri yapabilirsiniz:

iptables -I INPUT -m geoip --src-cc CN -j DROP

Veya --src-cc US -j ACCEPTsaklamak istediğiniz ülkeleri belirtmeyi tercih ediyorsanız vb.


"Açıkça inkar et" olsa ve yalnızca tek bir ülkeye izin verse bile bu bir performans felaketi olmaz mıydı?

@ AndréDaniel, GeoIP kodunun kendisine bakmadığımı itiraf ediyorum, ancak bir grup netblock'u (örn. Bir trie) karşılaştırmaktan daha akıllı olmayan naif olmayan bir uygulama kullandıklarını varsayıyorum.
Scott Dudley

Ve IPv4 hakkında konuşuyorsanız ve kural başına yedekleyeceğiniz 512 Mb'niz varsa, bir arama tablosu kullanan teorik bir uygulama işi O (1) 'de yapabilir.
Scott Dudley

1

Coğrafi konum kara listesi / beyaz liste oluşturmadan herhangi bir yerden bağlantı kurma yeteneğini korumak istiyorsanız, bağlantı noktası vurmayı uygulayabilirsiniz . Herhangi bir adresten hala bağlantı kurmanıza izin verirken çoğu otomatik denemeyi durdurur.

Not: Bağlantı noktasını açmak için bağlantı noktasına bitişik vurmaya koymayın, aksi takdirde sıralı bağlantı noktası taraması kuralınızı etkinleştirir.


0

Yığında BGP özellikli bir yönlendiriciniz veya iki tane olması ve ne yaptığını bilmeniz / ne yaptığını bilen veya ne yaptığını bilen biriyle çalışmanız konusunda bir fikriniz var. belki de bunun uygulanmasına yardımcı olacak kadar soğuk bir DDoS önleme sağlayıcısı arkasında, bir göz atmaya değer olduğunu düşünüyorum seçici kara delik denilen coğrafi bölgelere trafik kısıtlamak için nispeten taze bir yöntem var.

https://ripe68.ripe.net/presentations/176-RIPE68_JSnijders_DDoS_Damage_Control.pdf

http://mailman.nanog.org/pipermail/nanog/2014-February/064381.html

http://www.internetsociety.org/deploy360/blog/2014/07/video-selective-blackholing-at-ripe-68/

Bu yöntem rotaların manipülasyonu üzerinde çalıştığından, sunucu yükleme sorunlarını atlar.

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.