Giriş: Sıkılaştırma Yetmez, Denetim de Şart
Linux sunucunuzu sıkılaştırdınız — SSH ayarlarını güncellediniz, nftables ile güvenlik duvarı kurallarını yazdınız, çekirdek parametrelerini sıkıştırdınız. Güzel. Ama şimdi size bir soru: tüm bu ayarların gerçekten çalıştığından emin misiniz? Ya altı ay sonra bir paket güncellemesi sessizce bir kuralı ezdiyse?
İşte tam burada güvenlik denetimi devreye giriyor.
2025 yılında Linux çekirdeğine ait CVE kayıtları 5.500'ü aştı ve saldırganlar yapılandırma hatalarını istismar etmede giderek daha yaratıcı hale geldi. Verizon'un 2025 Veri İhlali Araştırma Raporu'na göre, güvenlik ihlallerinin önemli bir kısmı yanlış yapılandırmalardan kaynaklanıyor — teknik olarak savunmasız olmayan ama hatalı yapılandırılmış sistemler. Yani düzenli güvenlik denetimi, sıkılaştırma kadar kritik bir adım. Belki daha da kritik.
Bu rehberde, açık kaynaklı güvenlik denetim aracı Lynis ile Linux sisteminizi nasıl tarayacağınızı, sıkılaştırma puanınızı nasıl yükselteceğinizi ve CIS Benchmark uyumluluğunu nasıl sağlayacağınızı adım adım göstereceğiz. Pratik komutlar, gerçek çıktı örnekleri ve otomasyon betikleriyle destekledik — kuru teori yok, doğrudan uygulamaya geçiyoruz.
1. Lynis Nedir ve Neden Kullanmalısınız?
1.1 Lynis'e Genel Bakış
Lynis, CISOfy tarafından geliştirilen GPL lisanslı açık kaynaklı bir güvenlik denetim aracı. 2007'den bu yana aktif olarak geliştiriliyor ve Linux, macOS ve Unix tabanlı sistemlerde 300'den fazla güvenlik testi gerçekleştiriyor. Kimlik doğrulama, dosya izinleri, çekirdek parametreleri, ağ servisleri, yazılım zafiyetleri, uyumluluk kontrolleri… Kapsam oldukça geniş.
Lynis'in en güçlü yanlarından biri modüler ve fırsatçı tarama yaklaşımı. Sisteminizde hangi bileşenler varsa — Apache, Nginx, MySQL, Docker — onları otomatik olarak algılıyor ve ilgili testleri çalıştırıyor. Ekstra bir yazılım kurmanıza gerek yok; bu da sisteminizi temiz tutmanıza yardımcı oluyor.
2026 itibarıyla en güncel sürüm olan Lynis 3.1.5, OpenWrt desteği, Bitdefender tespiti ve genişletilmiş modül kontrolleri gibi yenilikler içeriyor.
1.2 Lynis ile Neler Denetleyebilirsiniz?
Denetleyebildiği temel alanları kısaca özetleyelim:
- Sistem ve önyükleme güvenliği: UEFI/Secure Boot durumu, çekirdek parametreleri
- Kimlik doğrulama ve kullanıcı yönetimi: Parola politikaları, boş parolalar, hesap kilitleme
- SSH yapılandırması: Protokol sürümü, anahtar türleri, yönlendirme ayarları
- Dosya sistemi izinleri: SUID/SGID dosyaları, yazılabilir dizinler, cron dosya izinleri
- Ağ servisleri: Açık portlar, dinleyen servisler, güvenlik duvarı durumu
- Çekirdek sıkılaştırma: sysctl parametreleri, modül güvenliği
- Günlükleme ve denetim: auditd durumu, syslog yapılandırması
- Kötü amaçlı yazılım ve rootkit tespiti: rkhunter, chkrootkit entegrasyonu
- Yazılım güvenliği: Güncel olmayan paketler, bilinen zafiyetler
- Uyumluluk kontrolleri: CIS, HIPAA, ISO 27001, PCI DSS
Dürüst olmak gerekirse, tek bir araçtan bu kadar kapsamlı bir tarama almak gerçekten etkileyici.
1.3 Lynis Kimlere Hitap Eder?
Lynis farklı roller için farklı değerler sunuyor:
- Sistem yöneticileri: Günlük sağlık taramalarıyla yeni zafiyetleri erken tespit eder
- Güvenlik mühendisleri: Sıkılaştırma çalışmalarının etkisini ölçülebilir şekilde doğrular
- BT denetçileri: Uyumluluk raporları oluşturur ve iyileştirme alanlarını belirler
- DevSecOps ekipleri: CI/CD pipeline'larına güvenlik denetimi entegre eder
- Sızma testçileri: Hedef sistemlerdeki yapılandırma zayıflıklarını keşfeder
2. Lynis Kurulumu: Üç Farklı Yöntem
2.1 Paket Yöneticisi ile Kurulum
En hızlı yöntem paket yöneticisini kullanmak. Ama bir uyarı: dağıtımların deposundaki sürüm genellikle güncel değildir. Hızlı bir test için yeterli olsa da, üretim ortamında CISOfy deposunu tercih etmenizi şiddetle tavsiye ederim.
# Debian/Ubuntu
sudo apt update
sudo apt install lynis
# RHEL/CentOS/AlmaLinux/Rocky
sudo dnf install epel-release
sudo dnf install lynis
# Arch Linux
sudo pacman -S lynis
# Kurulu sürümü doğrulama
lynis --version
2.2 CISOfy Resmi Deposundan Kurulum (Önerilen)
En güncel sürümü almak için CISOfy'nin resmi deposunu eklemeniz gerekiyor. Bu yöntemle en son güvenlik testlerini ve hata düzeltmelerini içeren sürümü garanti altına alırsınız:
# Debian/Ubuntu için CISOfy deposu ekleme
sudo apt install apt-transport-https ca-certificates host
echo "deb https://packages.cisofy.com/community/lynis/deb/ stable main" | sudo tee /etc/apt/sources.list.d/cisofy-lynis.list
# GPG anahtarını içe aktarma
sudo wget -O - https://packages.cisofy.com/keys/cisofy-software-public.key | sudo apt-key add -
# Kurulum
sudo apt update
sudo apt install lynis
# Sürüm doğrulama (3.1.5 olmalı)
lynis show version
2.3 Git ile Doğrudan Kaynak Koddan Çalıştırma
Lynis'in en güzel özelliklerinden biri kurulum gerektirmeden çalışabilmesi. Git ile klonlayıp doğrudan çalıştırabilirsiniz — özellikle test ortamları ve konteynerler için mükemmel bir yöntem:
# Git ile klonlama
cd /opt
sudo git clone https://github.com/CISOfy/lynis.git
cd lynis
# Doğrudan çalıştırma
sudo ./lynis audit system
# Belirli bir sürüme geçiş
sudo git checkout tags/3.1.5
3. İlk Güvenlik Denetimini Çalıştırma
3.1 Temel Tarama
Lynis'i root yetkisiyle çalıştırmanız kritik önem taşıyor. Root yetkisi olmadan birçok test atlanır ve anlamlı olmayan düşük bir puan elde edersiniz (bu hatayı yapan çok kişi gördüm).
# Tam sistem denetimi (etkileşimli mod)
sudo lynis audit system
# Etkileşimsiz mod (Enter tuşuna basma gerektirmez)
sudo lynis audit system -Q
# Belirli bir denetçi adıyla çalıştırma
sudo lynis audit system --auditor "Güvenlik Ekibi"
# Sadece belirli bir test grubunu çalıştırma
sudo lynis audit system --tests-from-group "ssh"
sudo lynis audit system --tests-from-group "kernel"
3.2 Tarama Çıktısını Anlama
Lynis tarama sırasında her test için renkli sonuçlar gösterir:
- [OK] — Test başarıyla geçildi, yapılandırma önerilen değerde
- [WARNING] — Dikkat gerektiren bir güvenlik sorunu tespit edildi
- [SUGGESTION] — İyileştirme önerisi var ancak kritik bir risk yok
- [FOUND] — Bir bileşen veya yapılandırma algılandı
- [NOT FOUND] — Beklenen bir bileşen bulunamadı
Burada dikkat edilmesi gereken önemli bir nokta var: [OK] her zaman "güvenli" anlamına gelmiyor, [WARNING] de her zaman "tehlikeli" demek değil. Sonuçları sisteminizin rolü ve ihtiyaçları bağlamında değerlendirmeniz lazım. Mesela bir geliştirme sunucusunda derleyici araçlarının (gcc) bulunması gayet normal; ama üretim sunucusunda risk oluşturabilir.
3.3 Rapor Dosyalarını İnceleme
Lynis iki önemli dosya üretir. Bu dosyalar üzerinde biraz vakit harcamaya değer:
# Detaylı günlük dosyası
sudo cat /var/log/lynis.log
# Makine tarafından okunabilir rapor dosyası
sudo cat /var/log/lynis-report.dat
# Sadece uyarıları filtreleme
grep "^warning" /var/log/lynis-report.dat
# Sadece önerileri filtreleme
grep "^suggestion" /var/log/lynis-report.dat
# Sıkılaştırma puanını görüntüleme
grep "hardening_index" /var/log/lynis-report.dat
4. Sıkılaştırma Puanını Anlama ve Yükseltme
4.1 Hardening Index Nedir?
Her Lynis taramasının sonunda 0 ile 100 arasında bir sıkılaştırma puanı (hardening index) görürsünüz. Bu puan, sisteminizde alınan güvenlik önlemlerinin bir göstergesi. Ama şunu netleştireyim: bu puan sisteminizin ne kadar "güvenli" olduğunun yüzdesi değil — sadece uygulanan sıkılaştırma tedbirlerinin kapsamını gösterir.
Tipik puanlar şöyle dağılıyor:
- 50-65: Yeni kurulmuş, varsayılan yapılandırmadaki bir Linux dağıtımı
- 65-75: Temel güvenlik önlemleri alınmış bir sistem
- 75-85: İyi sıkılaştırılmış, üretim ortamına uygun bir sistem
- 85+: Kapsamlı şekilde sıkılaştırılmış, yüksek güvenlikli bir sistem
CISOfy geliştiricileri, üretim sunucuları için 80 ve üzeri bir puanı hedeflemenizi öneriyor. Kişisel deneyimime göre 75-80 arası bile çoğu senaryo için makul bir başlangıç noktası.
4.2 SSH Yapılandırmasını Düzeltme (SSH-7408)
Hadi işleri somutlaştıralım. Lynis'in en sık raporladığı uyarılardan biri SSH yapılandırmasıyla ilgili. SSH-7408 test kimliği altında birçok alt kontrol bulunuyor ve bu düzeltmeleri uygulamak tek başına puanınızı 5-10 puan artırabilir:
# /etc/ssh/sshd_config dosyasını düzenleyin
sudo nano /etc/ssh/sshd_config
# Aşağıdaki ayarları ekleyin veya güncelleyin:
# Root ile doğrudan giriş engelleme
PermitRootLogin no
# Parola tabanlı kimlik doğrulamayı devre dışı bırakma
PasswordAuthentication no
# Boş parolaları engelleme
PermitEmptyPasswords no
# X11 yönlendirmesini devre dışı bırakma
X11Forwarding no
# TCP yönlendirmesini devre dışı bırakma
AllowTcpForwarding no
# Agent yönlendirmesini devre dışı bırakma
AllowAgentForwarding no
# Maksimum kimlik doğrulama denemesi
MaxAuthTries 3
# Oturum zaman aşımı (saniye)
ClientAliveInterval 300
ClientAliveCountMax 2
# Güçlü şifreleme algoritmaları (2026 önerisi)
KexAlgorithms [email protected],curve25519-sha256,[email protected]
Ciphers [email protected],[email protected],[email protected]
MACs [email protected],[email protected]
# Yapılandırmayı doğrulayın
sudo sshd -t
# SSH servisini yeniden başlatın
sudo systemctl restart sshd
Bir hatırlatma: PasswordAuthentication'ı kapatmadan önce SSH anahtarınızın sunucuya düzgün şekilde eklendiğinden emin olun. Yoksa kendinizi dışarıda bırakabilirsiniz — bunu yaşamak hiç eğlenceli değil.
4.3 Çekirdek Parametrelerini Sıkılaştırma (KRNL-6000)
Lynis, KRNL-6000 test kimliği altında sysctl parametrelerini kontrol eder. Önerilen değerlerden sapan parametreler raporlanır. Aşağıdaki dosyayı oluşturmanız çoğu uyarıyı giderecektir:
# /etc/sysctl.d/99-lynis-hardening.conf dosyası oluşturun
sudo tee /etc/sysctl.d/99-lynis-hardening.conf <<EOF
# Çekirdek adres rastgeleleştirme (ASLR)
kernel.randomize_va_space = 2
# Çekirdek işaretçi sızıntısını engelleme
kernel.kptr_restrict = 2
# dmesg erişimini kısıtlama
kernel.dmesg_restrict = 1
# Core dump devre dışı
fs.suid_dumpable = 0
# Symlink ve hardlink koruması
fs.protected_symlinks = 1
fs.protected_hardlinks = 1
fs.protected_fifos = 2
fs.protected_regular = 2
# Yetkisiz BPF kullanımını engelleme
kernel.unprivileged_bpf_disabled = 1
# BPF JIT sıkılaştırma
net.core.bpf_jit_harden = 2
# SysRq tuşunu devre dışı bırakma
kernel.sysrq = 0
# IP yönlendirmeyi devre dışı bırakma
net.ipv4.ip_forward = 0
# ICMP yönlendirmelerini reddetme
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
# Kaynak yönlendirmeli paketleri reddetme
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
# SYN cookies etkinleştirme
net.ipv4.tcp_syncookies = 1
# Şüpheli paketleri günlüğe kaydetme
net.ipv4.conf.all.log_martians = 1
EOF
# Parametreleri uygulama
sudo sysctl --system
# Doğrulama
sudo sysctl kernel.randomize_va_space
sudo sysctl kernel.kptr_restrict
4.4 Denetim Altyapısını Kurma (auditd)
Lynis, sisteminizde auditd'nin kurulu ve aktif olmasını bekler. Linux denetim altyapısı, güvenlik olaylarının izlenmesi ve adli analiz için olmazsa olmaz diyebilirim:
# auditd kurulumu
sudo apt install auditd audispd-plugins # Debian/Ubuntu
sudo dnf install audit # RHEL/CentOS
# Servisi etkinleştirme ve başlatma
sudo systemctl enable --now auditd
# Temel denetim kuralları ekleme
sudo tee /etc/audit/rules.d/hardening.rules <<EOF
# Zaman değişikliklerini izleme
-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time-change
# Kullanıcı ve grup değişikliklerini izleme
-w /etc/passwd -p wa -k identity
-w /etc/group -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/gshadow -p wa -k identity
# Ağ yapılandırma değişikliklerini izleme
-w /etc/hosts -p wa -k network-config
-w /etc/sysconfig/network -p wa -k network-config
# Sudo kullanımını izleme
-w /var/log/sudo.log -p wa -k sudo-log
-w /etc/sudoers -p wa -k sudoers
-w /etc/sudoers.d/ -p wa -k sudoers
# Oturum açma olaylarını izleme
-w /var/log/faillog -p wa -k logins
-w /var/log/lastlog -p wa -k logins
-w /var/log/btmp -p wa -k logins
-w /var/log/wtmp -p wa -k logins
EOF
# Kuralları yükleme
sudo augenrules --load
# Kuralları doğrulama
sudo auditctl -l
4.5 Dosya İzinlerini Düzeltme
Lynis, hassas dosyaların izinlerini kontrol eder ve gereğinden fazla açık olanları raporlar. Bu düzeltmeler kolay ama etkili:
# Cron dosya izinlerini sıkılaştırma
sudo chmod 600 /etc/crontab
sudo chmod 700 /etc/cron.d
sudo chmod 700 /etc/cron.daily
sudo chmod 700 /etc/cron.hourly
sudo chmod 700 /etc/cron.weekly
sudo chmod 700 /etc/cron.monthly
sudo chown root:root /etc/crontab
# SSH yapılandırma dosyası izni
sudo chmod 600 /etc/ssh/sshd_config
# at.deny ve cron.deny dosyalarını yapılandırma
sudo touch /etc/at.deny /etc/cron.deny
sudo chmod 600 /etc/at.deny /etc/cron.deny
sudo chown root:root /etc/at.deny /etc/cron.deny
# SUID/SGID dosyalarını listeleme ve gereksiz olanları temizleme
sudo find / -perm /4000 -type f 2>/dev/null
sudo find / -perm /2000 -type f 2>/dev/null
# Örnek: gereksiz SUID kaldırma
# sudo chmod u-s /usr/bin/gereksiz-program
4.6 Parola Politikalarını Güçlendirme (AUTH-9286, AUTH-9328)
Zayıf parola politikaları Lynis'in sıklıkla işaretlediği alanlardan biri. Burayı doğru yapılandırmak hem puanı artırır hem de gerçek güvenliğe katkı sağlar:
# Parola karmaşıklık gereksinimleri (libpam-pwquality)
sudo apt install libpam-pwquality # Debian/Ubuntu
sudo dnf install pam_pwquality # RHEL/CentOS
# /etc/security/pwquality.conf yapılandırması
sudo tee /etc/security/pwquality.conf <<EOF
# Minimum parola uzunluğu
minlen = 12
# Minimum farklı karakter sınıfı (büyük, küçük, rakam, özel)
minclass = 3
# Maksimum ardışık tekrar karakteri
maxrepeat = 3
# Kullanıcı adının parola içinde geçmesini engelleme
usercheck = 1
# Sözlük kontrolü
dictcheck = 1
EOF
# Parola yaşlandırma politikası
sudo tee -a /etc/login.defs <<EOF
PASS_MAX_DAYS 90
PASS_MIN_DAYS 7
PASS_WARN_AGE 14
EOF
# Mevcut kullanıcılar için yaşlandırma uygulama
sudo chage --maxdays 90 --mindays 7 --warndays 14 kullanici_adi
4.7 Gereksiz Servisleri Devre Dışı Bırakma
Çalışan her gereksiz servis potansiyel bir saldırı yüzeyi demek. Kullanmıyorsanız kapatın, bu kadar basit:
# Çalışan servisleri listeleme
sudo systemctl list-units --type=service --state=running
# Genellikle sunucularda gereksiz olan servisleri devre dışı bırakma
sudo systemctl disable --now avahi-daemon.service 2>/dev/null
sudo systemctl disable --now cups.service 2>/dev/null
sudo systemctl disable --now bluetooth.service 2>/dev/null
sudo systemctl disable --now ModemManager.service 2>/dev/null
# Açık portları kontrol etme
sudo ss -tlnp
# Dinleyen servisleri doğrulama
sudo netstat -tlnp 2>/dev/null || sudo ss -tlnp
5. CIS Benchmark Uyumluluğu
5.1 CIS Benchmark Nedir?
CIS (Center for Internet Security) Benchmark'ları, sistemlerin güvenli yapılandırılması için sektör standardı kabul edilen rehberler. 140'tan fazla teknoloji grubu için detaylı yapılandırma kılavuzları sunuyorlar. İki seviyede düzenleniyorlar:
- Seviye 1: Çoğu ortam için uygun temel güvenlik sıkılaştırma. İşlevselliği etkilemez ve üretim sunucularına güvenle uygulanabilir.
- Seviye 2: Derinlemesine savunma tedbirleri. Daha kısıtlayıcıdır ve uygulamaya özel ayarlamalar gerektirebilir. Yüksek güvenlik gerektiren ortamlar için önerilir.
Çoğu kuruluş için Seviye 1 ile başlamak en mantıklı yol. Seviye 2'ye ancak Seviye 1'i tamamladıktan ve etkilerini test ettikten sonra geçin.
5.2 Lynis ile CIS Kontrollerini Doğrulama
Lynis, CIS Benchmark kontrollerinin büyük bir kısmını otomatik olarak denetler. Tarama sonucundaki test kimliklerini CIS kontrolleriyle eşleştirerek uyumluluk durumunuzu değerlendirebilirsiniz:
# CIS ile ilişkili testleri çalıştırma
sudo lynis audit system --profile /etc/lynis/default.prf
# Uyumluluk sonuçlarını kontrol etme
grep "compliance" /var/log/lynis-report.dat
# Belirli CIS kontrollerini hedefleyen test grupları
sudo lynis audit system --tests-from-group "authentication"
sudo lynis audit system --tests-from-group "storage"
sudo lynis audit system --tests-from-group "networking"
5.3 Ubuntu Security Guide (USG) ile Otomasyon
Ubuntu 24.04 LTS kullanıyorsanız güzel bir haberim var: Canonical'ın Ubuntu Security Guide (USG) aracı CIS Benchmark uyumluluğunu otomatize edebiliyor. USG, OpenSCAP teknolojisi üzerine inşa edilmiş ve hem denetim hem de düzeltme işlevleri sunuyor:
# USG kurulumu (Ubuntu Pro gerektirir)
sudo apt install ubuntu-security-guide
# CIS Level 1 denetimi
sudo usg audit cis_level1_server
# CIS Level 1 düzeltme (dikkatli kullanın!)
sudo usg fix cis_level1_server
# HTML rapor oluşturma
sudo usg generate-fix cis_level1_server --output report.html
5.4 Ansible ile CIS Benchmark Otomasyonu
Birden fazla sunucuyu yönetiyorsanız Ansible ile CIS Benchmark uyumluluğunu kod olarak tanımlayabilirsiniz. Manuel denetimleri çalıştırılabilir ve test edilebilir koda dönüştürmek — bence en doğru yaklaşım bu:
# DevSec Hardening Framework kurulumu
ansible-galaxy install devsec.os_hardening
ansible-galaxy install devsec.ssh_hardening
# Playbook örneği: cis-hardening.yml
# ---
# - hosts: all
# become: yes
# roles:
# - devsec.os_hardening
# - devsec.ssh_hardening
# vars:
# os_auth_pw_max_age: 90
# os_auth_pw_min_age: 7
# ssh_permit_root_login: "no"
# ssh_allow_tcp_forwarding: "no"
# ssh_max_auth_retries: 3
# sysctl_overwrite:
# kernel.randomize_va_space: 2
# kernel.kptr_restrict: 2
# net.ipv4.conf.all.accept_redirects: 0
# Çalıştırma
ansible-playbook -i inventory cis-hardening.yml
# Sadece doğrulama (değişiklik yapmadan)
ansible-playbook -i inventory cis-hardening.yml --check --diff
6. Lynis Denetimlerini Otomatikleştirme
6.1 Cron ile Zamanlanmış Taramalar
Güvenlik denetimi tek seferlik bir iş değil — sürekli bir süreç. Bunu bir kere kurarsanız sonrasında otopilotta çalışır. Haftalık veya günlük otomatik taramalar ayarlayarak sisteminizin güvenlik durumunu sürekli izleyebilirsiniz:
# Haftalık Lynis taraması için cron job oluşturma
sudo tee /etc/cron.d/lynis-audit <<EOF
# Her Pazar gece 02:30'da sistem denetimi çalıştır
30 2 * * 0 root /usr/sbin/lynis audit system --cronjob --quiet --auditor "Otomatik Denetim" 2>&1
EOF
sudo chmod 644 /etc/cron.d/lynis-audit
# Sonuçları e-posta ile gönderen betik
sudo tee /usr/local/bin/lynis-report.sh <<'SCRIPT'
#!/bin/bash
RAPOR="/var/log/lynis-report.dat"
LOG="/var/log/lynis.log"
TARIH=$(date +%Y-%m-%d)
# Lynis taramasını çalıştır
/usr/sbin/lynis audit system --cronjob --quiet
# Puanı al
PUAN=$(grep "hardening_index" "$RAPOR" | cut -d= -f2)
# Uyarıları say
UYARI_SAYISI=$(grep -c "^warning" "$RAPOR")
# Rapor oluştur
echo "=== Lynis Güvenlik Raporu: $TARIH ==="
echo "Sıkılaştırma Puanı: $PUAN"
echo "Uyarı Sayısı: $UYARI_SAYISI"
echo ""
echo "=== Uyarılar ==="
grep "^warning" "$RAPOR"
echo ""
echo "=== Öneriler ==="
grep "^suggestion" "$RAPOR"
SCRIPT
sudo chmod +x /usr/local/bin/lynis-report.sh
6.2 CI/CD Pipeline Entegrasyonu
DevSecOps yaklaşımıyla, sunucu imajlarını veya konteynerlerini dağıtmadan önce Lynis taramasından geçirebilirsiniz. Belirlediğiniz eşik puanın altında kalan imajlar pipeline'da reddedilir — böylece güvenlik açığı olan bir imaj asla üretime ulaşmaz:
# GitLab CI/CD örneği (.gitlab-ci.yml)
# security-audit:
# stage: test
# image: ubuntu:24.04
# script:
# - apt-get update && apt-get install -y lynis
# - lynis audit system --cronjob --quiet
# - SCORE=$(grep "hardening_index" /var/log/lynis-report.dat | cut -d= -f2)
# - echo "Sıkılaştırma puanı: $SCORE"
# - |
# if [ "$SCORE" -lt 70 ]; then
# echo "HATA: Sıkılaştırma puanı eşik değerin (70) altında!"
# exit 1
# fi
# artifacts:
# paths:
# - /var/log/lynis-report.dat
# - /var/log/lynis.log
# Basit bir eşik kontrol betiği
sudo tee /usr/local/bin/lynis-gate.sh <<'GATE'
#!/bin/bash
ESIK=${1:-70}
/usr/sbin/lynis audit system --cronjob --quiet
PUAN=$(grep "hardening_index" /var/log/lynis-report.dat | cut -d= -f2)
echo "Sıkılaştırma puanı: $PUAN (Eşik: $ESIK)"
if [ "$PUAN" -lt "$ESIK" ]; then
echo "BAŞARISIZ: Puan eşik değerin altında!"
grep "^warning" /var/log/lynis-report.dat
exit 1
else
echo "BAŞARILI: Puan eşik değerin üzerinde."
exit 0
fi
GATE
sudo chmod +x /usr/local/bin/lynis-gate.sh
# Kullanım
sudo /usr/local/bin/lynis-gate.sh 75
6.3 Özel Lynis Profili Oluşturma
Her sunucu aynı amaçla kullanılmaz. Bir web sunucusu, veritabanı sunucusu ve CI/CD runner'ı için farklı güvenlik beklentileriniz olacak. Lynis'in özel profil özelliğiyle her sunucu rolüne uygun test setleri tanımlayabilirsiniz:
# Özel profil dosyası oluşturma
sudo tee /etc/lynis/web-server.prf <<EOF
# Web sunucusu profili
# Gereksiz testleri atlama
skip-test=USB-1000
skip-test=STRG-1840
skip-test=BANN-7126
# Minimum sıkılaştırma puanı beklentisi
config:min-hardening-index:75
# Denetçi bilgisi
auditor:Web Sunucu Denetimi
EOF
# Özel profil ile tarama
sudo lynis audit system --profile /etc/lynis/web-server.prf
7. Pratik Örnek: Puanı 56'dan 82'ye Çıkarma
Tamam, yeterince teori konuştuk. Şimdi adım adım bir Ubuntu 24.04 LTS sunucusunda sıkılaştırma puanını yükseltmenin pratikte nasıl göründüğüne bakalım:
# Adım 1: Başlangıç taraması
sudo lynis audit system -Q
# Çıktı: Hardening index: 56
# Adım 2: SSH sıkılaştırma (bölüm 4.2'deki ayarları uygulayın)
sudo nano /etc/ssh/sshd_config
sudo systemctl restart sshd
# Yeni puan: ~63 (+7)
# Adım 3: sysctl parametreleri (bölüm 4.3'teki dosyayı oluşturun)
sudo sysctl --system
# Yeni puan: ~69 (+6)
# Adım 4: auditd kurulum ve yapılandırma
sudo apt install auditd
sudo systemctl enable --now auditd
# Yeni puan: ~73 (+4)
# Adım 5: Dosya izinleri düzeltme
sudo chmod 600 /etc/crontab
sudo chmod 700 /etc/cron.d /etc/cron.daily /etc/cron.hourly /etc/cron.weekly /etc/cron.monthly
# Yeni puan: ~76 (+3)
# Adım 6: Parola politikaları ve gereksiz servisler
sudo apt install libpam-pwquality
sudo systemctl disable --now avahi-daemon cups bluetooth 2>/dev/null
# Yeni puan: ~79 (+3)
# Adım 7: USB depolama ve gereksiz modülleri kara listeye alma
echo "install usb-storage /bin/false" | sudo tee /etc/modprobe.d/disable-usb-storage.conf
echo "install cramfs /bin/false" | sudo tee -a /etc/modprobe.d/disable-filesystems.conf
echo "install freevxfs /bin/false" | sudo tee -a /etc/modprobe.d/disable-filesystems.conf
# Yeni puan: ~82 (+3)
# Son doğrulama
sudo lynis audit system -Q
# Çıktı: Hardening index: 82
Sistematik bir yaklaşımla 30 dakikadan kısa bir sürede puanınızı 26 puan artırmanız gerçekten mümkün. Her adım kendi başına küçük bir katkı sağlıyor gibi görünse de toplamda ciddi bir fark yaratıyor. Önemli olan doğru sırayla, adım adım ilerlemek.
8. Sık Yapılan Hatalar ve Dikkat Edilmesi Gerekenler
Bu bölümü okumanızı özellikle rica ediyorum, çünkü buradaki hatalar gerçekten sık yapılıyor:
- Root olmadan çalıştırmak: Lynis'i sudo olmadan çalıştırmak birçok kritik testi atlar ve yanıltıcı düşük puanlar üretir. Her zaman
sudo lynis audit systemkullanın. - Puanı körü körüne takip etmek: 100 puana ulaşmak bir hedef olmamalı. Her öneri, sisteminizin rolü bağlamında değerlendirilmeli. Bir geliştirme sunucusunda gcc'yi kaldırmak puan artırır ama işlevselliği bozar.
- Tek seferlik denetim yapmak: Güvenlik denetimi sürekli bir süreç. Paket güncellemeleri, yapılandırma değişiklikleri ve yeni servis dağıtımları puanınızı değiştirebilir. Mutlaka düzenli taramalar kurun.
- Üretim ortamında test etmeden uygulama: Özellikle CIS Seviye 2 kontrollerini doğrudan üretim ortamına uygulamayın. Önce test ortamında doğrulayın, sonra üretimde uygulayın. Bu konuda acele etmeyin.
- Puan dalgalanmalarını sorun sanmak: Lynis gerçek zamanlı sistem durumunu tarar. Bir proses başlayıp durursa, art arda yapılan taramalarda 1-2 puanlık sapmalar tamamen normal.
Sıkça Sorulan Sorular (SSS)
Lynis ücretsiz mi, kurumsal ortamda kullanılabilir mi?
Evet, Lynis'in topluluk sürümü GPL lisansı altında tamamen ücretsiz ve açık kaynaklı. Kurumsal ortamlarda özgürce kullanabilirsiniz. CISOfy ayrıca merkezi yönetim paneli, uyumluluk raporlama ve destek içeren ücretli bir Lynis Enterprise sürümü de sunuyor. Çoğu kuruluş için topluluk sürümü fazlasıyla yeterli; Enterprise sürümü ise büyük ölçekli dağıtımlarda merkezi izleme ihtiyacı olan ekipler için tasarlanmış.
Lynis taraması sistemi yavaşlatır mı veya servisleri etkiler mi?
Hayır. Lynis salt okunur bir denetim aracı — sisteminizde hiçbir değişiklik yapmaz, sadece mevcut yapılandırmayı tarar ve raporlar. Tarama sırasında CPU ve disk kullanımı minimum düzeyde ve genellikle 2-5 dakika içinde tamamlanıyor. Üretim sunucularında bile güvenle çalıştırabilirsiniz.
Lynis ile CIS-CAT arasındaki fark nedir?
CIS-CAT, Center for Internet Security'nin resmi denetim aracı ve CIS Benchmark'larına tam uyumluluğu kontrol ediyor. Lynis ise daha geniş kapsamlı — CIS kontrollerinin çoğunu kapsıyor ama ek olarak rootkit tespiti, yazılım zafiyet kontrolü ve genel sistem sağlığı testleri de yapıyor. Resmi uyumluluk sertifikasyonu gerekiyorsa CIS-CAT, günlük operasyonel güvenlik denetimi için Lynis daha uygun.
Docker konteynerlerinde Lynis çalıştırılabilir mi?
Evet, çalıştırılabilir. Git ile klonlayıp doğrudan konteyner içinde çalıştırabilir veya CI/CD pipeline'ına entegre ederek dağıtım öncesi güvenlik taraması yapabilirsiniz. Ama şunu bilin: konteyner içinde bazı testler (örneğin çekirdek parametreleri) ana makine düzeyinde olduğu için atlanabiliyor.
Lynis puanım düşük çıktı, sunucum güvensiz mi?
Düşük puan, uygulanmamış sıkılaştırma tedbirlerinin varlığını gösteriyor ama doğrudan "güvensiz" anlamına gelmiyor. Varsayılan yapılandırmayla kurulan bir Ubuntu sunucusu genellikle 55-65 puan alır — bu dağıtımın güvensiz olduğunu değil, ek sıkılaştırma tedbirleri uygulanmadığını gösterir. Önemli olan puanın kendisi değil, uyarıları önceliklendirip sistematik olarak gidermeniz.