php Safe Mod'un Açılması
Tarih: 02.11.2005, 22:26
Benim düşüncem bir ana serverda mutlaka safe mod açık olmalıdır sizi php ile kullanabilecek shell fonksiyonlarından korumaktadır ve en önemlileri dosyaların sahiplerini kontrol etmektedir sizin home klasörünüzdeki bir dosya aracılı ile başka birinin home klasöründeki bir dosyaya ulaşaamzsınız yada eylem yapamazsınız
safe_mod tarafından kısıtlama getirilen fonksiyonların listesi
http://us4.php.net/manual/en/features.s ... ctions.php
sıra geldi kapatmaya adımlara geçelim
evet başlıyalım önce phpinfo dosyası oluşturucaz bir text editörü açın örnek notepad
içine bu php kodunu yazın
adını phpinfo.php olarak kaydedin ve sitenizze upload edin
ve tarayıcınızdan istetin
http://www.siteniz.com/phpinfo.php diye
ve şöle bir ekran gelicek karşınıza
http://members.lycos.co.uk/anlatim/res/shell2.jpg
burada 6 satır aşağı baktığınız zaman php.ini nin yolu gösteriliyor
Configuration File (php.ini) Path /usr/local/Zend/etc/php.ini
diyerekten
şimdi serverımıza root yetkisi ile giriş yapıyoruz
daha sonra
yazarak php konfigurasyon dosyamızı açıyoruz
açılan sayfada ctrl+w tuşlarına basıyoruz altta search yazan kısım çıktı oraya
safe_mod
yazıyoruz ve resimde yanında Off yazan ekran yanına geldi
http://members.lycos.co.uk/anlatim/res/safemod1.jpg
bu Off yazan kısımı On yazıcak şekilde değiştiriyoruz ve görünümü
http://members.lycos.co.uk/anlatim/res/safemod2.jpg
oluyor sonra ctrl+x e basıp çıkıyoruz httpd daemonuna restart atıcaz
konsoldan şu komutu yazıyoruz
http://members.lycos.co.uk/anlatim/res/shell5.jpg
şimdi bazı sitelerdeki kalitesiz scriptlerle sorun yaşayabilrisiniz size geldiler safe_mod yüzünden scriptim çalışmıyor dediler napıcaksınız httpd.conf ta yani apache nin konfigurasyon dosyasında php safe_modu tüm server da kapatmayıp sadece sorun yaşayan sitelerde kapatıcaksınız şimdi onu anlatıcam daha önce anlattığım disable_functions kısmı safe moddan tamamen bağımsız açık olsada kapalı olsada safe_mod onlar geçerli hala kapatsanız bile 1. dereceden korumamız var şimdi site tabanlı nasıl kapatacağımızı anlatayım
yani burada
/usr/local/apache/conf/httpd.conf
şimdi editorumuzle bu dosyayı açalım
şimdi ctrl+v tuşlarına basarak dosyanın en altına iniyoruz orda
orda şöyle kısımlar gördünüz
doğru yerdesiniz şi,mdi burada naısl bu site için server tabanlı php safe_modun kapatılacağını göstericeğim
bunu ekliyeceğiz şimdi
php_admin_flag safe_mode Off
eğer bu çalışmazsa bunuda ekliyebiliriz dikkat edin 2 sini bir anda eklemeyin
php_admin_flag safe_mode 0
DocumentRoot /home/localhost/public_html kısımı ile BytesLog domlogs/localhost-bytes_log kısmı arasına ekliyoruz php_admin_value safe_mode 0 değerimizi
bunu yapıp gene
http://members.lycos.co.uk/anlatim/res/shell5.jpg
Bu Kadar...
safe_mod tarafından kısıtlama getirilen fonksiyonların listesi
http://us4.php.net/manual/en/features.s ... ctions.php
sıra geldi kapatmaya adımlara geçelim
evet başlıyalım önce phpinfo dosyası oluşturucaz bir text editörü açın örnek notepad
içine bu php kodunu yazın
- Kod: Tümünü seç
<?php
phpinfo();
?>
adını phpinfo.php olarak kaydedin ve sitenizze upload edin
ve tarayıcınızdan istetin
http://www.siteniz.com/phpinfo.php diye
ve şöle bir ekran gelicek karşınıza
http://members.lycos.co.uk/anlatim/res/shell2.jpg
burada 6 satır aşağı baktığınız zaman php.ini nin yolu gösteriliyor
Configuration File (php.ini) Path /usr/local/Zend/etc/php.ini
diyerekten
şimdi serverımıza root yetkisi ile giriş yapıyoruz
daha sonra
- Kod: Tümünü seç
pico /usr/local/Zend/etc/php.ini
yazarak php konfigurasyon dosyamızı açıyoruz
açılan sayfada ctrl+w tuşlarına basıyoruz altta search yazan kısım çıktı oraya
safe_mod
yazıyoruz ve resimde yanında Off yazan ekran yanına geldi
http://members.lycos.co.uk/anlatim/res/safemod1.jpg
bu Off yazan kısımı On yazıcak şekilde değiştiriyoruz ve görünümü
http://members.lycos.co.uk/anlatim/res/safemod2.jpg
oluyor sonra ctrl+x e basıp çıkıyoruz httpd daemonuna restart atıcaz
konsoldan şu komutu yazıyoruz
- Kod: Tümünü seç
/etc/init.d/httpd restart
http://members.lycos.co.uk/anlatim/res/shell5.jpg
şimdi bazı sitelerdeki kalitesiz scriptlerle sorun yaşayabilrisiniz size geldiler safe_mod yüzünden scriptim çalışmıyor dediler napıcaksınız httpd.conf ta yani apache nin konfigurasyon dosyasında php safe_modu tüm server da kapatmayıp sadece sorun yaşayan sitelerde kapatıcaksınız şimdi onu anlatıcam daha önce anlattığım disable_functions kısmı safe moddan tamamen bağımsız açık olsada kapalı olsada safe_mod onlar geçerli hala kapatsanız bile 1. dereceden korumamız var şimdi site tabanlı nasıl kapatacağımızı anlatayım
- Kod: Tümünü seç
locate httpd.conf
/etc/httpd.old/conf/httpd.conf
/root/installd/buildapache/httpd.conf.tmpeditlib
/usr/share/redhat-config-httpd/httpd.conf.xsl
/usr/local/apache/conf/httpd.conf.default
/usr/local/apache/conf/httpd.conf
/usr/local/apache/conf/httpd.conf.bak
/usr/local/apache/conf/httpd.conf.tmpeditlib
/usr/local/apache/conf/httpd.conf-
/usr/local/apache/conf/httpd.conf,v
/usr/local/apache/conf/httpd.conf_yedek
/usr/local/apache/conf/httpd.conf-mod_sec
/usr/local/apache/conf/httpd.conf.bak2
/usr/local/apache/conf/httpd.conf.save
/usr/local/apache/conf/httpd.conf.yedek
/usr/src/mod_security-1.8.6/httpd.conf.regression-v1
/usr/src/mod_security-1.8.6/httpd.conf.regression-v2
/usr/src/mod_security-1.8.6/httpd.conf.example-minimal
/home/cpapachebuild/buildapache/httpd.conf.tmpeditlib
yani burada
/usr/local/apache/conf/httpd.conf
şimdi editorumuzle bu dosyayı açalım
- Kod: Tümünü seç
pico /usr/local/apache/conf/httpd.conf
şimdi ctrl+v tuşlarına basarak dosyanın en altına iniyoruz orda
orda şöyle kısımlar gördünüz
- Kod: Tümünü seç
<VirtualHost 127.0.0.1>
ServerAlias www.localhost.com localhost.com
ServerAdmin webmaster@localhost
DocumentRoot /home/localhost/public_html
BytesLog domlogs/localhost-bytes_log
<IfModule mod_userdir.c>
UserDir disabled
UserDir enabled localhost
</IfModule>
<IfModule mod_php4.c>
php_admin_value open_basedir "/home/localhost/:/usr/lib/php:/usr/local/lib/php:/t$
</IfModule>
ServerName www.localhost
User heroyun
Group heroyun
CustomLog domlogs/localhost.com combined
ScriptAlias /cgi-bin/ /home/localhost/public_html/cgi-bin/
</VirtualHost>
doğru yerdesiniz şi,mdi burada naısl bu site için server tabanlı php safe_modun kapatılacağını göstericeğim
bunu ekliyeceğiz şimdi
php_admin_flag safe_mode Off
eğer bu çalışmazsa bunuda ekliyebiliriz dikkat edin 2 sini bir anda eklemeyin
php_admin_flag safe_mode 0
- Kod: Tümünü seç
<VirtualHost 127.0.0.1>
ServerAlias www.localhost.com localhost.com
ServerAdmin webmaster@localhost
DocumentRoot /home/localhost/public_html
php_admin_value safe_mode 0
BytesLog domlogs/localhost-bytes_log
<IfModule mod_userdir.c>
UserDir disabled
UserDir enabled localhost
</IfModule>
<IfModule mod_php4.c>
php_admin_value open_basedir "/home/localhost/:/usr/lib/php:/usr/local/lib/php:/t$
</IfModule>
ServerName www.localhost
User heroyun
Group heroyun
CustomLog domlogs/localhost.com combined
ScriptAlias /cgi-bin/ /home/localhost/public_html/cgi-bin/
</VirtualHost>
DocumentRoot /home/localhost/public_html kısımı ile BytesLog domlogs/localhost-bytes_log kısmı arasına ekliyoruz php_admin_value safe_mode 0 değerimizi
bunu yapıp gene
- Kod: Tümünü seç
/etc/init.d/httpd restart
http://members.lycos.co.uk/anlatim/res/shell5.jpg
Bu Kadar...