| |||||||
Apache projesi güvenliği, ticari dereceli, özellikli ve kaynak koduna bedava ulaşılabilir bir web sunucu uygulamasını amaçlayan işbirlikçi yazılım geliştirme çabasıdır. Proje dünya üzerinde iletişim, plan ve geliştirme için Web ve interneti kullanan gönüllüler grubu tarafından yönetiliyor. Bu gönüllüler Apache grubu olarak bilinirler. Buna ek olarak yüzlerce insanda bu projeye düşünce, kod ve belge katkısı yapar. Bu belge Apache Grubunun tarihini tanımlamak ve katılımcılarını tanımayı hedefler. | ||
| --www.apache.org | ||
Apache, en iyi web sunucu yazılımıdır. İhtiyaçlarınıza uymak için çok esnek yapılıdır ve son derece tutarlıdır, kararlıdır. Kişisel olarak hiçbir zaman üretim ortamında sorun yaşattığına şahit olmadım.
Adres: http://www.apache.org/dist/httpd/
$ cd /usr/local/ $ tar -xvzf apache_1.3.27.tar.gz |
Eğer web sunucunuz aynı anda bir çok isteğe cevap vermek zorundaysa ve makinanız çok isteğe cevap verebilecek yeteri güce sahipse, çalışan azami süreç sayısı sınırını değiştirebilirsiniz.
Yamayı indirin:: http://www.delouw.ch/linux/apache-patch_HARD_SERVER_LIMIT.txt
--- httpd.h Thu Mar 21 18:07:34 2002 +++ httpd.h-new Sun Apr 7 13:34:11 2002 @@ -320,7 +320,7 @@ #elif defined(NETWARE) #define HARD_SERVER_LIMIT 2048 #else -#define HARD_SERVER_LIMIT 256 +#define HARD_SERVER_LIMIT 512 #endif #endif |
Bu yama aynı anda erişim yapabilecek istemci erişim sayısını 512'ye çıkarır. Eğer çekirdeğinizin kaynak kodundaki /etc/security/limits.conf dosyanızı düzenlerseniz daha da arttırabilirsiniz.
![]() | Görev dışı çalışmadan kaçının |
|---|---|
Bu ayar yanlış yapılırsa "kendi kendine saldırı" uyarısıyla sonlanır. Yönetici için yeterli süreç bıraktığınıza emin olun. | |
Yamanın uygulanması:
$ cd /usr/local/apache_1.3.27/src/include $ patch -p0 < apache-patch_HARD_SERVER_LIMIT.txt |
Bu modül Eric A.Young ve Tim J.Hudson tarafından geliştirilen SSLeay temelli OpenSSL yardımıyla, Güvenli Soket Katmanı (SSL v2/v3) ve İletim Katmanı Güvenliği (TLS v1) protokolleri yoluyla Apache 1.3 web sunucu için güçlü bir şifreleme sağlar. | ||
| --www.modssl.org | ||
Bu modüle, web sunucuya yapılan HTTPS isteklerini gerçekleştirmek için ihtiyaç duyulur. Apache kaynak koduna yama yapar ve onun uygulama geliştirme arayüzünü (API), EAPI (genişlemiş uygulama geliştirme arayüzü) denen arayüze genişletir.
![]() | Modülleri derlerken derleyici seçeneklerini kullanın |
|---|---|
Apache sunucu için, her modülün -DEAPI derleyici seçeneği ile derlenmiş olmasına dikkat edin, aksi takdirde sunucunuz başlatılamayabilir, hatta çökebilir. | |
mod_jserv ve mod_jk hariç hemen hemen bildiğim bütün modüller kendileri -DEAPI derleyici seçeneğini eklerler.
Adres: http://www.modssl.org
mod_perl ile bütün Apache modüllerini Perl'de yazmak mümkündür. Buna ek olarak sunucunun içine dahili bir yorumlayıcı gömülmüştür, bu da harici bir yorumlayıcının başlatılmasını ve Perl'in başlatılması sırasındaki gecikmeleri önler. | ||
| --perl.apache.org | ||
mod_perl cgi-bin'ler için bir çeşit vekildir. cgi'ler her bir istek için yeni bir süreç çatallar ve aşırı yük oluştururlar.mod_perl ile Perl yorumlayıcısı Apache sunucusuna kalıcı olarak yüklenir ve böylece her bir istek için yeni sürecin çatallanmasına gerek kalmaz.
$ cd /usr/local $ tar -xvzf mod_perl-1.27.tar.gz $ cd mod_perl-1.27 $ perl Makefile.PL \ EVERYTHING=1 \ APACHE_SRC=../apache_1.3.27/src \ USE_APACI=1 \ PREP_HTTPD=1 \ DO_HTTPD=1 $ make # make install |
![]() | mod_perl DSO olarak derlenemez |
|---|---|
mod_perl'i dinamik paylaşımlı nesne (DSO - Dynamic Shared Object) olarak derlemeyin! Çeşitli kaynaklar Apache'nin çökebileceğini söylüyor! (ben hiç denemedim). | |
İki statik modülü mod_ssl ve mod_perl'i yapılandırdık ve Apache kaynak kodunu yamadık. Artık Apache'yi derlemeye başlayabiliriz.
$ EAPI_MM="/usr/local/mm-1.2.2" SSL_BASE="/usr/local/ssl" \ ./configure \ --enable-module=unique_id \ --enable-module=rewrite \ --enable-module=speling \ --enable-module=expires \ --enable-module=info \ --enable-module=log_agent \ --enable-module=log_referer \ --enable-module=usertrack \ --enable-module=proxy \ --enable-module=userdir \ --enable-module=so \ --enable-shared=ssl \ --enable-module=ssl \ --activate-module=src/modules/perl/libperl.a \ --enable-module=perl $ make # make install |
# cd /usr/local/ssl/bin # ./openssl req -new > new.cert.csr # ./openssl rsa -in privkey.pem -out new.cert.key # ./openssl x509 -in new.cert.csr -out new.cert.cert \ -req -signkey new.cert.key -days 999 # cp new.cert.key /usr/local/apache/conf/ssl.key/server.key # cp new.cert.cert /usr/local/apache/conf/ssl.crt/server.crt |
![]() | Genel isim |
|---|---|
OpenSSL farklı şeyler sorar. Genellikle yapılan yanlışlardan biri yanlış bir "Common name" girmektir. Bu sunucunuzun tam nitelikli konak ismi (Fully Qualified HostName) olmalıdır, örneğin: falan.filan.org. | |
| ||||||||||