it-swarm-tr.com

Apache Server sertleştirme için en iyi uygulamalar?

Apache Sunucusunun güvenliğini sağlamak için bazı en iyi uygulamalar, öneriler, gerekli okumalar nelerdir?

104
Eric Warriner

Apache'nin güvenliğini sağlamak için İnternet Güvenliği Merkezi (CIS) kılavuzunu edinin (güvenliğin nasıl geliştirileceğini ayrıntılı olarak açıklar):

Düzenleme: Güncelleme bağlantısı CIS Apache HTTP Sunucusu 2.2.x Kıyaslama

Nessus için lisansınız varsa, denetim şablonlarını kapatarak otomatik bir çek çalıştırabilirsiniz:

alt text

31
Tate Hansen
  • SSH anahtar tabanlı girişleri kullanma
  • Güvenli MySQL
  • PhpMyAdmin, webmin, vb. Devre dışı bırak
  • Gerekli olmayan tüm bağlantı noktalarını/işlemleri kapatın
  • Dosya bütünlüğü denetleyicisi kullanma
  • Mod_security kullanın
  • Uygun izinleri/grupları ayarlama

Bu iyi bir rehberdir:
https://serverfault.com/questions/212269/tips-for-securing-a-lamp-server

Sertleştirme için temel kılavuz: http://www.wpsecure.net/server-guide/

Eğer php çalıştırıyorsanız: http://www.madirish.net/?article=229

Apache günlüğünde 404'leri (veya diğer durum kodlarını) bulun
awk '$9 == 404 {print $7}' access_log | uniq -c | sort -rn | head

12
Wyck

Kabul edilen bu sorunun asıl olarak oylanan cevabı, Apache yapılandırmanızı korumanın 20 yol doğrudan intihal olduğu için silindi. Bu sayfa harika bir kaynak.

@RoryMcCune bu yanıta bir bağlantı olarak da gönderdi: Kullanılabilir bir ModSecurity Çekirdek Kural Seti geliştirmek için bir OWASP projesi var.

7
Jeff Ferland

Burada birçok iyi tavsiye var, bu yüzden daha önce bahsedilen şeyleri tekrarlamayacağım. Ama söyleyeceğim:

Varsayılan hata sayfalarını Web Sunucusu sürümünüzü veya çekirdek düzeltmenizi vermeyen öğelerle değiştirmeyi unutmayın. Ben her varsayılan html "Hata 400" gibi bir şey 1 gömlekleri ile değiştirme eğilimindedir. Sistem hakkında çok az şey verir. Bu ilke, özel hata sayfaları görüntüleyebilen tüm web sunucuları için geçerlidir, hepsi varsayılandan gereğinden fazla bilgi vermek için varsayılan değerdir. ServerSignature'ın bunu gizleyeceğini düşünürsünüz, ancak çoğu durumda değil.

Ayrıca, tüm varsayılan HTML içeriğini (dile özgü vb.) Silmeyi unutmayın, böylece parmak izi çok daha zordur.

Bildiğim kadarıyla iyi okumalar gitmek bir teknik inceleme Apcon 2008 bir okumaya değer.

Mod_Security birkaç kez bahsedilir, bu web uygulamaları için daha uygundur, bu nedenle yalnızca statik içerik sunuyorsanız, size yardımcı olmaz çok fazla olsa da, istek işleme sırasında statik bir Web Sunucusunu etkileyebilecek bazı saldırılara rağmen.

Bahsettiğim diğer bir şey iyi bir günlük yönetimi, eğer günlüklerinizi yetiştirmiyor ve sisteme yakından bakarsanız, bir saldırganın farkında olmadan ona vurma riskiyle karşı karşıya kalırsınız.

6
Ori

Tüm genel güvenlik ilkeleri geçerlidir: yalnızca ihtiyacınız olan modülleri çalıştırın, ihtiyacınız olmayan özellikleri kapatın, izinlerinizi/sahipliklerinizi toplayın (çoğu içerik salt okunurdur, bu yüzden dosyalar neden 400'den fazla izin gerektiriyor?).

CGI işleri gibi Apache'ye özgü şeylerin veya aynı içeriği iki farklı güvenlik mekanizmasıyla iki kez sunan farklı vhost'ların fark edilmesi daha zordur; tam olarak otomatik bir kontrol değil, aslında Apache'yi, temel işletim sistemini ve Apache'de çalışan uygulamaların ne yaptığını bilmelisiniz.

Tamlık uğruna DISA'dan Apache 2.2 Güvenlik Kontrol Listesi . GÜNCELLEME: İşte tüm koleksiyon web sunucusu sertleştirme belgelerine bir bağlantı.

6
Marcin

Apache'ye mod_security bir göz atmaya değer olabilir.

Son zamanlarda sunucularımdan bazılarına devam ediyorum, sadece sürüm numarasını vb. Değiştirmek gibi Apache'nin kendisine bazı yapılandırma ayarları yapmıyor, aynı zamanda SQL gibi çok çeşitli saldırılara karşı korunmaya yardımcı olan bir web uygulaması güvenlik duvarı gibi davranıyor enjeksiyon vb.

4
Mark Davidson

Apache Web Sunucusunu Nasıl Korurum?

"Nasıl bir jum-jet uçarım" veya "Beyin ameliyatı nasıl yaparım" diye sorduğunuzda ne cevap beklenir - aynı şey bir web sunucusunu güvenli hale getirmek için de geçerlidir - 1000 saatlik eğitim, uygulama ve araştırma yapmanız gerekir . Ama herkes bir yerden başlamak zorunda olduğu için ...

Nasıl bir sunucu sertleştirmek için internette temel kontrol listeleri bir sürü vardır - ama başka bir yerde benim yorum göre onlar büyük ölçüde kalite değişir.

İyi bir kaynak olarak sans one tavsiye ederim.

Kontrol listesini takip ettikten sonra,

  • sunucunuzun bütünlüğünü doğrulayın (kesinlikle bir rootkit dedektörü ile birlikte tripwire gibi Host tabanlı bir IDS'ye ihtiyacınız vardır)
  • yamaların farkında olmak ve uygulamak
  • sisteminizi bilinen iyi bir duruma getirin

Bir güvenlik olayıyla nasıl başa çıkacağınızı planlamayın eğer olur. Ne yapacağınızı planlayın ne zaman olur.

Sistem kurulumunuzu yaptıktan ve yapılandırdıktan sonra sabit diski çıkarın ve orijinal diski kullanmadan hizmeti yeniden açmanızın ne kadar sürdüğünü görün.

2
symcbean

bu sadece Apache ile ilgili değildir (ve aynı zamanda nginx + php-fpm için de geçerlidir), fakat sıklıkla unutulur: php-eastereggs, php.ini ile değiştirilebilir

  expose_php = off

bir phpinfo.php'yi geride bırakmak kadar korkunç değil, ancak genellikle çok tembel sistem yönetimine bir ipucu.

bkz. paskalya yumurtaları

İyi iş parçacığı döndü. Birçok insan gerçeği söyler.

Birini unuttular, OpenBSD yol:

OpenBSD'de, Apache httpd (8) sunucusu varsayılan olarak chroot (2) olarak düzenlenmiştir

httpd (Apache'nin v.1 sürümü) varsayılan olarak OpenBSD'ye dahil edilmiştir ve varsayılan olarak köklendirilmiştir.

Diğer Unix benzeri işletim sistemlerinde Apache2 veya nginx ile bunu tekrarlayabilirsiniz.

0
user29424

Apache'nin en son sürümünü kullanın, işletim sisteminizi ve ayrıca openssl veya diğer üçüncü tarafları yamalayın.

İstenmeyen bağlantı noktalarını engelleyin.

Bu sizi bilinen bazı güvenlik açıklarından koruyacaktır, ancak elbette 0 güne her zaman açık olacaksınız.

0
Novice User

İşte 6 temel adım:

  1. Uygulama kodunuzu koruyun
  2. kullanılmayan tüm modülleri devre dışı bırak. Tümünü devre dışı bırakmaya çalışın ve ardından tek tek modüller ekleyin.
  3. web klasöründeki tüm komut dosyalarını ve yedekleme dosyalarını kaldırın.
  4. dizin listesini devre dışı bırak
  5. uygulamanızı uygulama düzeyi saldırılara karşı korumak için modsecurity kullanın.
  6. HTTP hatalarını (403, 404) tetiklemek için Fail2ban kullanın.

Ağ güvenlik duvarınıza güvenmeyin, web güvenliği hakkında konuşmak işe yaramaz.

0
Mike