GüvenlikSunucu

Sunucu güvenliği nasıl sağlanır ?

Sunucu güvenliği nasıl sağlanır ? Saldırganlar (hackerlardan) nasıl korunur ?

Sunucu güvenliği hakkında tüm bilgiler haberimizde

Sunucu yönetimi konusunda pek bilginiz yoksa her türlü saldırıya karşı açık durumda olabilirsiniz. Eğer sistemi bilmiyorsanız bu sistemi ne yönetebilir nede koruyabilirsiniz. Web sitelerinizi birbirinden izole etmek ve korumak için çeşitli senaryolar vardır.

  1. Apache güvenliği

  2. PHP güvenliği

  3. Port güvenliği

  4. Şifre güvenliği

  5. Mysql güvenliği

  6. Panel seçimi

 

  1. Apache güvenliği

Apache güvenliği çok esnek bir sistemdir. Apache sunucusu bozulması durumunda siteler açılmaz ve bağlantı sağlanmaz. Apache HTTP Sunucusu iyi bir güvenlik sicilinin yanında güvenlik konularıyla oldukça ilgili bir geliştirici topluluğuna sahiptir. Fakat, bir yazılımın dağıtılmasının ardından küçük ya da büyük bazı sorunların keşfedilmesi kaçınılmazdır. Bu sebeple, yazılım güncellemelerinden haberdar olmak oldukça önem kazanır. HTTP sunucunuzu doğrudan Apache’den temin ediyorsanız yeni sürümler ve güvenlik güncellemeleri ile ilgili bilgileri tam zamanında alabilmek için Apache HTTP Sunucusu Duyuru listesine mutlaka üye olmanızı öneririz. Apache yazılımının üçüncü parti dağıtımlarını yapanların da buna benzer hizmetleri vardır.

Detaylı apache güvenliği için iletişim adresinden bizlere ulaşabilir ve optimizasyon konusundan destek alabilirsiniz.

2. PHP Güvenliği (disable_functions)

disable_functions kısmı sitelerin güvenliği için önemli bir mekanizmada rol oynar. disable_functions kısmına ne kadar çok kod eklerseniz güvenliği o kadar iyi hale getirebilirsiniz fakat bazı yazılımlarınız çalışmayabilir bu konuda kodları iyi seçmek lazım. Ben size uzun zamandır kullandığım kodları ileteceğim.

ln –s, ln, ln -b, exec, dl, passthru, shell_exec, system, eval, popen, fsockopen, proc_open, proc_get_status, proc_nice, proc_terminate, show_source, stream_socket_server, symlink, link, lchgrp, lchown, chown, chgrp, posix_initgroups, posix_kill, posix_mkfifo, posix_mknod, and posix_setegid, posix_seteuid, posix_setgid, posix_setpgid, posix_setsid, posix_setuid, phpmail, chmod

Eğer sitelerde problem olursa error_log dosyanızı kontrol ederek kodlarda oynama yapabilirsiniz.

3. Port güvenliği

Sunucuda kullanmadığınız portları ve sadece kendi sitelerinizi barınıyorsa ftp ssh ile işiniz yok ise bu portları sadece belirli ip adreslerine izin vermelisiniz. Ek olarak 3. parti yazılımları kurarak portlarınızı brute force saldırılarına karşı güvende tutabilirsiniz.

4. Şifre güvenliği

Şifreler en basit yoldan hacklenme yöntemidir. Bazı sunucu sağlayıcıları genelde default şifre verirler bazı kendini akıllı sanan arkadaşlarımızda bu şifreleri ip adreslerini tek tek deneyerek şifreleri bulurlar ve sonuç kaçınılmaz olur siz firmanızdan aldığınız sunucuların şifrelerini hemen değiştirebilirsiniz ek olarak her zaman kullandığınız şifreleri sunucularda kullanmamanızı öneririz.

5- Mysql güvenliği

1 – Uzak Bağlantı yerine SSH Tunneling Yapmak

MySQL servisi default olarak 3306 portunda çalışmaktadır. Default kurulumda bu port tüm bağlantılar için dinleme moduna alınmaktadır. Bu durumda ilgili mysql port’u dış dünyaya da açılmış olmaktadır.

Aşağıdaki komutlardan ilki /etc/my.cnf dosyasında [mysqld] alanı altına yapılacak bir tanımlamadır. Bu tanımlama ile MySQL servisi sadece yerel adres üzerinde dinleme moduna geçecektir. Nmap ile yapacağınız bir tarama ile yeni konfigürasyonun durumunu kontrol edebilirsiniz.

Eğer mevcut yapı üzerinde dış bağlantıları kapatmak mümkün değilse, MySQL kullanıcılarının Remote Host ayarları tanımlanmalıdır. Örneğin sadece  1.2.3.4 ip adresinden bağlantı gerçekleştirecek bir kullanıcı için aşağıdaki tanımlama gerçekleştirilebilir.

2 – Yerel Dosya Erişimi Engeli

MySQL yerel dosya sistemi ile iletişim kurabilme özelliğine sahiptir. Sorgular üzerinde yerel dosya sisteminde bulunan bir metnin içeriği alınabilir veya sorgu sonucu diske yazılabilir. Bu özelliği bilen ve saldırılar kullanan hacker’ların önüne geçebilmek için MySQL’in yerel dosya sistemi ile iletişim kurabilmesini engellemek gerekmektedir.

Yukarıdaki örnekte görüldüğü üzere yerel dosyalara erişim yapabilmekte mümkündür. Yerel dosya sistemine erişimin kapatılması için /etc/my.cnf dosyasında ki [mysqld] kısmı altına aşağıdaki değişken tanımlaması yapılmalıdır.

set-variable=local-infile=0

 

Log ve History Dosyaları

Herhangi bir durumda analiz yapabilmek için MySQL loglarının tutuluyor olması gereklidir.

MySQL logları hangi dosyaya yazacağı yukarıda ki şekilde tanımlanabilir.

Bir diğer önemli nokta ise ~/.mysql_history dosyası.

Linux kullanıcıları komut satırındna MySQL sunucularına bağlanıp komut çalıştırdıklarında, bu sorgular history dosyasına yazılır. Bu dosyanın temizlenmesi gerekmektedir.

Tags

Kaan GİRGİN

Ben Kaan GİRGİN, 1996 Balıkesir doğumluyum 2013 yılından beri kendimi sanal Dünyada geliştiriyorum. Sürekli olarak yeni bilgiler edinip deneyimlerimi bu site üzerinden sizler ile paylaşıyorum.

İlgili Makaleler

Kimler Neler Demiş?

avatar
  Subscribe  
Bildir

Bu yazımızada bakın

Kapat
Kapat