Linux Sunucu Güçlendirme Kontrol Listesi

15 dakikalık okuma - 8 Mayıs 2026

hero section cover
İçindekiler
  • Linux Sunucu Güvenlik Kontrol Listesi
  • SSH'yi Kilitleyin
  • Güvenlik Duvarlarını ve Fail2Ban'ı Yapılandırın
  • Yamaları ve Otomatik Güncellemeleri
  • Dosya Sistemlerini ve İzinleri Güçlendirin
  • Zorunlu Erişim Denetimlerini Etkinleştirin
  • Denetim Günlüğü ve İzlemeyi Kurun
  • Sürekli Bakım
Paylaş

Bir Linux sunucusunu güçlendirmek için adım adım kontrol listesi. SSH, güvenlik duvarları, yama, dosya izinleri, SELinux/AppArmor ve denetim günlüğünü kapsar

Linux Sunucu Güvenlik Kontrol Listesi

Varsayılan bir Linux kurulumu, güvenli bir Linux kurulumu değildir. Açık kök SSH erişimi, zayıf güvenlik duvarları ve yamalanmamış yazılımlar gibi yanlış yapılandırmalar, güvenlik ihlallerinin çoğuna neden olmaktadır. Yeni sunucular, çevrimiçi olduktan birkaç dakika sonra otomatik taramalara maruz kalır, bu nedenle her şeyden önce güvenlik güçlendirme işlemi gerçekleştirilmelidir.

Bu kontrol listesi, SSH'yi kilitleme, güvenlik duvarlarını yapılandırma, yama uygulama, dosya izinlerini sıkılaştırma, zorunlu erişim denetimlerini etkinleştirme ve denetim günlüğü ayarlama gibi temel adımları kapsar.

SSH'yi Kilitleyin

SSH, birincil erişim noktanızdır ve saldırganların ilk olarak denediği şeydir. Varsayılan yapılandırma (parola kimlik doğrulama, root girişi, 22 numaralı bağlantı noktası), otomatik tarayıcıların tam olarak aradığı şeydir.

RSA'dan daha iyi güvenlik ve performans sunan bir Ed25519 anahtar çifti oluşturun:

ssh-keygen -t ed25519

Anahtar tabanlı oturum açma çalışmaya başladığında, güncelleme yapın /etc/ssh/sshd_config:

PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
AllowUsers yourname
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2

Varsayılan bağlantı noktasını 22'den daha az belirgin bir değere değiştirin. Bu, kararlı bir saldırganı durdurmayacaktır, ancak otomatik taramalardan gelen gürültüyü önemli ölçüde azaltır.

Mevcut oturumunuzu kapatmadan önce değişiklikleri her zaman ikinci bir terminalden test edin. sudo sshd -t komutunu çalıştırarak sözdizimi hatalarını kontrol edin, ardından systemctl reload sshd komutunu çalıştırarak aktif bağlantıları kesmeden uygulayın.

İki Faktörlü Kimlik Doğrulama Ekleyin

2FA, bir saldırganın hem SSH anahtarınıza hem de cihazınıza fiziksel erişime ihtiyaç duyması anlamına gelir. Google Authenticator PAM modülünü yükleyin:

sudo apt install libpam-google-authenticator   # Debian/Ubuntu
sudo dnf install google-authenticator           # RHEL/Fedora

Her kullanıcı için google-authenticator komutunu çalıştırın. Gizli anahtarı ve kurtarma kodlarını oluşturun. Kurtarma kodlarını çevrimdışı olarak saklayın.

Bu satırı /etc/pam.d/sshd:

auth required pam_google_authenticator.so

Ardından /etc/ssh/sshd_config:

KbdInteractiveAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactive

Test sırasında aktif bir oturum açık tutun. TOTP kodları doğru sistem saatine bağlıdır, bu nedenle NTP'nin çalıştığından emin olun.

Güvenlik Duvarlarını ve Fail2Ban'ı Yapılandırın

Sunucunuz bir ağ güvenlik duvarının arkasında olsa bile, ana bilgisayar tabanlı bir güvenlik duvarı çalıştırın. İlke basittir: varsayılan olarak tüm gelen trafiği reddedin, ardından yalnızca ihtiyacınız olan trafiğe izin verin.

Ubuntu/Debian (UFW) için:

ufw default deny incoming
ufw default allow outgoing
ufw limit ssh
ufw enable

RHEL/Rocky/AlmaLinux (Firewalld) için:

firewall-cmd --set-default-zone=public
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Aşağıdakileri /etc/sysctl.conf:

net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1

Fail2Ban'ı yükleyin

Fail2Ban, oturum açma girişimlerini izler ve tekrar eden başarısızlıkların ardından IP'leri engeller. Şunu oluşturun /etc/fail2ban/jail.local (dosyayı jail.conf , güncellemeler dosyayı üzerine yazacaktır) ve 10 dakika içinde üç başarısız denemeden sonra IP adreslerini bir saat süreyle engelleyecek şekilde yapılandırın. Güvenlik duvarınız için doğru arka ucu ayarlayın (banaction = ufw veya banaction = nftables).

Denetim Hizmetleri ve Eski Protokolleri Kaldır

Ne dinliyor kontrol edin ss -tlnp ve neyin çalıştığını systemctl list-units --type=service --state=running. İhtiyacınız olmayan her şeyi devre dışı bırakın: Bluetooth, CUPS, avahi-daemon, rpcbind.

Verileri düz metin olarak ileten eski protokolleri kaldırın:

Eski ProtokolBağlantı NoktalarıGüvenli Alternatif
Telnet23SSH
RSH / Rlogin512, 513, 514SSH
FTP21SFTP / FTPS
TFTP69SFTP / SCP
NISDeğişkenLDAP / Kerberos

Debian/Ubuntu'da: sudo apt-get --purge remove xinetd nis tftpd telnetd rsh-server. RHEL tabanlı sistemlerde: yum erase xinetd ypserv tftp-server telnet-server rsh-server. Kaldırma işlemini şu komutla doğrulayın ss -tulpn.

Yamaları ve Otomatik Güncellemeleri

Sisteminizi güncellemek, bilinen güvenlik açıklarını kapatmanın en hızlı yoludur. Kaynak sağlandıktan hemen sonra güncellemeleri çalıştırın:

apt update && apt upgrade -y      # Debian/Ubuntu
dnf update -y                      # RHEL/Rocky

Ardından güvenlik yamalarını otomatikleştirin. Debian/Ubuntu'da unattended-upgrades yükleyin ve yalnızca güvenlik yamalarını uygulayacak şekilde yapılandırın. RHEL/Rocky'de dnf-automatic yükleyin ve upgrade_type = security 'de /etc/dnf/automatic.conf.

Güncelleme sonuçları için e-posta bildirimleri ayarlayın. Üretim sunucularında otomatik yeniden başlatmayı devre dışı bırakın (Automatic-Reboot = false) yeniden başlatmaların planlı bakım aralıklarında gerçekleşmesini sağlayın. Yüksek çalışma süresi gerektiren ortamlar için Canonical Livepatch (Ubuntu) veya kpatch (RHEL) ile canlı yama uygulamasını değerlendirin.

Dosya Sistemlerini ve İzinleri Güçlendirin

Öncelikle SUID ve SGID ikili dosyalarını denetleyin. Bu dosyalar yükseltilmiş ayrıcalıklarla çalışır ve istismara açık başlıca hedeflerdir:

find / -xdev \( -perm -4000 -o -perm -2000 \) -type f -ls

Kritik dosyaların izinlerini sıkılaştırın: /etc/shadow şöyle olmalı 600, /etc/passwd şöyle olmalı 644, /etc/ssh/sshd_config şöyle olmalı 600. Genel bir umask olmalıdır 027 yeni dosyaların herkes tarafından okunabilir olmasını önlemek için /etc/profile yeni dosyaların herkes tarafından okunabilir olmasını önlemek için.

Herkes tarafından yazılabilir dosyaları find / -xdev -type f -perm -0002 -ls. Herkese yazılabilir kalması gereken dizinler için ( /tmp), yapışkan bit'i uygulayın: chmod 1777 /tmp.

Güvenli Bağlama Seçenekleri

Düzenle /etc/fstab 'i düzenleyin:

BölümBağlama SeçenekleriAmaç
/tmpnodev, nosuid, noexecHerkesin yazma erişimi olan bir alanda kötü amaçlı yazılımların çalıştırılmasını engeller
/var/tmpnodev, nosuid, noexec/tmp ile aynı korumalar
/dev/shmnodev, nosuid, noexecPaylaşılan belleği korur
/homenodev, nosuidSetuid ikili dosyalarını ve aygıt düğümlerini engeller
/var/lognodev, nosuid, noexecGünlük bütünlüğünü korur

Önyükleme sorunlarını önlemek için mount -o remount kullanarak değişiklikleri test edin.

Zorunlu Erişim Denetimlerini Etkinleştirin

SELinux ve AppArmor, işlemlerin yapabileceklerine çekirdek düzeyinde kısıtlamalar ekler. Dağıtımınızın birlikte sunduğu seçeneği kullanın: RHEL/CentOS/Fedora için SELinux, Ubuntu/Debian/SUSE için AppArmor. Bunlar arasında geçiş yapmak uyumluluk sorunlarına neden olur.

SELinux: Durumu getenforce. Hiçbir şeyi bozmadan iş yükü davranışını yakalamak için en az iki hafta boyunca izin veren modda (setenforce 0) ile en az iki hafta boyunca çalışın, böylece hiçbir şeyi bozmadan iş yükünün davranışını gözlemleyin. İhlalleri ausearch -m avc -ts recentile izleyin. Engellemeleri teşhis etmek için audit2why kullanarak engellemeleri teşhis edin ve audit2allow -M [module_name] kullanarak politika modülleri oluşturun. Günlükler temizlendiğinde, setenforce 1, ardından bunu /etc/selinux/config.

AppArmor'da kalıcı hale getirin: aa-status. Yönetim komutları için apparmor-utils yükleyin. aa-complain, kendinize güvenince aa-enforce . aa-genprof kullanarak özel uygulamalar için profiller oluşturun.

Denetim Günlüğü ve İzlemeyi Kurun

Günlük kaydı olmadan, olaylar iz bırakmaz. Yükleyin auditd:

sudo apt-get install auditd audispd-plugins

Kritik dosyalar için dosya sistemi izlemeleri ekleyin:

-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity

Tüm kök düzey komut yürütmelerini izleyin:

-a always,exit -F arch=b64 -S execve -F euid=0 -k root_commands

Kuralları augenrules --load ve -e 2 kural dosyanızın sonuna ekleyin, böylece yapılandırma kurcalanamaz hale gelir (değişiklikler için yeniden başlatma gerekir).

AIDE ile Dosya Bütünlüğü İzleme

AIDE, mevcut durumu bilinen iyi bir temel değerle karşılaştırarak yetkisiz dosya değişikliklerini algılar. Programı kurun, veritabanını aideinitile veritabanını başlatın ve ortaya çıkan dosyayı /var/lib/aide/aide.db.gz. Günlük bir cron işi ayarlayarak aide --check ve sonuçları yöneticilere e-posta ile gönderin.

Günlükleri Merkezileştirin

Kök erişimi olan bir saldırgan günlükleri silerse yerel günlükler işe yaramaz hale gelir. TLS şifrelemeli rsyslog kullanarak günlükleri gerçek zamanlı olarak uzak bir sunucuya iletin. Şuraya ekleyin /etc/rsyslog.conf:

*.* @@remote-host:514

Set LogLevel VERBOSE SSH yapılandırmanıza ekleyin, böylece günlükler her başarılı oturum açma işlemi için anahtar parmak izlerini içerir. Birden fazla sunucuyu yöneten üretim ortamları için, Wazuh veya OSSEC gibi araçlar, merkezi günlük analizi ile ana bilgisayar tabanlı saldırı tespitini sağlar.

Sürekli Bakım

Güvenlik güçlendirme tek seferlik bir görev değildir. Yapılandırmalar değişir, yeni güvenlik açıkları ortaya çıkar ve personel değişiklikleri nedeniyle kullanılmayan hesaplar kalır.

Haftalık: Fail2Ban günlüklerini inceleyin, başarısız güncellemeleri kontrol edin, yedeklemeleri doğrulayın.

Aylık: Kullanıcı hesaplarını ve izinlerini denetleyin, çalışan hizmetleri inceleyin, Lynis veya OpenSCAP ile tam bir tarama yapın.

Üç Aylık: Kimlik bilgilerini değiştirin, güvenlik duvarı kurallarını güncelleyin, felaket kurtarmayı test edin.

Dev-sec.io güçlendirme rolleriyle Ansible gibi altyapı-kod araçlarını kullanarak, filonuz genelinde tutarlı yapılandırmalar uygulayın ve denetimler arasında sapmaları önleyin.

FDC'nin özel sunucuları, size tam kök erişimi ve güvenlik yığınınız üzerinde tam kontrol sağlar. Her katmanı kontrol edebileceğiniz bir platform oluşturmak için özel sunucu seçeneklerini keşfedin.

background image
Sunucunuz büyümenizi engelliyor mu?

Yavaş dağıtımlardan veya bant genişliği sınırlarından bıktınız mı? FDC Sunucuları anında tahsis edilmiş güç, küresel erişim ve her ölçek için oluşturulmuş esnek planlar sunar.

Şimdi yükseltin

Blog

Bu hafta öne çıkanlar

Daha fazla makale
Güçlü ve ölçülmemiş bir VPS'ye sahip olmak neden önemlidir?

Güçlü ve ölçülmemiş bir VPS'ye sahip olmak neden önemlidir?

Ölçülmemiş bir VPS, sabit bir bağlantı noktası hızında sabit oranlı bant genişliği sağlar. Ölçülü planlardan farkı nedir, ne zaman işe yarar ve satın almadan önce neleri kontrol etmelisiniz.

7 dakikalık okuma - 9 Mayıs 2025

Linux Bellek Yönetimi: Swap, OOM Killer & Cgroups

12 dakikalık okuma - 31 Mayıs 2026

Daha fazla makale
background image

Sorularınız mı var veya özel bir çözüme mi ihtiyacınız var?

icon

Esnek seçenekler

icon

Küresel erişim

icon

Anında dağıtım

icon

Esnek seçenekler

icon

Küresel erişim

icon

Anında dağıtım