Linux Sunucu Sıkılaştırması

Linux sunucunuzun güvenliğini sağlamak, verilerinizi, fikri mülkiyetinizi, itibarınızı, zamanınızı ve bir çok sebepten dolayı bilgisayar korsanlarından korumak için önemlidir. Linux sunucusunun güvenliğinden sistem yöneticisi yani bizler sorumluyuz. Linux sıkılaştırma için bir çok yöntem ve uygulama mevcuttur. Biz bu kılavuzda, sunucu içinde alabileceğimiz önlemlere bakacağız. Bunun dışında sunucu dış dünyaya açıksa veya sanallaştırma vb. uygulamalar içinde kullanılıyor ise onlara özelde güvenlik sıkılaştırılmaları yapmanız gerekmektedir. Lafı fazla uzatmadan neler yapabileceğimize bakalım.

Sistem sıkılaştırılması nasıl gerçekleştirilir?

  • Kurulum esnasında güvenlik
  • Yapılandırma dosyaları yedekleri
  • Yama yönetimi
  • Kayıt/İz takibi mekanizması
  • Dosya/Dizin izinleri
  • Gereksiz servislerin kapatılması
  • Güvenli servislerin kullanımı
  • Sistem yönetim hesapları
  • Erişim kontrolü
  • Çekirdek parametreleri

Makaleye başlamadan önce ilk olarak güvenlik gereksinimleri ve  güvenlik politikası belirlemek doğru olacaktır.

  • Hassas ya da gizli bilgiyi nasıl sınıflandırırsınız?
  • Sisteminiz hassas ya da gizli bilgi içeriyor mu?
  • Tam olarak kime karşı korunmak istiyorsunuz?
  • Sisteme uzaktan bağlanma ihtiyacı var mı?
  • Şifrelerle ya da kriptolamayla yeterli güvenlik sağlanıyor mu?
  • İnternet erişimine ihtiyaç var mı?
  • İnternetten sisteminize erişim ne kadar sınırlandırılmalı?
  • Sisteminizin güvenliğindeki bir açıklığa karşı neler yapılabilir?

Fiziksel Sunucu Güvenliği

  • Klavye ve harddisk gibi harici cihazların takıldığı yerlerin kilitlenebildiği kasalar kullanılmalıdır.
  • BIOS ve grup önyükleyici parolasını ayarlayın.
  • BIOS üzerinden, DVD'ler / USB  gibi harici cihazlardan önyüklemeyi devre dışı bırakın.

 

PAM

  • libpam-pwqyality kullanılması

pam_cracklib.so ile parola oluşturma gereksinimlerinin belirlenmesi

/etc/pam.d/system-auth

passwordrequisitepam_cracklib.so try_first_passretry=3 minlen=8 lcredit=1 ucredit=1 dcredit=1 ocredit=1

 

Hatalı giriş denemeleri için kilitleme

/etc/pam.d/password-authve /etc/pam.d/system-authdosyalarında;

authrequiredpam_faillock.so preauthauditsilentdeny=5 unlock_time=900

auth[default=die] pam_faillock.so authfailauditdeny=5 unlock_time=900

authsufficientpam_faillock.so authsuccauditdeny=5 unlock_time=900

auth[success=1 default=bad] pam_unix.so

 

 

DDOS

  • fork bomb (system crash)

 

Sahiplik ve İzinler 

suid, guid ve Sticky Biti izinleri

 

Alias

All Users  = /etc/bash.bashrc

  • sh vb. kabuk geçişlerinin engellenmesi
  • history -c engellenmesi
  • sudo rm -rf / engellenmesi
  • dd if=/dev/zero of=/dev/null vb..

 

Shell

  • Yeni kullanıcı eğer shell belirtilmez ise varsayılan olarak sh üzerinde oturum açmış olacaktır. Varsayılan olarak bash seçilmesi.
  • Bash history merkezi olarak toplanılması
  • Shell değişiminin engellenmesi ve sadece bir shell kullanıması “bash”

Sudoers Dosyası

  • linux shell escape korunması
  • Komut Satırından Kritik Komutların Engellenmesi / systemctl halt- reboot-shutdown-restart

 

Sistem Genel

  • İşletim sistemi ve uygulamaların güncel olması
  • Kullanıcının çalıştırabileceğiniz mevcut maksimum işlemlerinin sınırlandırılması. “ulimit”
  • umask değerinin 077 ayarlanması  | /etc/login.defs aksi halde home dizinindeki kullanıcılar birbirine erişebilir
  • suid guid stick bit tanımlamaları
  • Terminalin Engellenmesi
  • Kullanılmayan Paketlerin Kaldırılması. (make, gcc, python vb.)

OpenSSH Güvenliği

  • SSH Timeout süresi ayarlanması.
  • SSH varsayılan port değiştirilmesi.
  • RootLogin kapatılması.
  • Allowusers tanımlanması
  • Whitelist ip belirlenmesi
  • PAM açılması

Paket Veritabanı

Sistemde kurulu paketler ve bu paketlerin sürümleri ile ilgili bilgiler kesinlikle son kullanıcıya gösterilmemelidir. Sürüm bilgisi alınan bir yazılım için açıklık taramak son derece kolaydır.

Sıkılaştırmak için

#chownrpm:rpm/var/lib/rpm

#chmod750 /var/lib/rpm

#chownrpm:rpm/var/lib/rpm/*

#chmod700 /var/lib/rpm/*

Dosya Sistemi Sıkılaştırma

nodev, noexec, nosuid seçeneklerini düzenleyin

mount-o remount,nodev,nosuid,noexec/tmp/dev/shm{/ayrılabilir ortamlar}

#mount-o remount,nodev/home

 

/var/tmp dizinini /tmp’ye bağlayın.

mount--bind/tmp/var/tmp

 

Kullanılmayan dosya sistemlerini etkisizleştirin.

freevxfs, jffs2, hfs, hfsplus, squashfs, udf

/etc/modprobe.d/harden.conf

install freevxfs /bin/true…

 

Bu dosyalar sisteme istenmeyen şahıslar tarafından kurulan programlar olabilir.

#find / -nouser -o -nogroup -print

Sunucu Paketi

Bir sunumcu tek amaca yönelik servis vermelidir. Aşağıdaki örnekler gibi;

  • Bilgi hizmetleri: WWW, FTP
  • Dosya ve yazıcı paylaşım hizmetleri: NFS, Samba
  • DNS hizmetleri
  • E-mail hizmetleri

 

 

E Posta Sunucu Güvenliği

 

Web Sunucu Güvenliği

DNS Güvenliği

 

Uygulama İle Denetim

https://github.com/CISOfy/lynis

 

App Hide

Kullanılan uygulama versiyonlarının gizlenmesi. Wappalyzer gibi.

 

 

 

Blog'a Dön