Buyukweb
CIS Benchmark ile Linux Sunucu Sertleştirme: Adım Adım Uygulama Rehberi (2026)

CIS Benchmark ile Linux Sunucu Sertleştirme: Adım Adım Uygulama Rehberi (2026)

CIS Benchmark Level 1 ve Level 2 kontrollerini Linux VDS sunucusuna uygulamak için pratik rehber. OpenSCAP, sysctl, SSH, auditd, pam_pwquality ve otomatik güncelleme adımları.

Büyükweb Editör EkibiHosting, Sunucu ve Sistem Yönetimi Editörü12 dakika okuma

CIS Benchmark ile Linux Sunucu Sertleştirme: Adım Adım Uygulama Rehberi (2026)

Yeni VDS'i kurdun, root şifresi koydun, SSH açtın — bitti mi? Hayır, daha başlamadın. Taze kurulum halindeki bir Linux sunucu, varsayılan ayarlarıyla onlarca gereksiz servisi açık bırakır, güvensiz sysctl parametreleriyle gelir ve audit kaydı tutmaz. İlk botnet taraması dakikalar içinde 22. portu bulur. Bu rehberde CIS Benchmark çerçevesinde sunucunu sertleştiriyoruz; sadece teori değil, terminale yapıştırabileceğin gerçek komutlar.

Buyukweb perspektifi: Buyukweb VDS paketleri unmanaged teslim edilir; sunucu yönetimi, güncelleme, sertleştirme tamamen müşteridedir. AlmaLinux 9, Ubuntu 22.04, Debian 12 ve RHEL 9 arasından seçim yapabilirsin; bu dağıtımların hepsi CIS Level 1 uyum için sağlam bir başlangıç noktası. KVM sanallaştırma ve KVM konsol erişimi gelir; sertleştirme sırasında SSH'ı yanlışlıkla kilitlersen konsol üzerinden kurtarabilirsin. cPanel paylaşımlı hosting müşterileri farklı: CloudLinux LVE + CageFS + Imunify360 + ModSecurity + otomatik güncelleme Buyukweb tarafından yönetiliyor; bu rehber ağırlıklı olarak VDS kullanıcılarına yönelik. Tercih etmeyin: CIS Level 2 (Server profile) kontrollerini cPanel veya WordPress çalıştıran sunuculara olduğu gibi uygulamayın — AppArmor strict profil ve bazı audit kuralları cPanel bileşenleriyle çakışır. Level 1 iyi bir başlangıç; PCI-DSS veya HIPAA kapsamındaki sistemler Level 2'ye geçmeli.

CIS Benchmark Nedir?

CIS (Center for Internet Security) kar amacı gütmeyen uluslararası bir kuruluş; güvenlik uzmanları, hükümet kurumları ve sektör temsilcilerinin oluşturduğu çalışma gruplarıyla işletim sistemi, yazılım ve ağ cihazı için sertleştirme rehberleri (Benchmark) yayınlar. Her Benchmark iki profil sunar:

Profil Hedef Performans etkisi cPanel uyumu
Level 1 (Workstation/Server) Geniş çaplı, hızlı uygulama Düşük Genellikle uyumlu
Level 2 (Server) Daha sıkı; STIG benzeri Orta-yüksek Bazı kontroller çakışır

Güncel sürümler:

  • CIS AlmaLinux 9 Benchmark v1.0
  • CIS Ubuntu 22.04 LTS v1.0
  • CIS Debian Linux 11/12 v1.0
  • CIS Red Hat Enterprise Linux 9 v1.0

Benchmark kontrolleri kategorilere ayrılır:

Kategori İçerik
Dosya sistemi yapılandırması Partition, mount seçenekleri, izinler
Servis yönetimi Gereksiz servislerin kapatılması
Ağ sertleştirme sysctl, IPv6, iptables
Kullanıcı/hesap PAM, şifre politikası, root erişimi
Audit & loglama auditd kuralları, log saklama
Sistem güncelleme Otomatik güncelleme, paket yönetimi

OpenSCAP ile Otomatik Değerlendirme

CIS Benchmark kontrollerini elle tek tek uygulamak yorucu; OpenSCAP ve SCAP Security Guide (ssg) ile sistemi önce değerlendirip ardından otomatik düzeltme uygulayabilirsin.

AlmaLinux 9 / RHEL 9

# Kur
dnf install -y openscap-scanner scap-security-guide

# Profilleri listele
oscap info /usr/share/xml/scap/ssg/content/ssg-almalinux9-ds.xml | grep "cis"

# CIS Level 1 Server değerlendirmesi
oscap xccdf eval \
  --profile xccdf_org.ssgproject.content_profile_cis_server_l1 \
  --report /root/oscap-report.html \
  --results /root/oscap-results.xml \
  /usr/share/xml/scap/ssg/content/ssg-almalinux9-ds.xml

Ubuntu 22.04

apt install -y libopenscap8 ssg-debderived

oscap xccdf eval \
  --profile xccdf_org.ssgproject.content_profile_cis_level1_server \
  --report /root/oscap-report-ubuntu.html \
  /usr/share/xml/scap/ssg/content/ssg-ubuntu2204-ds.xml

Lynis ile Hızlı Tarama

OpenSCAP CIS-spesifik bir araçken Lynis daha geniş sistem denetimi yapar; puan odaklı gösterimi ile nerede durduğunu hızlıca görürsün.

Araç Odak Çıktı CIS mapping
OpenSCAP + SSG CIS/STIG spesifik HTML + XML Tam
Lynis Genel güvenlik denetimi Puan + öneri Kısmi
dnf install -y lynis && lynis audit system
# Çıktıda "Hardening index: XX/100" skoru görürsün
# Detay: /var/log/lynis.log

Kernel sysctl Sertleştirme

Kernel parametreleri ağ saldırılarına, bellek sızıntılarına ve ICMP tünellemeye karşı koruma sağlar. CIS Benchmark'ın ağ kategorisindeki kontrollerinin büyük bölümü sysctl üzerinden uygulanır.

# /etc/sysctl.d/99-cis-hardening.conf oluştur
cat > /etc/sysctl.d/99-cis-hardening.conf << 'EOF'
# ── Ağ: IP Spoofing koruması ──
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# ── SYN Flood koruması ──
net.ipv4.tcp_syncookies = 1

# ── ICMP redirect kabul etme ──
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0

# ── ICMP redirect gönderme ──
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0

# ── Source routing kapat ──
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0

# ── Broadcast ping yoksay ──
net.ipv4.icmp_echo_ignore_broadcasts = 1

# ── Bogus ICMP yanıtları yoksay ──
net.ipv4.icmp_ignore_bogus_error_responses = 1

# ── IP forwarding (router değilsen kapat) ──
net.ipv4.ip_forward = 0
net.ipv6.conf.all.forwarding = 0

# ── Martian paket loglama ──
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1

# ── IPv6 router advertisement kabul etme ──
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.default.accept_ra = 0

# ── ASLR aktif ──
kernel.randomize_va_space = 2

# ── Core dump kısıtla, dmesg kısıtla, ptrace daralt ──
fs.suid_dumpable = 0
kernel.dmesg_restrict = 1
kernel.yama.ptrace_scope = 1
EOF

# Uygula
sysctl --system

Dikkat: net.ipv4.ip_forward = 0 VPN sunucusu veya NAT gateway olarak kullanılan VDS'te paketlerin yönlendirilmesini engeller. WireGuard veya OpenVPN çalıştırıyorsan bu satırı 1'e bırak.

SSH Sertleştirme

SSH en yaygın saldırı yüzeyi. Varsayılan port 22'yi botlar dakikalar içinde tarar; CIS Benchmark'ın SSH bölümü onlarca kontrol içerir.

# /etc/ssh/sshd_config — CIS Level 1 minimum
Protocol 2
PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
MaxAuthTries 4
MaxSessions 10
X11Forwarding no
AllowTcpForwarding no
IgnoreRhosts yes
HostbasedAuthentication no
PermitUserEnvironment no
TCPKeepAlive no
ClientAliveInterval 300
ClientAliveCountMax 1
LoginGraceTime 60
Banner /etc/issue.net
MACs [email protected],[email protected]
Ciphers [email protected],[email protected],[email protected]
LogLevel VERBOSE
# Yapılandırmayı test et — restart öncesi mutlaka
sshd -t && echo "Konfigürasyon geçerli"

# Servisi yeniden başlat
systemctl restart sshd

# Banner oluştur
echo "Bu sisteme yetkisiz erişim yasaktır. Tüm oturumlar kaydedilmektedir." > /etc/issue.net

Buyukweb VDS: SSH key ile giriş yapıyorsan PasswordAuthentication no yap. PermitRootLogin no yaptıktan sonra SSH kilitlenirse KVM konsol erişimi üzerinden sshd_config düzenleyebilirsin.

Dosya Sistemi Sertleştirme

CIS Benchmark, /tmp, /var, /home ve /dev/shm gibi dizinleri ayrı partition üzerine mount edip noexec, nosuid, nodev seçenekleriyle kısıtlamayı şart koşar. Bu ayrımı kurulum anında yapmak sonradan yapmaktan çok daha kolaydır.

# /etc/fstab — noexec nosuid nodev
tmpfs /tmp     tmpfs defaults,nosuid,nodev,noexec,mode=1777 0 0
/tmp /var/tmp  none  bind 0 0
tmpfs /dev/shm tmpfs defaults,nosuid,nodev,noexec 0 0

mount -o remount /tmp && mount -o remount /dev/shm
# Dünya-yazılabilir dosyaları bul
find / -xdev -type f -perm -0002 -not -path "/proc/*" 2>/dev/null

# SUID/SGID — gerekmedikçe kaldır
find / -xdev -type f ( -perm -4000 -o -perm -2000 ) 2>/dev/null

# Kritik dosya izinleri
chmod 644 /etc/passwd && chmod 000 /etc/shadow
chmod 644 /etc/group  && chmod 600 /etc/gshadow
chmod 600 /etc/ssh/sshd_config && chmod 700 /root

PAM ile Parola Politikası (pam_pwquality)

Güçlü parola politikası olmadan brute-force saldırısı zamanla başarılı olur. CIS Benchmark, pam_pwquality ve chage ile kapsamlı parola kuralları ister.

# AlmaLinux 9 / RHEL 9
dnf install -y libpwquality

# Ubuntu / Debian
apt install -y libpam-pwquality
# /etc/security/pwquality.conf
# Minimum uzunluk
minlen = 14

# Minimum karakter sınıfı (büyük/küçük harf + rakam + özel)
minclass = 4

# Ardışık aynı karakter tekrarı
maxrepeat = 2
maxclasrepeat = 4

# Kullanıcı adı içermemeli
usercheck = 1

# Sözlük kontrolü
dictcheck = 1

# Geçmişe göre kontrol (son N parola)
# (pam_unix remember= ile birlikte çalışır)
# Parola yaşlandırma: maks 90 gün, min 7 gün, 14 gün uyarı
chage --maxdays 90 --mindays 7 --warndays 14 kullanici

# Root dışında UID 0 hesap olmamalı
awk -F: '$3 == 0 {print $1}' /etc/passwd

# Kilitli hesaplar
awk -F: '$2 == "!!" || $2 == "*" {print $1}' /etc/shadow

Audit Loglama (auditd)

auditd, Linux kernel düzeyinde sistem çağrılarını ve dosya erişimlerini kaydeder. CIS Benchmark, en az 90 günlük audit log saklamasını, sistem zamanı değişikliklerinin ve kritik dosya erişimlerinin kayıt altına alınmasını şart koşar.

# Kur ve etkinleştir
dnf install -y audit        # AlmaLinux/RHEL
apt install -y auditd       # Ubuntu/Debian

systemctl enable --now auditd
# /etc/audit/rules.d/99-cis.rules

# Zamanlama değişiklikleri
-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time-change
-a always,exit -F arch=b64 -S clock_settime -k time-change
-w /etc/localtime -p wa -k time-change

# Kimlik / hesap dosyaları
-w /etc/group -p wa -k identity
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/sudoers -p wa -k scope
-w /etc/sudoers.d/ -p wa -k scope

# Giriş izleme
-w /var/log/lastlog -p wa -k logins
-w /var/run/faillock/ -p wa -k logins

# Sudo
-w /var/log/sudo.log -p wa -k actions

# Kernel modülü
-w /sbin/insmod -p x -k modules
-w /sbin/modprobe -p x -k modules
-a always,exit -F arch=b64 -S init_module -S delete_module -k modules

# Kilitli mod (cPanel'li sistemde -e 1 kullan)
-e 2
augenrules --load && systemctl restart auditd

# Sorgulama
ausearch -k identity -ts today   # Bugün kimlik değişikliği
aureport --summary                # Genel özet
aureport --failed                 # Başarısız olaylar
# /etc/audit/auditd.conf — 90 gün log saklama için
max_log_file = 50         # MB
num_logs = 30             # 50 x 30 = ~1.5 GB, ~90 gün
max_log_file_action = ROTATE
space_left_action = email
admin_space_left_action = halt

Kullanıcı Yetki Sınırlama (sudo + PAM)

"Herkese sudo" yaklaşımı sertleştirme değil güvenlik deligi. CIS Benchmark sudo yapılandırmasını kontrol eder; her yetkili komutun kayıt altında olmasını ister.

# visudo ile güvenli düzenle; NOPASSWD kullanma
visudo

# /etc/sudoers.d/cis-hardening
Defaults   log_output
Defaults   logfile="/var/log/sudo.log"
Defaults   use_pty
Defaults   timestamp_timeout=5

# Root hesabı kilitle
passwd -l root
> /etc/securetty

Gereksiz Servislerin Kapatılması

Çalışan her servis olası bir saldırı yüzeyi. CIS Benchmark, yaygın ama genellikle gereksiz servislerin devre dışı bırakılmasını şart koşar.

# Kapatılması önerilen servisler
for service in avahi-daemon cups bluetooth rpcbind nfs-server vsftpd telnet xinetd; do
    systemctl disable --now "$service" 2>/dev/null && echo "Kapatıldı: $service"
done

# Açık portları kontrol et
ss -tlnp

# Gereksiz paketleri kaldır
dnf remove -y telnet ypbind rsh xinetd tftp-server        # AlmaLinux/RHEL
apt purge -y telnet rsh-client nis ypbind inetutils-inetd  # Ubuntu/Debian

Otomatik Güncelleme

Unmanaged VDS'te en sık gözden kaçan alan otomatik güvenlik güncellemesidir. Yama gecikmesi bilinen CVE'lerin sömürülmesine açık kapı bırakır.

# AlmaLinux 9 / RHEL 9 — dnf-automatic (sadece güvenlik yamaları)
dnf install -y dnf-automatic
sed -i 's/^apply_updates.*/apply_updates = yes/' /etc/dnf/automatic.conf
sed -i 's/^upgrade_type.*/upgrade_type = security/' /etc/dnf/automatic.conf
systemctl enable --now dnf-automatic.timer

# Ubuntu 22.04 — unattended-upgrades
apt install -y unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades

AIDE: Dosya Bütünlük Kontrolü

Sertleştirme tamamlandıktan sonra sistemi bir baseline olarak kaydet; gelecekteki yetkisiz değişiklikleri tespit etmek için AIDE kullan.

dnf install -y aide && apt install -y aide   # AlmaLinux/RHEL veya Ubuntu

# Sertleştirme bittikten sonra baseline oluştur
aide --init
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

# Cron ile günlük kontrol
echo "0 3 * * * root aide --check 2>&1 | mail -s 'AIDE' [email protected]" \
  > /etc/cron.d/aide-check

AIDE veritabanını güvenli dış depolamada sakla; yerinde bırakırsan saldırgan veritabanını da değiştirebilir.

Sertleştirme Kontrol Listesi

Aşağıdaki liste tamamlandığında CIS Level 1'in kritik kontrolleri karşılanmış olur:

  • OpenSCAP değerlendirmesi çalıştırıldı, HTML rapor incelendi
  • sysctl parametre dosyası oluşturuldu ve yüklendi
  • SSH sertleştirildi: PermitRootLogin no, PasswordAuthentication no
  • /tmp ve /dev/shm noexec/nosuid/nodev ile mount edildi
  • pam_pwquality minlen=14, minclass=4 yapılandırıldı
  • chage ile parola yaşlandırma tüm kullanıcılara uygulandı
  • auditd etkin, 99-cis.rules yüklü
  • Audit log saklama: 90 gün minimum (num_logs + max_log_file hesapla)
  • Gereksiz servisler kapatıldı (avahi, cups, rpcbind vb.)
  • sudo: NOPASSWD yok, log_output aktif
  • Root hesabı kilitli, /etc/securetty boş
  • dnf-automatic veya unattended-upgrades etkin (sadece security)
  • AIDE veritabanı baseline oluşturuldu

Sıkça Sorulan Sorular

CIS Level 1 ile Level 2 arasındaki fark nedir?

Level 1 performans etkisi düşük temel kontrolleri kapsar; WordPress ve cPanel için başlangıç noktası. Level 2 AppArmor strict profil ve sıkı audit kurallarını ekler; cPanel ile çakışma riski taşır. Genel web sunucusu için Level 1 yeterlidir. PCI-DSS veya HIPAA gerekiyorsa Level 2'ye geç ve her kontrolü test et.

OpenSCAP'ta "fail" sayısı çok yüksek — paniklemeli miyim?

Hayır. Taze kurulumda 50-100 fail normal. Önce kritik (CVSS skoru yüksek) kontrolleri düzelt. /home için ayrı partition gibi kurulum sonrası uygulanamayan kontrolleri "not applicable" işaretle ve sonraki kurulumda dikkate al.

Hangi sertleştirme kontrolleri cPanel ile çakışır?

AppArmor strict profil cPanel bileşenlerini kırabilir; /tmp noexec bazı PHP betiklerini (Softaculous vb.) bozabilir — noexec yerine nosuid,nodev dene; auditd -e 2 (locked mode) cPanel güncellemelerinin kural eklemesini engeller — cPanel'li sistemlerde -e 1 kullan.

Audit log kaç gün saklanmalı?

CIS Benchmark minimum süre belirtmez ama 90 gün yaygın öneri ve birçok uyumluluk çerçevesinin minimumu. auditd.conf içinde max_log_file = 50 (MB) ve num_logs = 30 ayarlarken 50 × 30 = ~1.5 GB disk ayrılır; bu genellikle 90 gün kapsar ama yüksek aktiviteli sistemde daha az. Disk kullanımını izle; gerekirse max_log_file büyüt.

OpenSCAP ile Lynis arasında ne fark var?

Uyumluluk raporlaması (PCI-DSS, kurum denetimi) için OpenSCAP + SSG — resmi CIS profilleri, XCCDF çıktısı, denetçiye gösterilebilir HTML rapor. Hızlı genel değerlendirme için Lynis — kurulumu basit, puan bazlı özet. İkisini birlikte kullanabilirsin: Lynis ile alanı belirle, OpenSCAP ile detaylı CIS raporu al.

Sertleştirme sonrası bir şeyler bozuldu, nasıl geri alırım?

sysctl için: /etc/sysctl.d/99-cis-hardening.conf'u sil ve sysctl --system çalıştır. SSH kilitlenmesinde KVM konsol üzerinden sshd_config düzenle. Mount seçenekleri için /etc/fstab'dan satırı kaldır ve mount -o remount <dizin> ile geri al. Sertleştirme adımlarını önce test ortamında deneyerek üretim sunucusuna uygulamanı öneririz.

/tmp noexec koyunca PHP scriptlerim çalışmıyor

Bazı PHP uygulamaları /tmp'ye exec ile erişir. Çözüm: open_basedir ile PHP geçici alanını yönlendir, ya da /tmp'ye noexec yerine yalnızca nosuid,nodev uygula.


İlgili Büyükweb Hizmetleri

Sunucu güvenliğini ciddiye alanlar için:

Teknik destek ve sertleştirme soruları için 7/24 TR destek hattı: 0850 302 60 70 veya iletişim sayfamız.

Güvenlik & SSL İlgili Hizmetlerimiz

Bu yazıda anlatılan teknik konuyu profesyonel altyapıyla deneyimleyin

Etiketler:

#cis benchmark#güvenlik#ssl#siber güvenlik#sunucu güvenliği

Bu yazıyı paylaş