PHP programcıları Suhosin’i yakından tanırlar. Suhosin; PHP’nin daha güvenli çalışması için geliştirilmiş bir PHP modülüdür. Hali hazırda debian depolarında henüz bulunmayan Suhosin’i aşağıdaki adımları izleyerek debian tabanlı web sunucunuza kurabilirsiniz. Öncelikle aşağıdaki depoları /etc/apt/sources.list dosyamıza ekliyoruz. deb http://packages.dotdeb.org stable all Daha sonra “apt-get update” komutu ile paket depolarımızı güncelliyoruz. Ardından “apt-get install php5-suhosin” komutu ile Suhosin modulu yamanmış PHP5′imizi yüklüyoruz. Yüklenen php modüllerini Tüm yapmanız gerekenler bu kadar… Eğer php5'i apt-get ile yada .deb paketi olarak kurduysanız sistemi yamamak için aşağıdaki yönergeleri izlemeniz gerekmekte... Herşeyden önce Php5'i kaynak kodundan derlemek gerekecek bunun için öncelikle aşağıdaki paketleri kurmanız gerekecek; apt-get install dpkg-dev build-essential Daha sonra kaynak kodu indirip derleyeceğimiz bir dizine gidiyoruz. Ben genelde /usr/src dizinini tercih ediyorum bu işler için; cd /usr/src Bir sonraki aşamada hardened-php imzamızı sisteme import ediyoruz; wget http://www.hardened-php.net/hardened-php-signature-key.asc Sonraki aşamada suhosin patch'ini çekiyoruz; wget http://www.hardened-php.net/suhosin/_media/suhosin-patch-5.2.0-0.9.6.2.patch.gz Ardından php5 kaynak kodumuzu çektiğimiz yama ile yamıyoruz; gunzip suhosin-patch-5.2.0-0.9.6.2.patch.gz Eğer hata almadan yamayabildiysek yeni .deb paketimizi dpkg-buildpackage komutu ile oluşturuyoruz. Eğer hata aldıysak aşağıdaki komutla eksik paketlerin kurulumunu yapmamız gerekecek; apt-get install apache-dev apache2-prefork-dev bison chrpath debhelper firebird2-dev flex freetds-dev libapr1-dev libbz2-dev libc-client-dev libcurl3-dev libdb4.4-dev libexpat1-dev libfreetype6-dev libgcrypt11-dev libgd2-xpm-dev libjpeg62-dev libkrb5-dev libldap2-dev libmcrypt-dev libmhash-dev libmysqlclient15-dev libncurses5-dev libpam0g-dev libpcre3-dev libpng12-dev libpq-dev libpspell-dev librecode-dev libsnmp9-dev libsqlite0-dev libt1-dev libtidy-dev libwrap0-dev libxmltok1-dev libxml2-dev libxslt1-dev re2c unixodbc-dev Bu paketleri kurduktan sonra tekrar dpkg-buildpackage komutuyla derleme işlemini yapıyoruz. Herşey yolunda gittiyse yeni oluşturulan deb paketini kurarak yeni sisteme kavuşmuş oluyoruz :) Hemen bir örnek verelim. Aşağıdaki komutu kullanarak phpinfo’yu blacklist’e ekleyelim. echo suhosin.executor.func.blacklist=”phpinfo” >>/etc/php5/conf.d/suhosin.ini Daha sonra başka bir terminalden syslogu takip edelim. $tail -f /var/log/syslog Eklediğimiz fonksiyonun çalışması için Apache’yi restart edelim. $/etc/init.d/apache2 force-reload /var/www/ dizini altında içeriği aşağıdaki gibi olan info.php dosyasını oluşturalım. phpinfo(); Şimdi tarayıcımızdan http://siteadresi/info.php yazarak oluşturduğumuz info.php’i çalıştıralım. Gördüğünüz gibi info.php açılmıyacaktır ve syslog’u takip ettiğiniz diğer terminale baktığınızda aşağıdaki gibi bir uyarı mesajı göreceksiniz. Mar 5 18:58:01 ubuntu-server suhosin[27952]: ALERT - function within blacklist called: phpinfo() (attacker ‘192.168.2.2′, file ‘/var/www/info.php’, line 2) Suhosin hakkında daha fazla bilgi almak için aşağıdaki adrese girin. http://www.hardened-php.net/suhosin/ Suhosin ile neler yapabileceğinizi keşfetmek için alttaki adresindeki yazıyı incelemenizi tavsiye ederim. http://www.hardened-php.net/suhosin/configuration.html
deb-src http://packages.dotdeb.org stable alldpkg -l | grep php komutu ile görebilirsiniz.
apt-get source php5
gpg --import <>
cd php5-5.2.0
patch -p 1 -i ../suhosin-patch-5.2.0-0.9.6.2.patch
?>;
0 yorum:
Yorum Gönder