| Üye olun RSS

MySQL Veritabanı Güvenliği

Mart 28th, 2007 | No Comments | Posted in açık kaynak, database, güvenlik, mysql

MySQL Veritabanınızda bilgileriniz güvende mi?

Bilgisayarınıza kurduğunuz veya internette host ettirdiğiniz bazı uygulamalar ücretsiz MySQL veritabanını kullanırlar. MySQL veritabanı belli bir porttan sunucu olarak izmet verdiği için internetten ulaşıma da imkan sağlamaktadır.

Belki de oldukça kritik olan bilgilerinizin tutulduğu bu veritabanında güvenliği nasıl sağlayacaksınız? Bunun için bir kaç küçük ama önemli bilgi işe yarayacaktır.

  • Eğer birden fazla uygulama/veritabanınız varsa öncelikle her veritabanı için bir veritabanı kullanıcısı oluşturun.
  • Her kullanıcıya sadece ilgili veritabanına erişim hakkı verin.
  • Uygulamanız ve veritabanınız aynı makina üzerinde ise localhost dışında veritabanı erişimini kaldırın.
  • Uygulamanız ve veritabanınız farklı makinalar üzerinde ise sadece uygulamının bulunduğu makinadan (ip adresinden) erişime izin verin.
  • Root kullanıcısını silin ya da root şifresini hiç bir uygulamada kullanmayın, sadece siz bilin.
  • Anonim erişimi muhakkak kaldırın.
  • Düzenli backup alın.

Bu işlemleri yapabilecek bir grafik arayüz programına sahip değilseniz, komut satırından da yapabilirsiniz:


Bir MySQL database’indeki kullanıcıların listesini almak:
mysql> use mysql;Database changedmysql> select user,host from user;

+-------------+-----------+| user        | host      |+-------------+-----------+| defaultuser | %         || root        | localhost |+-------------+-----------+2 rows in set (0.00 sec)mysql>

Bir MySQL database’ine kullanıcı eklemek:
shell> mysql -u root --password=sifremysql> create user kullanici@localhost;

Bir MySQL database’inden kullanıcı silmek:
shell> mysql -u root --password=sifremysql> drop user kullanici@localhost;

Bir MySQL database kullanıcısının şifresini degistirmek:
shell> mysql -u root --password=sifremysql> SET PASSWORD FOR 'kullanici'@'localhost' = PASSWORD('yenisifre');

veya

mysql> SET PASSWORD FOR 'kullanici'@'host_name' = PASSWORD('yenisifre');

Bir MySQL database’e anonim (kullanıcısız ve şifresiz) erişimi kaldırmak:
shell> mysql -u root --password=sifremysql> DELETE FROM mysql.user WHERE User = '';mysql> FLUSH PRIVILEGES;

Bir MySQL database’ine root (tam yetkili) erişimi kaldırmak (tavsiye edilmez, enazından root@localhost’u silmeyin):
shell> mysql -u root --password=sifremysql> DELETE FROM mysql.user WHERE User = 'root';mysql> FLUSH PRIVILEGES;

Bir kullanıcıya bir MySQL database’ini sadece lokalden kullanma yetkisi vermek:

shell> mysql -u root --password=sifremysql> GRANT ALL PRIVILEGES ON veritabaniadi.* TO 'kullanici'@'localhost' WITH GRANT OPTION;

Bir MySQL database kullanıcısına tüm uzak makınalardan bağlanma hakkı vermek:
shell> mysql -u root --password=sifremysql> create user 'kullanici'@'%';mysql> GRANT ALL PRIVILEGES ON veritabaniadi.* TO 'kullanici'@'%' WITH GRANT OPTION;

Bir MySQL database kullanıcısına belli bir ip’den bağlanma hakkı vermek:
shell> mysql -u root --password=sifremysql> create user kullanici@81.181.34.34;mysql> GRANT ALL PRIVILEGES ON veritabaniadi.* TO 'kullanici'@'81.181.34.34' WITH GRANT OPTION;

Bir MySQL database kullanıcısına sadece lokalden bağlanma hakkı vermek (makina dışından bağlantıyı kapatmak):
shell> mysql -u root --password=sifremysql> DELETE FROM mysql.user WHERE User = 'kullanici';mysql> GRANT ALL PRIVILEGES ON *.* TO 'kullanici'@'localhost' identified by sifre WITH GRANT OPTION;

Bir MySQL database’inin yedeğini almak:
shell>mysqldump -u kullanici --password=sifre  --all-databases > backup.sql

Cepten Telnet/SSH Bağlantısı

Haziran 1st, 2006 | No Comments | Posted in Mobile, cep, güvenlik, java, network

Telnet veya SSH Client kullananlar için, bir mobil alternatif olan MidpSSH programını burada paylaşmak istedim. Yani cep telefonunda çalışan bir Telnet/SSH Client programından bahsediyorum. Daha önce SSH Tüneli ile ilgili yazımda bu programdan birazcık bahsetmiştim, faydalı cep telefonu uygulamalarından biri olduğu için kendisini ayrı bir başlık yapmaya karar verdim.

MidpSSH isimindeki bu uygulama “bir Telnet/SSH Client’ıdır” ve başka yazacak birşey gelmiyor aklıma, sunucu konsolundan yapabildiğiniz herşeyi, cep telefonunuzdan yani dünyanın her hangi bir yerinden yapabilmek, programın faydasını yeterince tarif ediyor sanırım.

Özelliklerinden bahsetmek gerekirse:

  • Telnet, SSH1 Ve SSH2 desteğine sahip.
  • “Sessions” bölümünde bir çok sunucu ve login bilgisini önceden tanıplayıp daha sonra istediğiniz bir sunucu tanımını seçip otomatik bağlantı sağlayabiliyorsunuz.
  • “Macro” bölümünde standart çalıştırdığınız script veya komutlar varsa önceden bunları tanımlayıp belirlediğiniz başlıklar altında kategorize edebiliyorsunuz.
  • “Settings” bölümünde görünüm ile ilgili bir takım ayarlar yapabiliyorsunuz.


Programın kendisini ve kaynak kodlarını şuradan temin edebilirsiniz:
http://www.xk72.com/midpssh/download.php

Prgram GPL lisansı ile yayınlanıyor.

Putty ile SSH Tüneli

Ocak 30th, 2006 | 1 Comment | Posted in Internet, güvenlik, network

Putty ile SSH tüneli oluşturmanın yöntemi biraz daha kolay. Putty’i çalıştığında ekrana gelen sol taraftaki Category böümünden Connection -> SSH -> Tunnels seçilir.

Sağ taraftaki bölümde:
Source Port= 3307
Destination = localhost:3306
yazarak Add düğmesine basılır.

Tekrar Category’de Session bölümüne gelip Save tuşuna basmayı unutmayın :) Bu ayarla kendi makinanızın 3307 portunu Session bölümünde belirttiğiniz Host makinanın 3306 portuna(ki bu port firewall ile korunuyor olsa bile) yönlendirmiş oldunuz.
Buradaki örnekte local port ile server port farklı verildi ancak siz aynı da verebilirsiniz. Sadece local portunuzu seçerken başka bir uygulama tarafından bu portun kullanılmadığından emin olun.