
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ı.
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 = 0VPN 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 noyap.PermitRootLogin noyaptıktan sonra SSH kilitlenirse KVM konsol erişimi üzerindensshd_configdü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:
- VDS Sunucu — KVM, AlmaLinux 9 / Ubuntu 22.04
- Fiziksel Dedicated Sunucu
- Imunify360 Korumalı cPanel Hosting
- Tüm Paketler — Karşılaştırma
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:

