Lynis ile Linux Güvenlik Denetimi: Kapsamlı Rehber
Lynis Nedir ve Neden Kullanılmalı?
Linux sunucu güvenliği, modern sistem yöneticilerinin en çok önem vermesi gereken konulardan biridir. Sürekli gelişen tehdit ortamında, sistemlerinizi düzenli olarak denetlemek ve güçlendirmek kritik öneme sahiptir. Lynis, bu noktada devreye giren açık kaynaklı bir güvenlik denetim aracıdır. CISOFY tarafından geliştirilen Lynis, Linux, macOS ve UNIX tabanlı sistemlerde kapsamlı güvenlik taramaları gerçekleştirir.
Lynis'in temel özelliklerinden biri, agentless çalışmasıdır. Herhangi bir aracı kurulumu gerektirmeden, doğrudan hedef sistemde çalışır ve filesystem üzerindeki konfigürasyonları okuyarak güvenlik durumunu değerlendirir. CVE veritabanı kullanmaz; bunun yerine, konfigürasyon kalitesini doğrudan host üzerinde test eder. Bu yaklaşım, taramanın çok hızlı gerçekleşmesini sağlar ve genellikle 60-120 saniye içinde tamamlanır.
Araç, 300'den fazla güvenlik kontrolü gerçekleştirir ve 60'tan fazla kategoriyi kapsar. Kimlik doğrulama, ağ güvenliği, firewall kuralları, depolama, logging, SSH yapılandırması, kriptografi, kernel hardening ve malware tespiti gibi geniş bir yelpazede kontrol yapar. Her test sonucunda PASS, WARNING veya SUGGESTION döndürülür ve genel bir Hardening Index skoru üretilir.
Lynis'in Avantajları
Lynis'i diğer güvenlik araçlarından ayıran birkaç temel özellik bulunmaktadır. Öncelikle, hafif bir araçtır ve kurulum gerektirmeden çalıştırılabilir. Sadece arşivi açıp çalıştırmak yeterlidir. İkinci olarak, açık kaynak kodludur ve topluluk tarafından aktif olarak geliştirilmektedir. Üçüncü olarak, kapsamlı raporlama özellikleri sunar ve SIEM entegrasyonu için uygun formatlarda çıktı üretebilir.
Araç, özellikle CIS Benchmark ve STIG uyumluluk analizlerinde tercih edilmektedir. Penetrasyon test uzmanları, sistem yöneticileri ve uyumluluk ekipleri tarafından yaygın olarak kullanılmaktadır. Raporlardaki öneriler, düzeltilmesi gereken güvenlik açıklarını öncelik sırasına göre listeler, böylece kaynaklarınızı en kritik sorunlara yönlendirebilirsiniz.
Lynis Kurulum Yöntemleri
Lynis'i kurmanın birden fazla yolu vardır. İşletim sisteminize göre en uygun yöntemi seçebilirsiniz. Her yöntemde de araç aynı işlevselliği sunar.
Debian ve Ubuntu'da Kurulum
Debian tabanlı sistemlerde Lynis'i kurmak oldukça basittir. APT paket yöneticisini kullanarak doğrudan kurabilirsiniz:
sudo apt update
sudo apt install lynis -y
Bu yöntem, sistem paketlerini otomatik olarak yönetir ve güncellemeleri standart paket güncelleme süreciyle almanızı sağlar. Kurulumdan sonra versiyon kontrolü yapmak iyi bir uygulamadır:
lynis show version
Paket deposunda bulunan versiyonu her zaman en güncel versiyon olmayabileceğini unutmayın. En son özellikler ve güvenlik düzeltmeleri için GitHub'dan doğrudan indirmeyi de düşünebilirsiniz.
Git ile Kurulum
En güncel Lynis versiyonunu kullanmak istiyorsanız, GitHub deposundan klonlayabilirsiniz:
cd /opt
sudo git clone https://github.com/cisofy/lynis.git
cd lynis
sudo ./lynis audit system
Bu yöntem, en son özelliklere ve düzeltmelere erişmenizi sağlar. Ancak, manuel güncelleme sorumluluğu size aittir. Düzenli olarak git pull komutuyla güncellemeleri kontrol etmeniz önerilir.
RHEL ve CentOS'ta Kurulum
Red Hat tabanlı sistemlerde EPEL deposunu kullanarak kurulum yapabilirsiniz:
sudo dnf install epel-release -y
sudo dnf install lynis -y
CentOS 7 ve earlier versiyonlarda yum kullanabilirsiniz:
sudo yum install epel-release -y
sudo yum install lynis -y
Kurulum tamamlandıktan sonra, bağımlılık kontrolü için debsums aracını kurmanız önerilir:
sudo apt install debsums
Bu araç, sistem dosyalarının bütünlüğünü doğrulamak için Lynis tarafından kullanılır.
İlk Sistem Denetimi Nasıl Yapılır?
Lynis'i kurduktan sonra, ilk sistem denetimini çalıştırmak oldukça basittir. Denetim, root yetkisi gerektirir çünkü ayrıcalıklı dosyaları okuması gerekir.
Temel Tarama Komutu
En yaygın kullanılan tarama komutu şu şekildedir:
sudo lynis audit system
Bu komut, tüm etkin testleri karşı sisteminizde çalıştırır. Tarama genellikle 60-180 saniye sürer. Komutu çalıştırırken kesintiye uğratmamaya özen gösterin.
Tarama sırasında, her test kategorisi için canlı çıktı görürsünüz. Boot loader, filesystem, kernel, authentication, networking, printers, mail, web server, databases ve daha birçok kategori ekranınızda belirecektir. Her test için OK, WARNING veya SUGGESTION işaretleri göreceksiniz.
Denetçi Adı Ekleme
Raporlarda kendi isminizi veya kurum adınızı eklemek için --auditor bayrağını kullanabilirsiniz:
sudo lynis audit system --auditor "Admin Adı"
Bu bilgi, oluşturulan raporlarda yer alır ve birden fazla sistemi denetlerken kimlik tespitini kolaylaştırır.
Hızlı Tarama Modu
Etkileşimli olmayan ortamlarda veya cron işlerinde çalıştırırken, --cronjob bayrağını kullanın:
sudo lynis audit system --cronjob
Bu bayrak, renkleri, satır kırılmalarıı ve diğer estetik öğeleri devre dışı bırakarak cron dostu bir çalışma sağlar. --quiet bayrağı ile birleştirildiğinde, ekrana hiçbir çıktı yazdırmaz:
sudo lynis audit system --cronjob --quiet
Hardening Index ve Sonuçları Yorumlama
Lynis'in en değerli özelliklerinden biri, Hardening Index skorudur. Bu skor, 0-100 arasında bir değer alır ve geçirilen testlerin uygulanabilir testlere oranını temsil eder.
Skor Kategorileri
Genel olarak, aşağıdaki skor aralıklarına göre sisteminizi değerlendirebilirsiniz. Yeni kurulmuş minimal bir sunucu genellikle 55-65 arasında bir skor alır. Bu, temel güvenlik yapılandırmalarının eksik olduğunu gösterir.
Ortak hardening adımları uygulandıktan sonra, skorun 75-85 aralığına yükselmesi beklenir. CIS Level 2 güçlendirilmiş sistemler genellikle 80'in üzerinde skor alır. 100/100 skor elde etmek, özellikle tek bir sunucu çalıştırıyorsanız, genellikle gereksiz maliyet ve çalışma gerektirir.
Skorun 65'in altında olması, sunucunuzda ciddi güvenlik zayıflıkları olduğunu gösterir ve derhal müdahale gerektirir.
Bulguların Önceliklendirilmesi
Lynis, üç tür bulgu döndürür:
WARNING (Uyarı): Bu, aktif bir güvenlik riskidir ve derhal düzeltilmesi gerekir. Örneğin, root girişine izin veren SSH yapılandırması veya boş şifre hesapları.
SUGGESTION (Öneri): Bu, güçlendirme iyileştirmesidir ve mümkün olduğunda düzeltilmelidir. Zorunlu bir risk olmasa da, güvenlik durumunuzu artırır.
INFO (Bilgi): Bu, bilgilendirici bir bulgudur ve anında eylem gerektirmez. Genellikle sisteminiz hakkında faydalı bilgiler içerir.
Bulguları Görüntüleme
Tarama sonrasında uyarıları görüntülemek için:
lynis show warnings
Önerileri görüntülemek için:
lynis show suggestions
Belirli bir testin detaylarını görmek için test ID'sini kullanabilirsiniz:
sudo lynis show details SSH-7408
Bu komut, SSH-7408 testinin neden başarısız olduğunu ve nasıl düzeltileceğini detaylı olarak açıklar.
Rapor Dosyaları ve Log Yönetimi
Lynis, her çalıştırmadan sonra iki önemli dosya oluşturur. Bu dosyalar, sonuçların analizi ve karşılaştırmalı değerlendirmeler için kritik öneme sahiptir.
Lynis Log Dosyası
Detaylı çıktı, /var/log/lynis.log dosyasına yazılır:
grep "Hardening index" /var/log/lynis.log
Bu dosya, her testin ayrıntılı sonuçlarını içerir ve neden bir testin başarısız olduğunu hata ayıklamak için kullanışlıdır.
Rapor Veri Dosyası
Machine-okunabilir format, /var/log/lynis-report.dat dosyasında saklanır:
grep 'warning\|suggestion' /var/log/lynis-report.dat
Bu format, SIEM sistemlerine entegrasyon ve farklı çalıştırmalar arasında karşılaştırma için idealdir. Her satır key=value çiftleri içerir.
Baz Çizgisi Oluşturma
İlk taramanızdan sonra, sonuçları baz çizgisi olarak kaydetmeniz önerilir:
mkdir -p /var/log/lynis
sudo lynis audit system --quiet 2>&1 | tee /var/log/lynis/baseline-$( date +%Y%m%d_%H%M%S ).log
Bu baz çizgisi, gelecekteki taramalarla karşılaştırarak konfigürasyon kaymasını tespit etmenizi sağlar.
En Yaygın Bulgu ve Çözümleri
Lynis taramalarında sıkça karşılaşılan bulgular ve bunların nasıl düzeltileceği aşağıda açıklanmaktadır.
SSH Sertleştirme
SSH yapılandırması, en sık rastlanan güvenlik sorunlarından biridir. SSH-7408 testi, aşağıdaki önerilerde bulunur:
sudo nano /etc/ssh/sshd_config
Aşağıdaki ayarları yapın:
Protocol 2
PermitRootLogin no
MaxAuthTries 3
PasswordAuthentication no
AllowUsers your_admin_user
Bu değişiklikleri yaptıktan sonra SSH servisini yeniden başlatın:
sudo systemctl restart sshd
PasswordAuthentication'ı kapatmadan önce, SSH anahtarlarınızın düzgün çalıştığından emin olun. Aksi takdirde, sunucunuza erişimizi kaybedebilirsiniz.
Kernel Hardening
Kernel parametreleri, sistemin temel güvenlik durumunu belirler. KRNL-6000 testi önerileri için /etc/sysctl.conf dosyasını düzenleyin:
sudo nano /etc/sysctl.conf
Aşağıdaki parametreleri ekleyin:
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.log_martians = 1
kernel.randomize_va_space = 2
Değişiklikleri hemen uygulamak için:
sudo sysctl -p
Bu ayarlar, IP yönlendirme filtrelemesini etkinleştirir, broadcast ping'lerini yok sayar, şüpheli paketleri loglar ve address space randomization'ı etkinleştirir.
PAM Yapılandırması
Pluggable Authentication Modules, kimlik doğrulama politikalarını yönetir. Parola politikası için /etc/pam.d/common-password dosyasını düzenleyin:
sudo nano /etc/pam.d/common-password
minlen parametresini artırın veya difok parametresini ekleyin:
password requisite pam_pwquality.so minlen=12 difok=3
Bu ayarlar, minimum 12 karakter uzunluğunda ve en az 3 karakter farklı parolalar gerektirir.
Dosya Sistemi İzleme
Dosya bütünlüğü izleme, yetkisiz değişiklikleri tespit etmek için kritiktir. AIDE veya benzeri bir dosya bütünlüğü izleme aracı kurmanız önerilir:
sudo apt install aide
sudo aideinit
AIDE'yi düzenli olarak çalıştırarak sistem dosyalarınızda yetkisiz değişiklikleri kontrol edin.
Otomatik Tarama Nasıl Kurulur?
Düzenli güvenlik taramaları, güvenlik durumunuzu sürekli izlemek için kritiktir. Lynis taramalarını otomatikleştirmek için iki ana yöntem vardır: cron ve systemd timer.
Cron ile Otomatik Tarama
Cron, en yaygın kullanılan zamanlama aracıdır. Root crontab'ınızı düzenleyin:
sudo crontab -e
Aşağıdaki satırı ekleyin:
0 2 * * * /usr/sbin/lynis audit system --cronjob --quiet > /var/log/lynis-cron.log 2>&1
Bu yapılandırma, her gün saat 02:00'de Lynis'i çalıştırır ve çıktıyı log dosyasına yazar.
Haftalık tarama için:
0 3 * * 0 /usr/sbin/lynis audit system --cronjob --quiet > /var/log/lynis-weekly.log 2>&1
Aylık tarama için:
0 4 1 * * /usr/sbin/lynis audit system --cronjob --quiet > /var/log/lynis-monthly.log 2>&1
Systemd Timer ile Otomatik Tarama
Systemd timer, cron'a göre daha güvenilir ve esnek zamanlama seçenekleri sunar. Önce servisi oluşturun:
sudo nano /etc/systemd/system/lynis-audit.service
Servis dosyasının içeriği:
[Unit]
Description=Lynis Security Audit
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/lynis audit system --cronjob --quiet
StandardOutput=journal
StandardError=journal
Şimdi timer dosyasını oluşturun:
sudo nano /etc/systemd/system/lynis-audit.timer
Timer yapılandırması:
[Unit]
Description=Run Lynis Security Audit Daily
[Timer]
OnCalendar=*-*-* 03:00:00
RandomizedDelaySec=1800
Persistent=true
[Install]
WantedBy=timers.target
RandomizedDelaySec parametresi, thundering herd sorununu önlemek için rastgele gecikme ekler. Persistent=true, timer kaçırıldığında (sistem down iken) bir sonraki çalıştırmada telafi eder.
Systemd'i yeniden yükleyin ve timer'ı etkinleştirin:
sudo systemctl daemon-reload
sudo systemctl enable --now lynis-audit.timer
Timer durumunu kontrol edin:
sudo systemctl list-timers | grep lynis
Lynis ve Diğer Güvenlik Araçları
Lynis, kapsamlı bir güvenlik denetimi sunsa da, tek başına tüm güvenlik ihtiyaçlarınızı karşılamaz. Farklı güvenlik katmanlarını kapsamak için diğer araçlarla birlikte kullanılmalıdır.
Rkhunter ile Karşılaştırma
Rkhunter, bilinen rootkit ve backdoor'ları tespit etmeye odaklanır. Dosya hash'lerini bilinen-iyi baz çizgisiyle karşılaştırır. Lynis ise konfigürasyon kalitesini değerlendirir. Birlikte kullanıldıklarında, hem runtime tehditleri hem de yapılandırma zayıflıkları tespit edilmiş olur.
ClamAV ile Karşılaştırma
ClamAV, bilinen malware imzalarına karşı dosya içeriğini tarar. Web shell'leri, infected PHP dosyaları ve email-borne tehditleri tespit eder. Lynis ise bu tehditleri tespit etmez, sadece konfigürasyon açıklarını bulur.
Kapsamlı Güvenlik Stratejisi
En iyi güvenlik yaklaşımı, birden fazla aracı entegre etmektir. Otomatik güvenlik yamaları için unattended-upgrades kullanın. Brute-force saldırılarına karşı fail2ban kurun. Malware taraması için ClamAV veya benzeri bir antivirüs aracı kullanın. Dosya bütünlüğü için AIDE kurun. Ve düzenli olarak Lynis taraması çalıştırın.
Lynis Kullanımında En İyi Uygulamalar
Lynis'ten maksimum verim almak için aşağıdaki en iyi uygulamaları izleyin.
Üretim Öncesi Test
Herhangi bir hardening değişikliğini üretim ortamına uygulamadan önce, staging ortamında test edin. sysctl veya PAM yapılandırması gibi bazı değişiklikler, çalışan servisleri etkileyebilir. Kernel hardening değişikliklerinin IP forwarding'i yanlışlıkla devre dışı bırakabileceğini unutmayın.
Baz Çizgisi Karşılaştırması
Önemli değişiklikler yaptıktan sonra, Lynis'i tekrar çalıştırın ve sonuçları baz çizgisiyle karşılaştırın. Bu, konfigürasyon kaymasını hızlı bir şekilde tespit etmenizi sağlar.
Düzenli Tarama Schedule'ı
Lynis'i sadece kurulum zamanında çalıştırmayın. Aylık veya haftalık olarak düzenli tarama planlayın. Skorun zamanla düşmesi, bir paketin kaldırıldığını, bir servisin yeniden etkinleştirildiğini veya bir izinin manuel olarak değiştirildiğini gösterebilir.
Sonuçların Önceliklendirilmesi
Tüm uyarıları ve önerileri aynı anda ele almaya çalışmayın. Önce WARNING kategorisindeki bulguları düzeltin. Ardından, yüksek etkili SUGGESTION'lara odaklanın. INFO bulguları genellikle göz ardı edilebilir.
Raporlama ve Dokümantasyon
Tarama sonuçlarını düzenli olarak arşivleyin. Bu, denetim süreçlerinde kanıt olarak kullanılabilir ve güvenlik durumunuzun zaman içindeki evrimini gösterir.
Sonuç
Lynis, Linux sunucu güvenliğini değerlendirmek için güçlü ve esnek bir araçtır. Kolay kurulumu, hızlı taraması ve kapsamlı raporlaması sayesinde, sistem yöneticileri ve güvenlik profesyonelleri için vazgeçilmez bir araç haline gelmiştir.
Aracın sınırlamalarını anlamak önemlidir. Lynis, konfigürasyonları denetler, paket güvenlik açıklarını taramaz. Bunun için ayrı araçlar kullanmanız gerekir. Ancak, düzenli Lynis taramaları, sisteminizin güvenlik durumunu sürekli izlemenize ve iyileştirmeler yapmanıza olanak tanır.
Hardening index skoru 80+ hedefleyin ve bu seviyeyi korumak için düzenli taramalar planlayın. Unutmayın, güvenlik tek seferlik bir iş değil, sürekli bir süreçtir. Lynis, bu süreci otomatikleştiren ve ölçülebilir kulanmanıza yardımcı olan değerli bir müttefiktir.