Lynis ve OpenSCAP: hangisi ne için?
| Özellik | Lynis | OpenSCAP |
|---|---|---|
| Yaklaşım | Sistem üzerinde çalışan, ajansız güvenlik denetimi | SCAP içeriğine (XCCDF/OVAL) göre kural tabanlı değerlendirme |
| Çıktı | Uyarılar, öneriler ve sertleştirme puanı | Kural başına geçti/kaldı sonucu, HTML rapor, ARF sonuç dosyası |
| Standart | Kendi test seti; ISO27001, PCI-DSS, HIPAA gibi uyumluluk testleri de anılıyor | CIS, OSPP, PCI-DSS, STIG gibi ComplianceAsCode profilleri |
| Düzeltme | Öneri verir, kendisi düzeltmez | Bash betiği veya Ansible playbook üretebilir, isterse uygular |
| Lisans | GPLv3 (Enterprise sürümü ayrı) | Açık kaynak |
Pratik yaklaşım: Lynis ile ilk turda göze çarpan eksikleri hızla bulun, OpenSCAP ile de denetçiye veya ekibe verilebilecek standart bir rapor üretin.
Lynis kurulumu ve ilk tarama
Lynis paket yöneticisiyle ya da doğrudan Git'ten alınabilir; Git yönteminde derleme gerekmez:
CODE TERMINAL
# Debian / Ubuntu
sudo apt-get install lynis
# Git ile
git clone https://github.com/CISOfy/lynis
cd lynis
sudo ./lynis audit systemPaketle kurulduysa komut lynis audit system olarak çalışır. Tam bir denetim için root olarak çalıştırın. Sürüm bilgisi için lynis update info komutunu kullanın. Sık kullanılan seçenekler:
- --quick (veya -Q): Hata dışında kullanıcı girişi beklemez.
- --cronjob: Cron altında çalıştırmak içindir, hızlı kipi de kapsar.
- --pentest: Yetkisiz kullanıcıyla, sızma testi bakış açısıyla tarama yapar.
- --no-colors: Renksiz çıktı verir.
- --auditor "Ad Soyad": Raporda denetçi adını belirtir.
Lynis iki dosya üretir: ayrıntılı günlük /var/log/lynis.log (her taramada yenilenir) ve makine tarafından okunabilir /var/log/lynis-report.dat.
Lynis sonuçlarını okuma
Çıktıdaki sonuçlar iki gruba ayrılır. Belgelere göre uyarılar genellikle gerçekten aksiyon gerektiren bulgulardır, öneriler ise iyileştirme alanlarıdır ve genellikle uyarılardan çok daha fazladır. Belgeler ayrıca, uyarı olmaması ve çok sayıda öneri bulunmasının sistemin düzgün korunduğu anlamına gelmediğini vurgular. Her bulgunun köşeli parantez içinde bir test kimliği bulunur (örneğin SSH-7440); ayrıntı için bu kimliği /var/log/lynis.log içinde aratın.
Rapor dosyasından uyarı, öneri ve sertleştirme puanını ayıklamak için:
CODE TERMINAL
sudo grep -E '^(warning|suggestion)\[\]' /var/log/lynis-report.dat
sudo grep '^hardening_index' /var/log/lynis-report.datLynis profillerini özelleştirme
Varsayılan profil default.prf'dir; kendi ayarlarınızı bu dosyayı değiştirmeden /etc/lynis/custom.prf içine yazın. Geçerli profilleri ve ayarları görmek için:
CODE TERMINAL
sudo touch /etc/lynis/custom.prf
lynis show profiles
lynis show settingsBilinçli olarak kabul ettiğiniz bir bulguyu taramadan çıkarmak için custom.prf içine skip-test satırı ekleyin. Lynis'in varsayılan profilindeki örneklerde test kimliğinin tamamı ya da yalnızca bir alt testi belirtilebilir:
CODE TERMINAL
skip-test=SSH-7408
skip-test=SSH-7408:permitrootloginNeden atladığınızı yorum satırıyla kaydedin; aksi halde bir yıl sonra kimse o kararı hatırlamaz.
OpenSCAP kurulumu ve içerik
OpenSCAP taraması iki parça ister: oscap aracı ve taranacak SCAP içeriği. İçeriği ComplianceAsCode (SCAP Security Guide) projesi üretir; proje Ubuntu, Debian, RHEL, Fedora ve SLES için içerik sunar.
CODE TERMINAL
# RHEL 8+ / Fedora
sudo dnf install openscap-scanner scap-security-guide
# Debian / Ubuntu (tarayıcı)
sudo apt install libopenscap8Debian tarafında içerik paketleri ssg-debian, ssg-debderived, ssg-nondebian ve ssg-applications adlarıyla dağıtılır; hazır paket yoksa proje sürüm sayfasındaki ZIP dosyalarından hazır veri akışlarını alabilir ya da ./build_product betiğiyle kendiniz üretebilirsiniz. Veri akışları ssg-rhel8-ds.xml gibi adlandırılır. Bir dosyadaki profilleri görmek için:
CODE TERMINAL
oscap info /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xmlTarama ve rapor üretme
CODE TERMINAL
sudo oscap xccdf eval \
--profile xccdf_org.ssgproject.content_profile_ospp \
--results-arf arf.xml --report report.html \
/usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xmlKomut ARF sonuç dosyasını ve insan okunabilir HTML raporunu üretir. Başlıca sonuç durumları: pass (kural sağlanıyor), fail (sağlanmıyor), error (değerlendirme tamamlanamadı), unknown, notapplicable (kural hedefe uygulanamaz), notchecked (kontrol tanımlı değil) ve fixed (başarısız kural düzeltildi). Çıkış kodu otomasyon için önemlidir: tüm kurallar geçerse 0, değerlendirme sırasında hata olursa 1, en az bir kural fail veya unknown olursa 2 döner. Yani 2, "tarama başarılı ama sistem uyumsuz" demektir.
Düzeltmeleri güvenle uygulama
OpenSCAP taramadan sonra düzeltme üretebilir. Önce üretin, okuyun, test ortamında deneyin, sonra üretimde uygulayın:
CODE TERMINAL
# Bash betiği olarak
sudo oscap xccdf generate fix --fix-type bash \
--output duzelt.sh --result-id results.xml
# Ansible playbook olarak
oscap xccdf generate fix --profile ospp --fix-type ansible \
/usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml > playbook.ymlTarama sırasında doğrudan düzeltmek için --remediate seçeneği vardır. Kılavuz, düzeltmeyi sonraya bırakmak için iki adımlı yolu da anlatır: önce sonuçları kaydedin, sonra oscap xccdf remediate --results sonuc.xml results.xml ile uygulayın. Bazı düzeltmeler SSH erişimini veya servis ayarlarını değiştirebileceğinden, canlı sunucuda otomatik düzeltmeyi doğrudan çalıştırmayın.
Profili ihtiyaca göre uyarlama (tailoring)
Her kural her ortama uymaz. Kılavuzdaki autotailor aracıyla bir profilden kural çıkarıp özel bir profil üretebilir, taramada --tailoring-file ile kullanabilirsiniz:
CODE TERMINAL
autotailor --unselect RULE_ID --output /tmp/tailoring.xml \
--new-profile-id custom ssg-rhel8-ds.xml osppKural dışı bırakırken gerekçeyi dokümante edin; uyumluluk raporunda "neden atlandı" sorusunun yanıtı hazır olmalı.
Uzaktan ve konteyner taraması
Tek bir yönetim makinesinden sunucuları taramak için oscap-ssh, konteyner imajları için oscap-podman kullanılır:
CODE TERMINAL
oscap-ssh [email protected] 22 xccdf eval --profile ospp \
--report report.html /usr/share/xml/scap/ssg/content/ssg-fedora-ds.xmlSürekli denetim için kontrol listesi
- Lynis'i cron ile --cronjob kipinde çalıştırın; her turun sertleştirme puanını ve uyarı sayısını kaydedip zamanla karşılaştırın.
- OpenSCAP çıkış kodunu izleyin; 2 dönerse HTML raporu ilgili ekibe iletin.
- Yeni sunucu imajı üretirken tarama yapıp raporu imaj sürümüyle birlikte saklayın.
- Atlanan test ve kural listesini (custom.prf, tailoring dosyası) sürüm kontrolünde tutun.
- Düzeltmeleri önce test sunucusunda uygulayın, SSH ve servis erişimini doğrulayın, sonra yayına alın.
- Raporlar sistem yapılandırmanızı ayrıntılı gösterir; sonuç dosyalarını yalnızca yetkili ekiplerle paylaşın.
Lynis ve OpenSCAP birbirinin alternatifi değil, tamamlayıcısıdır: biri size neyi düzeltmeniz gerektiğini hızlıca söyler, diğeri sonucu bir standarda göre kanıtlanabilir hâle getirir.
Kaynaklar
- Lynis belgeleri: https://cisofy.com/documentation/lynis/get-started/
- Lynis profilleri: https://cisofy.com/documentation/lynis/configuration/
- Lynis GitHub: https://github.com/CISOfy/lynis
- OpenSCAP kullanıcı kılavuzu: https://static.open-scap.org/openscap-1.3/oscap_user_manual.html
- ComplianceAsCode: https://github.com/ComplianceAsCode/content
TR Siber Ekibi