14 Adımlı Apache Güvenliği En İyi Uygulamalar Kontrol Listesi (PDF e-Kitap dahil)
Yayınlanan: 2017-11-22demiryolufx / Stock.adobe.com
Apache şu anda %45,8 pazar payıyla dünyanın önde gelen web sunucusu yazılımı olmaya devam ediyor. Bu, web sunucuları Apache tarafından desteklenen yaklaşık 80 milyon web sitesi anlamına geliyor. Oldukça etkileyici, değil mi?
Apache, 1995'ten bu yana piyasada olan açık kaynaklı bir web sunucusu yazılımıdır, bu nedenle tek başına güvenilirliği ve uzun ömürlülüğü hakkında çok şey söyler. Ayrıca Apache sunucularında çalışan yüksek profilli web siteleri de var: Apple, Adobe ve Paypal, web sitelerini Apache'ye emanet eden büyük markalardan sadece birkaçı.
Elbette bu Apache'yi %100 güvenli yapmaz, çünkü hiçbir yazılım bilgisayar korsanlarına karşı %100 güvenli olamaz, özellikle de bu kadar iyi bilinen ve güvenilir bir platform olduğunda (WordPress'e çok benzer). Ancak bir Apache güvenlik PDF e-Kitabı, modülü, kılavuzu, öğreticisi, çerçevesi veya web sunucusu güvenlik kontrol listesi arıyorsanız doğru yere geldiniz.
Apache güvenliğinizi güçlendirmek istiyorsanız veya herhangi bir apache güvenlik sorunu yaşıyorsanız veya bir veya iki güvenlik açığını düzeltmeye çalışıyorsanız, aşağıdaki kontrol listesi size web sitenizin güvenlik planına ekleyebileceğiniz 14 en iyi güvenlik uygulamasını sağlayacaktır.
Ultimate Apache Güvenliği En İyi Uygulamalar Kontrol Listesi
WordPress web sitenizi gerçekten güçlendirmek isteyenler için, web sitenize bağlanan ve web sitenize güç veren diğer yazılımlarda olduğu gibi Apache'nin güvenliğini sağlamak çok önemlidir. Bunu yapmamak sitenizin hızını bile etkileyebilir. İşte bunu nasıl yapacağınız:
1. Apache'yi güncelleyin
WordPress'in ve yüklediğiniz eklentilerin ve temaların nasıl düzenli olarak güncellenmesi gerektiğini biliyor musunuz? Web sunucunuz da öyle.
Sitenizin Apache'nin en güncel sürümünde çalışmadığından endişeleniyorsanız httpd -v komut satırını kullanarak sitenizi kontrol edebilirsiniz. Çıktılanan sürüm Apache'deki geçerli sürümle eşleşmiyorsa, onu aşağıdakilerle güncelleyebilirsiniz:
# yum update httpd
# apt-get install [add Apache version here]c
2. Günlükleri açın
Yönetilen bir WordPress barındırma sağlayıcısıyla çalışıyorsanız, sunucunuzu ve WordPress'inizi güvenlik açıklarına ve diğer uyarı işaretlerine karşı izlemekle ilgilenirler. Bununla birlikte, sunucu trafiğinize de dikkat etmelisiniz.
Apache ile mod_log_config modülünüzü güncelleyerek bu aktivite günlüğüne erişim sağlayabilirsiniz. Temel olarak, kullanıcıların sunucunuza dokunduklarında ne yapacaklarını size söyleyecektir.
3. SSL Sertifikası Alın
Web sunucunuz, web sitenize gelen tüm tarayıcı/sunucu isteklerini yerine getirdiği için, onu bir SSL sertifikasıyla güvenceye almanız önemlidir. İyi haber şu ki artık ücretsiz bir SSL sertifikası alabilirsiniz. Bu artık her zamankinden daha önemli, dolayısıyla bunu kendiniz kuracak teknik yeterliliğe sahip değilseniz, herhangi bir kaliteli barındırma sağlayıcısı bunu sizin için yapabilecektir.
4. Güvenlik Duvarı Ekleyin
SSL şifrelemesinin ek korumasına ek olarak web sunucunuz bir güvenlik duvarı ile güçlendirilmelidir. Apache için bu, ModSecurity'yi açmak anlamına gelir.
Sunucunuza yüklemek için aşağıdakileri uygulayabilirsiniz:
# yum install mod_security
# /etc/init.d/httpd restart
Güvenlik duvarı devreye girdiğinde, SQL enjeksiyonu, oturum ele geçirme ve siteler arası komut dosyası oluşturma gibi bir dizi kötü amaçlı etkinliğin sunucunuza ulaşmasını önleyecektir.
5. mod_evasive'i yükleyin
Mod_evasive, Apache sunucunuzu kaba kuvvet ve DDoS saldırılarından koruyacak modüldür, bu nedenle bunun da etkinleştirildiğinden emin olun. Eşzamanlı ve başarısız oturum açma girişimlerini kara listeye almanın yanı sıra kötü amaçlı IP'leri de izler.
6. HTTP Sınırlarını Ayarlayın
Ne tür eylemlere dikkat etmeniz gerektiğini biliyorsanız, dağıtılmış hizmet reddi (DDoS) saldırılarını engellemek oldukça kolaydır. DDoS, sunucunuza sürekli olarak büyük istekler gönderilerek gerçekleşme eğiliminde olduğundan, amacınız bunun olmasını engelleyecek sınırlar belirlemek olmalıdır.
Oluşturmak isteyeceğiniz sınırlardan bazıları şunlardır:
- KeepAlive=açık
- Hayatta kalma zaman aşımı
- Limitİstek Gövdesi
- Limitİstek Alanları
- LimitRequestFieldSize
- Limitİstek Hattı
- LimitXMLRequestBody
- Maksimum İstemciler
- MaxKeepAliveİstekleri
- MaxRequestWorkers
- İstekOkumaZaman Aşımı
- Zaman aşımı
7. Kullanılmayan Modülleri Sil
Kullanılmayan, bakımı yapılmayan veya süresi dolmuş modülleri Apache sunucunuzda bırakarak sitenizi, orada bulunmasına bile gerek olmayan bir giriş noktası üzerinden bilgisayar korsanlarına açık bırakmış olursunuz.
Yapmanız gereken ilk şey hangi modüllerin gerçekten aktif olduğunu bulmaktır. Bunu LoadModule komutunu kullanarak yapabilirsiniz. Listeyi inceledikten ve hangi modüllere ihtiyacınız olmadığını belirledikten sonra, devre dışı bırakmak istediğiniz her modülün önüne “#” sembolünü eklemeniz ve ardından yeniden başlatmanız yeterlidir.
8. Varsayılan Kullanıcıyı ve Grubu Değiştirin
Herhangi bir yazılımda varsayılan ayarların ve kullanıcıların bırakılması genel olarak kötü bir güvenlik uygulamasıdır. Bunun nedeni basit: Apache'nin varsayılan kullanıcı veya grup adını kullanıyorsanız, bilgisayar korsanlarının bu varsayılan adların da ne olduğunun farkında olduğundan emin olabilirsiniz.
Varsayılanları yerinde bırakmak yerine Apache süreçlerinizi yürütmek için ayrıcalıklı olmayan yeni bir hesap oluşturmalısınız. # groupadd ve # useradd komutlarını kullanarak yeni varlıkları ayarlayabilirsiniz. httpd.conf dosyanızı, oluşturduğunuz yeni kullanıcı ve grup adlarıyla güncellemeyi unutmayın.
9. Dizin Erişimini Engelleyin
İşte değiştirilmesi gereken varsayılan ayarların başka bir örneği. Bu durumda, herkesin istediği yeri keşfetmesine olanak tanıyan, dizininizin dosyalarına verilen erişimdir.
Toplam bloğu yerine koymak için aşağıdaki komutu kullanın:
<Directory "/">
Require all denied
</Directory>
Belirli kullanıcılara erişimi etkinleştirmek istiyorsanız bunu şununla yapabilirsiniz:
<Directory "/usr/users/*/public_html">
Require all granted
</Directory>
Dizin içindeki belirli klasörlere erişimi etkinleştirmek istiyorsanız bunu şunu yapabilirsiniz:
<Directory "/usr/local/httpd">
Require all granted
</Directory>
Kullanıcı erişim haklarının daha da ayarlanması için Apache modül deposunu da incelemek isteyebilirsiniz.
10. Rehberi Yayınlamayın
Sunucunuzun bir indeks dosyası yoksa kullanıcıların kök dizininizde sakladığınız tüm içeriği görebileceğini biliyor muydunuz? Bu kesinlikle iyi değil, bu nedenle bu varsayılan ayarı aşağıdakileri kullanarak devre dışı bırakmanız gerekecek:
<Directory /var/www/html>
Options -Indexes
</Directory>
11. Sunucu Detaylarını Gizle
Apache açık kaynaklı bir yazılım olduğundan, kullanılan sürümle ilgili ayrıntılar, bu ayarların sunucu tarafında devre dışı bırakılmaması durumunda kolayca elde edilebilir. Bilgisayar korsanları bu hassas bilgileri sunucunuza nasıl gireceklerini bulmak için kullanabileceğinden, bu bilgileri engellemek isteyeceksiniz.
Devre dışı bırakmak isteyeceğiniz iki şey var:
- ServerSignature – Apache'nin sürümüdür
- ServerTokens – diğer hassas sunucu ayrıntılarının yanı sıra işletim sistemi sürümünü de içerir
Bu bilgi, diğer kullanıcılar tarafından web sitenizdeki bir hata sayfasını görüntüleyerek bulunabilir; bu nedenle, bunun gösterilmesini engellemek oldukça önemlidir. Bunu yapmak için httpd.conf dosyasını aşağıdakilerle güncelleyin:
ServerSignature Off
ServerTokens Prod
12. ETag'ı gizleyin
Apache'deki ETag başlığı ne yazık ki sunucunuzla ilgili bir takım hassas ayrıntılar içeriyor. Açıkçası, bu tür bilgileri dış dünyayla paylaşan her şeyin gizlenmesi gerekir. Ayrıca, bir e-ticaret web sitesi işletiyorsanız PCI uyumlu olması için bunu gizlemeniz gerekir.
Bunu yapmak için httpd.conf'unuza aşağıdaki yönergeyi ekleyin:
FileETag None
13. .htaccess Geçersiz Kılma'yı devre dışı bırakın
.htaccess herhangi bir WordPress web sitesi için önemli bir dosyadır. Bu nedenle onu kilitlemeniz ve başka hiç kimsenin yapılandırma ayarlarınızı geçersiz kılamayacağından emin olmanız gerekir.
Bunu devre dışı bırakmak için httpd.conf dosyanızın köküne aşağıdakini ekleyin:
<Directory />
Options -Indexes
AllowOverride None
</Directory>
14. SSI ve CGI'yı devre dışı bırakın
Sunucu Tarafı İçeriği (SSI) etkin dosyalar, kontrol edilmediği takdirde sitenizde bir dizi güvenlik sorununa neden olabilir. Aynı şey CGI betikleri için de geçerli. Bunlardan herhangi birinin bilgisayar korsanlarının sunucunuzu aşırı yüklemesine veya kodunuza kötü amaçlı komut dosyaları eklemesine izin vermesini önlemek için, bunları kapatmayı veya Seçenekler yönergesi aracılığıyla yaptıklarını kısıtlamayı unutmayın.
Kullanabileceğiniz bazı Seçenek değerleri şunlardır:
- Seçenekler Tümü
- Seçenekler şunları içerir: NOEXEC
- Seçenekler -İçerirler
- Seçenekler -ExecCGI
- Seçenekler -İçerirler -ExecCGI
- Seçenekler Çoklu Görünümler
Apache Sunucunuzun Bakımı
Web sitenizin güvenliğini güçlendirmek amacıyla Apache sunucunuza özellikle dikkat edin. Sunucunun yanlış yapılandırılması ve varsayılan ayarların yerinde bırakılması gibi sorunlar, güncellenmemiş çekirdek veya güvenli olmayan PHP kodlama uygulamaları kadar sitenizi de riske atabilir.
Geri bildiriminizi vermek veya sohbete katılmak mı istiyorsunuz?Yorumlarınızı Twitter'a ekleyin.