IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  digitalpanel

Etiketlenen Kullanıcılar

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 01 Mayıs 2013, 09:09   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Site guvenligi




Son zamanlarda "RFI" (Remote File Include) tarzı yöntemlerle birçok hack olayı yaşanıyor birçok kişi bunların önlemini almakta çaresiz kalıyor ve bu yüzden gerek itibarlarından gerekse sitelerinden oluyorlar. "RFI" açıklarını engelleyemeyenler için bir döküman yazmaya karar verdim. Bu sayede "RFI" açığınız olsa bile en az zararla hatta "0" zararla nasıl kurtulacağınızı anlatacağım. Bu ayarlar sayesinde hem güvenliğinizi hem de performansınızı artırmış olacaksınız.

"php.ini" yapılandırmasına geçmeden önce sunucumuzda bulunan klasör ve dosya izinlerini "chmod" doğru şekilde ayarlayalım. Genelde FTP programlarında dosya yada klasör üzerine "sağ click" yapılıp yada "file" seçeneğinden "Change Attributes ya da Properties / CHMOD" seçeneklerinden düzenleriz burada "permissions" altında yani izinler altında önerilenleri girmek en uygunudur.

Klasörler için: 755
Dosyalar için: 644

İzinleri bu şekilde ayarlamanız güvenlik için ilk adımı atmanıza yardımcı olur.

"php.ini" yapılandırması:

Eğer server admini iseniz yani root yetkilere sahipseniz bu ayarları serverda bulunan tüm siteler için yapabilirsiniz genellikle "/usr/local/Zend/etc/" , "/usr/local/lib/" altında bulunur "php.ini" dosyasını açarak düzenleyebilirsiniz veya "httpd.conf" dosyasının doğru yapılandırılmasıyla da olur. Daha sonra apache'ye restart atmanız gerekmektedir.

Root değilseniz sadece kendi siteniz için yapmanız gerekiyorsa kök dizininizde (public_html) bir "php.ini" dosyası oluşturarak veya varolan "php.ini" dosyasının içerisine altta verdiğim kodları ekleyerek güvenliğinizi sağlayabilirsiniz. Fakat sitenizle aynı serverda bulunan diğer sitelerden kaynaklanan açıklardan yararlanan kişiler root olmayı başarırlarsa burada anlatılanlar yetersiz kalır, root olmayı başaramazlarsa ve sitenizin şifrelerini kaptırmazsanız güvendesinizdir.

***Altta anlattığım bilgiler iyi bir güvenlik için yapılması gerekenler olduğundan dolayı bunları uyguladıktan sonra bazı ******lerinizin çalışması engellenmiş olabilir. Ama ******in çalışmasını engelleyen değerleri iptal ederseniz ****** tekrar doğru şekilde çalışacaktır***

Şimdi gelelim "php.ini" yapılandırmasına:

"disable_********s" (Güvenlik)

"disable_********s" ile serverınızda birçok fonksiyonun çalışmasını engelleyebilirsiniz bu sayede sitenize inject edilen ******ler, sheller için güvenliğinizi almış olursunuz. Bu kadar fonksiyon fazla gelebilir ama iyi bir güvenlik için şart. Bu kadar sayıda devre dışı bırakılan fonksiyonlar ilk defa "eno7.org" adresinde verilmiştir.

Önerilen:

PLAIN TEXT
CODE:
disable_********s = foreach, glob, openbasedir, posix_getpwuid, f_open, system,dl, array_compare, array_user_key_compare, passthru, cat, exec, popen, proc_close, proc_get_status, proc_nice, proc_open, escapeshellcmd, escapeshellarg, show_source, posix_mkfifo, ini_restore, mysql_list_dbs, get_current_user, getmyuid, pconnect, link, symlink, fin, passthruexec, fileread, shell_exec, pcntl_exec, ini_alter, parse_ini_file, leak, apache_child_terminate, chown, posix_kill, posix_setpgid, posix_setsid, posix_setuid, proc_terminate, syslog, allow_url_fopen, fpassthru, execute, shell, curl_exec, chgrp, stream_select, passthru, socket_select, socket_create, socket_create_listen, socket_create_pair, socket_listen, socket_accept, socket_bind, socket_strerror, pcntl_fork, pcntl_signal, pcntl_waitpid, pcntl_wexitstatus, pcntl_wifexited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig, openlog, apache_get_modules, apache_get_version, apache_getenv, apache_note, apache_setenv, virtual
Eğer bu kadar fonsiyonu devre dışı bırakmak fazla geldiyse alttaki gibi de ayarlayabilirsiniz bu da güvenliğiniz için yeterlidir:

PLAIN TEXT
CODE:
disable_********s = glob, posix_getpwuid, array_compare, array_user_key_compare, ini_restore, exec, proc_get_status, proc_nice, proc_open, allow_url_fopen, fin, pconnect, system, dl, passthruexec, shell_exec, proc_close, proc_get_status, chown, chgrp, escapeshellcmd, escapeshellarg, fileread, passthru, popen,curl_exec, shell, execute
-------------------------

"safe_mode" (Güvenlik)

"Safe Mode" adından da anlaşılacağı gibi "Güvenli Mod" anlamına geliyor. "Safe Mode" genelde birçok serverda "Off" durumdadır ve bu da birçok tehlikeye davetiye çıkaran unsurlar arasında yer alır. "Güvenli Modu Açık" durumuna getirmek shellerin serverımızda istedikleri gibi dolaşmalarını, exploitlerin çalıştırılmasını ve komutların execute edilmelerini önler. Günümüzde "açık olan güvenlik modunu" kapalı duruma getiren ******ler mevcut fakat altta anlatılan önlemlerle bunun da önüne geçilebilir.

Önerilen:

PLAIN TEXT
CODE:
safe_mode = on
-------------------------

"register_globals" (Güvenlik ve Performans)

php.ini dosyasında bulunan "post" "get" ile gönderilen değerlere kullanıcı adlarıyla ulaşılıp ulaşılamayacağını belirtir. Session, cookie değerlerini kendi adıyla tanımlayarak birer değişken olmasına neden olur. "Off" olarak ayarlanırsa bu gibi değerlere kendi tanımladığı şekilde ulaşılamaz.

Önerilen:

PLAIN TEXT
CODE:
register_globals = off
-------------------------

"allow_url_fopen" (Güvenlik)

"allow_url_fopen" default olarak "açık" şeklinde gelir ve bunun "on" açık olması "file_get_contents()", "include()", "require()" fonksiyonlar uzaktaki dosyaları da işlemesine olanak tanır. Bunlara verilen bilgiler hiçbir kontrolden geçirilmezse kritik güvenlik açıklarını sebep olur.

Önerilen:

PLAIN TEXT
CODE:
allow_url_fopen = off
-------------------------

"allow_url_include" (Güvenlik)

Bu değer kapalı yapıldığında "require" ve "include" ile uzaktan dosya çağırılması engellenmiş olur ve bu sayede büyük bir tehlikeden kurtulmuş olursunuz.

Önerilen:

PLAIN TEXT
CODE:
allow_url_include = off
-------------------------

"display_errors" (Güvenlik)

Bu seçenek sitenizin çalışmasında oluşacak bir hatayı tarayıcıya yansıtıp yansıtmayacağını belirler yani siteniz için diyelim bir forum veya portal kullanıyorsunuz ve bunların çalışması esnasında genelde "Fatal error: Call to undefined ******** get_header() in /home/vhosts/site.com/index.php on line 37" şeklinde benzeri hata görülür bunların gözükmesini engellemek için bu değeri kapalı duruma getirmek gerekir zira kötü niyetli kişiler sitenizin serverda bulunan tam yolunu öğrenmiş olurlar.

Önerilen:

PLAIN TEXT
CODE:
display_errors = Off
-------------------------

"cgi.force_redirect" (Güvenlik)

Bu değer normalde "on" olarak gelir ve Windows sunucularında IIS, OmniHTTPD gibi buralarda kapatılması gerekir. Kendi sunucunuz için bu durum yoksa değiştirmenize gerek yoktur.

Önerilen:

PLAIN TEXT
CODE:
cgi.force_redirect = on
-------------------------

"magic_quotes_gpc" (Güvenlik ve Performans)

Magic Quotes işlemi GET/POST yöntemiyle gelen Cookie datasını otomatikmen PHP ******'e kaçırır. Önerilen bu değerin kapalı olmasıdır.

Önerilen:

PLAIN TEXT
CODE:
magic_quotes_gpc = off
-------------------------

"magic_quotes_runtime" (Güvenlik ve Performans)

Magic quotes çalışma sürecinde data oluşturur, SQL'den exec()'den, vb.

Önerilen:

PLAIN TEXT
CODE:
magic_quotes_runtime = Off
-------------------------

"magic_quotes_sybase" (Güvenlik ve Performans)

Sybase-style magic quotes kullanır (Bunun yerine **** **** bununla ******** kaçırır)

Önerilen:

PLAIN TEXT
CODE:
magic_quotes_sybase = Off
-------------------------

"session.use_trans_sid" (Güvenlik)

Bu ayarı dikkatli ayarlayın, kullanıcı emaile aktif oturum ID'si içeren URL gönderebilir

Önerilen:

PLAIN TEXT
CODE:
session.use_trans_sid = off
-------------------------

"open_basedir" (Güvenlik)

Burada belirttiğiniz bir dizin haricindeki dosyaları veya klasörleri görmeleri olanaksızdır yani sitenizde sadece dosyalar dizininin görüntülenmesini istiyorsanız böyle yapılır

PLAIN TEXT
CODE:
/home/vhosts/site.com/public_html/dosyalar/
veya hem dosyalar hem de resimlerin bulunduğu yerin gözükmesi için de böyle

PLAIN TEXT
CODE:
/home/vhosts/site.com/public_html/resimler:/home/vhosts/site.com/public_html/dosyalar/
bunlar haricindeki yerlerin görünmesi imkansızdır.

Önerilen:

PLAIN TEXT
CODE:
open_basedir = /home/vhosts/site.com/public_html/resimler:/home/vhosts/site.com/public_html/dosyalar/
/resimler ve /dosyalar yazan yere görünmesini istediğiniz dizinleri belirtin.

-------------------------

"safe_mode_exec_dir" (Güvenlik)

Safe Mode açıkken bunu yaparsanız sadece belirttiğiniz dizinde işlem yapılmasına izin verirsiniz. Safe Mode kapalıyken burada belirttiğiniz dizinlerin dışında hiçbir dizinde işlem yapılamaz. "/home/vhosts/site.com/public_html/" yazan yere kendi dizininizi yazabilirsiniz. Böylece, diyelim "/etc" v.s dizininden herhangi birşey çalıştırmasına izin vermezsiniz.

Önerilen:

PLAIN TEXT
CODE:
safe_mode_exec_dir = "/home/vhosts/site.com/public_html/"
"Safe Mode" yani "Güvenli Mod" açıkken yapılması tavsiye edilmez. Çünkü "safe mode" burada belirttiğiniz dizinde etkisiz kalacaktır. Güvenli Mod'un açık olması o dizinde işe yaramayacaktır. Güvenlik için, "Safe Mod" yani "Güvenli Mod" "off" kapalıyken kullanılması daha uygundur.

-------------------------

"asp_tags" (Güvenlik)

ASP Style < % % > taglarına izin verilip verilmeyeceği belirlenir, kapalı duruma getirilmesi önerilir.

Önerilen:

PLAIN TEXT
CODE:
asp_tags = Off
-------------------------

"session.hash_********" (Güvenlik)

Oturumlar için Hash Fonksiyonu

0: MD5 (128 bits)
1: SHA-1 (160 bits)

Önerilen:

PLAIN TEXT
CODE:
session.hash_******** = 0
-------------------------

"session.hash_bits_per_character" (Güvenlik)

Hash çevirirken her karakterde kaç bit saklansın

4 bits: 0-9, a-f
5 bits: 0-9, a-v
6 bits: 0-9, a-z, A-Z, "-", ","

Önerilen:

PLAIN TEXT
CODE:
session.hash_bits_per_character = 5
-------------------------

"expose_php" (Güvenlik)

"expose_php" açık ise kapalı yapılması önerilir. Aksi takdirde PHP ile yaptığınız herşeyde sunucu tarafından PHP sürümü gibi bilgiler gösterilir. Hackerlar hatta Lamerlar bu bilgileri severler. Bunları engellemek için "off" konumuna getiriniz.

Önerilen:

PLAIN TEXT
CODE:
expose_php = Off
-------------------------

"html_errors" (Güvenlik)

Bu değerin açık olması durumunda PHP tıklanabilir hata mesajları üretecektir. Kapalı olması güvenlik için önerilir.

Önerilen:

PLAIN TEXT
CODE:
html_errors = off
-------------------------

"max_execution_time" (Güvenlik)

Scriptinizi maksimum uygulamayı yürütme zamanı mesela kullanıcı bir linke tıkladı ve bu linkin açılması belirtilen saniyeden fazla olursa sayfa sitenizin serverda bulunduğu tam yolu göstererek hata verir. Bu hataların gözükmesi güvenlik açısından sakıncalıdır. 300 saniye yazan yeri istediğiniz zaman ile değiştirebilirsiniz.

Önerilen:

PLAIN TEXT
CODE:
max_execution_time = 300
-------------------------

"max_input_time" (Güvenlik)

Scriptinizin aynı şekilde bir dataya ulaşmak için istek yolladığında maksimum geçen zaman

Önerilen:

PLAIN TEXT
CODE:
max_input_time = 300
-------------------------

"ServerSignature" (Güvenlik ve Performans)

"ServerSignature" sitenizde bulunmayan bir dosyanın bakılması durumunda bu sayfanın altında serverla ilgili bir bilgi yer alır ve bu da performansı düşürür ayrıca kötü niyetli kişiler serverla ilgili bir bilgi öğrenmiş olurlar.

Önerilen:

PLAIN TEXT
CODE:
ServerSignature = Off
-------------------------

"UseCanonicalName" (Performans)

Bu ayarın açık olması Apache self-referencing URL oluşturduğunda Server ismi ve porttan oluşan bir çözülmüş isim kullanır.

Önerilen:

PLAIN TEXT
CODE:
UseCanonicalName = Off
-------------------------

"HostnameLookups" (Performans)

"HostnameLookups" açık olması performansın düşmesine neden olur. IP numarası DNS sunucusundan bakılarak adres öğrenilir buda performansı düşürür.

Önerilen:

PLAIN TEXT
CODE:
HostnameLookups = Off
-------------------------

"ExtendedStatus" (Performans)

Serverın durumunu öğrenmek için server-status kullanılıyorsa Apache her an bu işlemcinin çağrılabileceğini beklediği için hazır bekler ve her an sistem saatini öğrenmesi gerekir bu da performansı düşürür.

Önerilen:

PLAIN TEXT
CODE:
ExtendedStatus = off
-------------------------

"register_long_arrays" (Güvenlik ve Performans)

Bu değerin "on" açık olması durumunda sisteminizde her ****** çalışmayacaktır install v.s yapmakta hatalarla karşılaşabilirsiniz ama iyi bir güvenlik ve performans için "off" duruma getirilir.

Önerilen:

PLAIN TEXT
CODE:
register_long_arrays = Off
-------------------------

"allow_call_time_pass_reference" (Performans)

Fonksiyonların çağrılma zamanında yaşanan uyumsuzluklarla ilgili uyarı verir.

Önerilen:

PLAIN TEXT
CODE:
allow_call_time_pass_reference = off
-------------------------

"enable_dl" (Güvenlik)

Bu değerin "off" kapalı olması gerekir aksi halde kişilerin sistemde php modüllerinde çalışma yapmasına olanak sağlar ve sistemde rahat dolaşmalarını sağlar güvenlik için kapalı olması gerekir.

Önerilen:

PLAIN TEXT
CODE:
enable_dl = off
-------------------------

"track_errors" (Güvenlik ve Performans)

Sürücülerde meydana gelen hatalarda yetki verildiği taktirde hata mesajı errormsg olarak değişkende gösterilir.

Önerilen:

PLAIN TEXT
CODE:
track_errors = Off
-------------------------

"file_uploads" (Güvenlik)

Açık olursa eğer sunucuda dosya yüklenmesine izin verilmiş olur ve bu da ciddi bir güvenlik açığına neden olur eğer kullandığınız ******den herhangi bir dosya yüklemeniz gerekmiyorsa mutlaka kapalı duruma getiriniz. Bu sayede sitenize herhangi bir shell, ****** inject edise bile kesinlikle dosya yüklenmesine izin vermez.

Önerilen:

PLAIN TEXT
CODE:
file_uploads = off
-------------------------

"ignore_repeated_errors" (Güvenlik ve Performans)

Açık olursa tekrarlanan hataları loglamaz.

Önerilen:

PLAIN TEXT
CODE:
ignore_repeated_errors = Off
-------------------------

"ignore_repeated_source" (Güvenlik ve Performans)

Tekrarlanan mesajlar engellendiğinde, mesaj kaynağını engeller Bu ayar açık yapıldığında hataları loglamayacaktır farklı dosyalardan ya da kaynaklardan tekrarlanan mesajlarla.

Önerilen:

PLAIN TEXT
CODE:
ignore_repeated_source = Off
-------------------------

"display_startup_errors" (Güvenlik ve Performans)

"display_errors" değeri "on" açık olsa bile, Php'nin çalışma sırasında meydana gelen hatalar gözükmeyecektir. Bu değerin şiddetle "off" kapalı duruma getirilmesi önerilir.

Önerilen:

PLAIN TEXT
CODE:
display_startup_errors = off
-------------------------

"safe_mode_gid" (Güvenlik)

UID - GID kontrollerini sadece UID ile yapmasına izin verir böylece aynı grupta dosyalar bulunsa bile göremezler yani serverda bulunan diğer clientların ******lerini v.s görmeleri engellenir.

Önerilen:

PLAIN TEXT
CODE:
safe_mode_gid = Off
-------------------------

"output_buffering = 4096" (Performans)

4 KB'lik bir tampon çıktısı ayarlar "output buffer"

Önerilen:

PLAIN TEXT
CODE:
output_buffering = 4096
-------------------------

"register_argc_argv" (Performans)

Kapalı olursa gereksiz ARGV ve ARGC kayıtlarını önler. PHP nin ARGV ve ARGC değişkenlerini bildirip bildirmemesini anlatır.

Önerilen:

PLAIN TEXT
CODE:
register_argc_argv = Off
-------------------------

"php_value session.use_trans_sid - php_value session.use_only_cookies"

Bu şekilde ayarlanması URL'deki PHPSESSID bilgilerini kaldırır.

Önerilen:

PLAIN TEXT
CODE:
php_value session.use_trans_sid = 0
php_value session.use_only_cookies = 1
-------------------------

"session.auto_start"

Oturum başlatmayı başlangıçta isteme

Önerilen:

PLAIN TEXT
CODE:
session.auto_start = 0
-------------------------

"session.cookie_lifetime"

Cookie'nin zaman ayarı

Önerilen:

PLAIN TEXT
CODE:
session.cookie_lifetime = 0
-------------------------

"memory_limit"

Scriptin tükettiği maksimum hafıza miktarı

Önerilen:

PLAIN TEXT
CODE:
memory_limit = 40M
-------------------------

"post_max_size"

PHP'nin kabul edeceği maksimum POST data boyutu

Önerilen:

PLAIN TEXT
CODE:
post_max_size = 256K
-------------------------

"upload_max_filesize"

Upload edilen dosyaların maksimum boyutu

Önerilen:

PLAIN TEXT
CODE:
upload_max_filesize = 256K
-------------------------

"upload_tmp_dir"

Temporary klasörü HTTP'den gelen dosyalar, ayarlanmazsa default klasörü kullanacaktır.

Önerilen:

PLAIN TEXT
CODE:
upload_tmp_dir = /path/to/
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
GET, POST, Çerez, Sunucu) bunların işlenmedeki sıralarını belirler.

Önerilen:

PLAIN TEXT
CODE:
variables_order = "EGPCS"
Üstte belirttiğim kodları "php.ini" dosyanıza alt alta ekleyebilirsiniz.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet sohbet
Cevapla

Etiketler
alın, ele, firewall, guvenligi, güvenliginizi, konuda, mail, site, spy, trojan, virüs, ye


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Virüs, trojan ve solucan... Deep Bilgisayar Donanımı 0 15 Mart 2012 16:25
Online virüs, trojan, spy tarama siteleri fatal Ağ, Network ve Networking 0 25 Aralık 2009 18:09
İstediğiniz E-Mail Adresine MSN Alın KiLL Güvenlik Açıkları 3 18 Aralık 2007 18:46
Bu Uyarıyı Dikkate Alın (Virüs) KiLL Haber Arşivi 0 14 Aralık 2007 20:07