Would you like to react to this message? Create an account in a few clicks or log in to continue.


web
 
AnasayfaGaleriLatest imagesKayıt OlGiriş yap
Geniş Mysql Güvenliği Ybanner Geniş Mysql Güvenliği 2cznnm
 

 

 Geniş Mysql Güvenliği

Aşağa gitmek 
YazarMesaj
Holyone
Yönetici
Yönetici
Holyone


Mesaj Sayısı Mesaj Sayısı : 3850
Paylaşım Gücü Paylaşım Gücü : 9917
Rep Point Rep Point : 106
Kayıt tarihi Kayıt tarihi : 25/02/09
Yaş Yaş : 31

Geniş Mysql Güvenliği Empty
MesajKonu: Geniş Mysql Güvenliği   Geniş Mysql Güvenliği EmptyÇarş. Tem. 29, 2009 1:54 pm

MySQL Internet üzerindeki en popülerveritabanlarından biridir ve sıklıkla PHP ile birlikte kullanılır.Yüksek performansına oranla kolay kullanımı gibi bir çok avantajı biryana, MySQL basit fakat çok etkili bir güvenlik mekanizmasısunmaktadır.

MySQL Internet üzerindeki en popüler veritabanlarından biridir vesıklıkla PHP ile birlikte kullanılır. Yüksek performansına oranla kolaykullanımı gibi bir çok avantajı bir yana, MySQL basit fakat çok etkilibir güvenlik mekanizması sunmaktadır. Ne yazık ki, MySql'in defaultkurulumu, şifresiz root yetkisi sağlaması ve hafıza taşması ataklarıiçin potansiyel güvelik açıkları bulundurması bu veritabanınısaldırılar için kolay hedef haline getirmektedir. Bu makale, lokal veuzak saldırılara karşı MySql'in nasıl güvenli hale getirilebileceğinintemel adımların tarif etmektedir.

Fonksiyonellik

Makalemizde bir önceki Apache ile ilgili makalemizde belirtilenlereuygun olarak üzerinde PHP kurulmuş Apache sunucumuz olduğunuvarsayacağız ve bu da /chroot/httpd dizininde bulunacak.
Yukarıdakilerden farklı olarak, aşağıda belirtilenlerinvarolduğunu kabul edeceğiz: MySQL veritabanı sadece PHP uygulamalarıiçin kullanılacak, aynı host üzerinde kurulu olacak;
Mysqladmin, mysql, mysqldump gibi default yönetim araçları veritabanı yönetimi için kullanılacaktır;
Uzaktan veri yedeklemesi SSH protokolü kullanılarak gerçekleşecektir.

Güvenlik Gereklilikleri

Yüksek güvenlik seviyesi sağlamak için, MYSQL'in kurulumu vekonfigürasyonu, aşağıda belirtilen güvenlik gerekliliklerigerçekleştirilmelidir:
MySQL veritabanı chroot edilmiş ortamda uygulanacaktır;
MySQL işlemleri tek bir UID/GID altında çalışacak ve bu başka bir sistem işlemi için kullanılmayacaktır;

MYSQL'e sadece lokal erişime izin verilecektir;
MySQL root hesabı tahmini zor bir şifre ile korunacaktır;
Yönetici hesabı ismi değiştirilecektir;
Veritabanına Anonim erişim ( Nobody hesabı ile) engellenecektir;
Tüm örnek veritabanları ve tablolar silinecektir.

MySQL Kurulumu

MySQL güvenliğine başlamadan önce, sunucu üzerine yazılımıyüklemeliyiz. Daha önceki makalelerde olduğu gibi, kuruluma, işletimsistemi üzerinde MySQL veritabanı için kullanılacak tek ve düzgün grupve kullanıcı hesabı yaratmakla başlayacağız:
pw groupadd mysql
pw useradd mysql -c "MySQL Server" -d /dev/null -g mysql -s /sbin/nologin


MySQL'i Derlemek

MYSQL yazılımını /usr/local/mysql dizini içinde derleyip kuracağız:
configure --prefix=/usr/local/mysql --with-mysqld-user=mysql--with-unix-socket-path=/tmp/mysql.sock--with-mysqld-ldflags=-all-static
make
su
make install
strip /usr/local/mysql/libexec/mysqld
scripts/mysql_install_db
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql

Genellikle, sunucu üzerinde kuurlum işlemleri daima MySQLmanuelinde tarif edildiği gibidir.Tek değişiklik ise ./configuresatırında belirtilmiş birkaç ilgili parametrenin kullanımıdır. Enönemli farklılık ise MySQL'in statik linklenmesine etki eden--with-mysqld-ldflags=-all-static parametresinin kullanımıdır. Bu, 3.bölümde de tarif edildiği gibi, önemli bir değerde sunucu chrootayarlama işlemlerini basite indirger. Diğer parametreleri de dikkatealırsak, bunlar da programa /usr/local/mysql dizinine yazılımıyüklemesi emrini verir, mysql account yetkisinde MySQL Daemon'uçalıştırır ve /tmp dizininde mysql.sock socket'i oluşturur.

Konfigürasyon Dosyasının Kopyalanması

Yukarıdaki komutlar uygulandıktan sonra, veritabanının muhtemelboyutuna göre (küçük, orta, büyük, çok büyük) default konfigürasyondosyasını kopyalamalıyız. Örneğin:

cp support-files/my-medium.cnf /etc/my.cnf
chown root:sys /etc/my.cnf
chmod 644 /etc/my.cnf

Sunucunun Çalıştırılması

Bu noktada MySQL tamamı ile yüklenmiş ve çalışmaya hazırdır.Aşağıdaki komutu kullanarak MySQL'i çalıştırabiliriz:

/usr/local/mysql/bin/mysqld_safe &

Bağlantı Testi

Aşağıdaki şekilde veritabanı ile bağlantı kurmaya çalışın:
/usr/local/mysql/bin/mysql -u root mysql

Welcome to MySQL Monitor. Commands end with ; or \g. Your MySQLconnection id is 2 to server version: 4.0.13-log Type 'help;' or '\h'for help. Type '\c' to clear the buffer.

mysql> show databases;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 rows in set (0.00 sec)

mysql> quit;

Birkez bağlantı başarılı olarak sağlandığında, veritabanını kapatabiliriz:
/usr/local/mysql/bin/mysqladmin -u root shutdown

ve yazılımın güvenliğine başlayabiliriz. Aksi halde, the/usr/local/mysql/var/`hostname`.err log dosyasını analiz etmeli ve bazısorunları elimine etmeliyiz.

Sunucu Chroot Ayarları

MySQL güvenliğindeki ilk adım, MySQL sunucunun çalışacağı chrootedilmiş bir alan hazırlanmasıdır. Chroot tekniği "' Adım adım ApacheGüvenliği"' makalemizde ayrıntılı olarak tarif edilmişti, bu sebepleeğer bu teknik hakkında bilginiz yoksa ya da neden gerekli olduğunuöğrenmek istiyorsanız, bahse konu makaleyi okumanızı tavsiye ederim.
Sayfa başına dön Aşağa gitmek
http://www.webs-team.tr.gg
 
Geniş Mysql Güvenliği
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Kedi Ve Köpek Ev Güvenliği
» Neden MySql
» Dünyanın En Geniş Styles Arşivi
» Html Nedir ? Geniş Anlatım
» MySql Nedir ?

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
 :: Arşivlenmiş Ve Silinmiş :: Arşivlenmiş Konular-
Buraya geçin: