Lynis

Ubuntu Türkiye Wiki sitesinden
Gezinti kısmına atla Arama kısmına atla
Lynis
Geliştiren(ler): CISOfy
İşletim sistemi: Linux, Mac OS X
Türü: Sistem denetleme aracı
Lisansı: GNU Genel Kamu Lisansı
Resmi sitesi: http://cisofy.com/lynis

Lynis, Linux ve Unix temelli sistemler için bir sistem bütünlük tarama programıdır. Sistemimizin çalışmasını sağlayan servislerin ve hizmetlerin entegre ve hatasız çalışıp çalışmadığı Lynis ile kontrol edilebilir. Başta Linux sistem yöneticileri olmak üzere Linux kullanıcıları olarak, kullandığımız işletim sisteminin güvenliğini ve varsa hatalarını takip ederek bulmak konusunda başlıca sorumluluğun başkalarında değil bizde olduğunun farkında olmalıyız.

Program, GNU Genel Kamu Lisansı ile dağıtılmaktadır ve komut satırı üzerinden çalışmaktadır. Şirketler için ticari sürümü de bulunan programın tüm sisteminizi tarayıp sonuç raporunu .log dosyası şeklinde bilgisayarınıza kaydettiğini bilmelisiniz. Bulunan HATA ve TAVSİYELER konusunda ticari sürümde doğrudan çözümler sunulduğu halde ücretsiz sürümde hataları bu .log dosyası içerisinden kendiniz bulup, gerekli tedbiri de kendiniz almak durumundasınız. Ancak bunu yapmak o kadar da zor değil.

Kurulum

Yazılımı, Ubuntu uygulama mağazasında aratıp yükleyebilirsiniz.

Dialog-warning (32px).png Aşağıdaki anlatılanlar, programın 1.6.4 sürümüne göre anlatılmıştır. Yeni sürümlerde aşağıdaki bazı komutlar çalışmayabilir.

Tarama

Programı çalıştırarak ev bilgisayarınızı veya sunucuyu taramak için aşağıdaki komutlar kullanılır.

Görevi: lynis programının yerleştirildiği klasöre girilir.
cd /opt/lynis
Görevi: Tüm kontrol edilebilir başlıklarda yönetici olarak tarama gerçekleştirilir.
sudo ./lynis --check-all -Q
Dialog-warning (32px).png Aşağıda tarama esnasında uçbirim görünümünün bir parçasını görebilirsiniz.
[+] Boot and services
------------------------------------
  - Checking boot loaders
    - Checking presence GRUB2                                 [ FOUND ]
      - Checking for password protection                      [ WARNING ]
  - Check services at startup (rc2.d)                         [ DONE ]
    Result: found 22 services
  - Check startup files (permissions)                         [ OK ]

[+] Kernel
------------------------------------
  - Checking default run level                                [ RUNLEVEL 2 ]
  - Checking CPU support (NX/PAE)
    CPU support: PAE and/or NoeXecute supported               [ FOUND ]
  - Checking kernel version and release                       [ DONE ]
  - Checking kernel type                                      [ DONE ]
  - Checking loaded kernel modules                            [ DONE ]
      Found 73 active modules
  - Checking Linux kernel configuration file                  [ FOUND ]
  - Checking default I/O kernel scheduler                     [ FOUND ]
  - Checking for available kernel update                      [ OK ]
  - Checking core dumps configuration                         [ DISABLED ]

Tarama aşağıdaki tüm başlıklarda sisteminizi kontrol edecektir.

  • Sistem Araçları: Sistemdeki ikilik (binary) dosyaları
  • Boot ve Servisler: Açılış yükleyicisi, başlangıç hizmetleri
  • Çekirdek: Çalışma seviyesi (run level), yüklenmiş modüller, çekirdek ayarları
  • Hafıza ve İşlemler: zombi işlemler, G/Ç bekleyen işlemler
  • Kullanıcılar, Gruplar, Yetkilendirme: Grup Kimlikleri, sudo Yetkilileri, Parola süreleri
  • Kabuklar, Terminaller
  • Dosya Sistemleri: Bağlanma noktaları, /tmp dosyaları, kök (root) dosya sistemi
  • Veri Depolarıo: usb-kayıt yerleri, firewire ohci
  • NFS
  • Yazılımlar: isim servileri: DNS arama, BIND
  • Portlar ve Paketler: İstismar edilebilir, zaafiyet içeren/Yükseltilebilir paketler
  • Ağ: İsim sunucularınız, sözde ağ arayüzleri, bağlantılar
  • Yazıcılar: cups ayarları
  • Yazılım: e-posta ve mesajlaşma
  • Yazılım: firewall: iptables, pf
  • Yazılım: Web sunucu: Apache, nginx
  • SSH Desteği: SSH Ayarları
  • SNMP Desteği
  • Varitabanları: MySQL root parolası
  • LDAP Servisleri
  • Yazılım: php: php seçenekleri
  • Squid Desteği
  • Log Dosyaları: syslog yönetici, log klasörleri
  • Güvenli Olmayan Servisler: inetd
  • Banner ve Kimlik Doğrulama
  • Zamanlanmış Görevler: crontab/cronjob, atd
  • Hesap Yönetimi: sysstat data, auditd
  • Zaman ve Senkronizasyon: ntp yöneticisi
  • Kriptolama: SSL sertifika zamanaşımı
  • Sanallaştırma
  • Güvenlik Çerçeve Hizmetleri: AppArmor, SELinux, grsecurity durumu
  • Yazılım: Dosya bütünlüğü
  • Yazılım: Zararlı Tarayıcılar
  • Ev Klasörleri: Kabuk geçmiş dosyaları

Tarama sona erdiğinde tüm sonuçlar oluşturulan /var/log/lynis.log dosyasına kaydedilir.

Sonuçları inceleme

Tarama ve testlerin sonucunda oluşturulan sonuçların yazıldığı /var/log/lynis.log dosyasını incelememiz gerekmektedir. İşte bu işlem ticari sürümde otomatik yapılır iken biz elle yapacağız. Bunun için rapor dosyasını 3 şekilde inceleme imkanımız var;

  1. Tüm dosyayı inceleme
  2. Önemli İkazları İnceleme
  3. Tavsiyeleri İnceleme

Tüm dosyayı inceleme

Bol zamanınız varsa ve tüm analizleri incelemek isterseniz, aşağıdaki komut raporu terminale yazdıracaktır. Terminalin geriye dönük satır ayarlarının oldukça büyük olması gerektiğini (Bende 5000 satır yetmedi) hatırlatayım. Aksi takdirde raporun ilk satırları hafızada kalmayabilir.

Görevi: Rapor dosyası ekranda görüntülenir.
sudo cat /var/log/lynis.log

Önemli ikazları inceleme

Rapor dosyasında önemli ikazlar "Warning" ikazı ile kaydedilir. Dolayısıyla bizim, bu ifadeyi filtreleyerek ilgili satırları ekrana yazdırmamız gerekmektedir. Bunun için aşağıdaki komut çok işe yarayacaktır.

Görevi: Önemli ikazların bulunduğu satırları ekrana listeler.
sudo grep Warning /var/log/lynis.log
a@a:/opt/lynis$ sudo grep Warning /var/log/lynis.log
[18:51:33] Warning: Found one or more vulnerable packages. [PKGS-7392]
[18:51:33] Warning: Couldn't find 2 responsive nameservers [NETW-2705]

Uç birim çıktısında görüldüğü gibi bu sistemde PKGS-7392 ve NETW-2705 kodlu iki adet önemli ve ilgilenilmesi gereken konu bulunmaktadır.

Help-hint 48px.png Tüm dosyayı inceleme komutu ile ilgili dakikaya (18:51:33) gittiğinizde bu ikaz ile ilgili neler yapılabileceği de yazmaktadır.

Tavsiyeleri inceleme

Rapor dosyasında Tavisye edilen konular "Suggestion" ikazı ile kaydedilir. Dolayısıyla bizim, bu ifadeyi filtreleyerek ilgili satırları ekrana yazdırmamız gerekmektedir. Bunun için aşağıdaki komut çok kullanılabilir.

Görevi: Tavsiyelerin bulunduğu satırları ekrana listeler.
sudo grep Suggestion /var/log/lynis.log

Uç birim çıktısı aşağıdaki görünüme benzer olacaktır. Raporların İngilizce olması umarım sorun çıkartmaz.

a@a:/opt/lynis$ sudo grep Suggestion /var/log/lynis.log
[20:02:43] Suggestion: Set a password on GRUB bootloader to prevent altering boot configuration (e.g. boot in single user mode without password) [BOOT-5122]
[20:02:44] Suggestion: Install a PAM module for password strength testing like pam_cracklib or pam_passwdqc [AUTH-9262]
[20:02:44] Suggestion: Configure password aging limits to enforce password changing on a regular base [AUTH-9286]
[20:02:44] Suggestion: Default umask in /etc/login.defs could be more strict like 027 [AUTH-9328]
[20:02:44] Suggestion: Default umask in /etc/init.d/rc could be more strict like 027 [AUTH-9328]
[20:02:44] Suggestion: To decrease the impact of a full /tmp file system, place /tmp on a separated partition [FILE-6310]
[20:02:45] Suggestion: Disable drivers like USB storage when not used, to prevent unauthorized storage or data theft [STRG-1840]
[20:02:56] Suggestion: Purge old/removed packages (81 found) with aptitude purge or dpkg --purge command. This will cleanup old configuration files, cron jobs and startup scripts. [PKGS-7346]
...

Karşılaştığınız Önemli veya Tavsiye konularını forumumuzda hep beraber görüşebiliriz. Paylaşımlarınızı bekleriz.

Lynis yardım komutu

Lynis ile ilgili yardımı görüntülemek ve seçenekleri incelemek için aşağıdaki komut kullanılabilir.

Görevi: lynis programının bulunduğu klasöre girilir.
cd /opt/lynis
Görevi: Yardımı görüntüler
./lynis --help

İleri seviye kullanıcılar için toplu iş dosyası

Sisteminizi her gün elle tarama yapıp analiz etmeye zamanınız yoksa veya istediğiniz bir saatte taramanın otomatik olarak yapılamasını isterseniz iki seçenek bulunmaktadır.

  • Komut içerisinde --cronjob seçeneğini kullanabilirsiniz.
Görevi: Tüm kontrol edilebilir başlıklarda yönetici olarak tarama gerçekleştirilir.
sudo ./lynis --cronjob --check-all -Q
  • Betik yazıp çalıştırabilirsiniz.
Görevi: İstediğiniz zamanda tarama yapacak ve sonuçları ayrı .txt dosyalarına kaydedecek bir betik dosyası.
sudo vi /etc/cron.daily/scan.sh
Help-hint 48px.png vi'a ilk girdiğiniz anda komut modunda olursunuz. Yazı moduna geçmek için 'i' veya 'a' tuşuna basın. Komutları yazıp önce ESC tuşuna, ardından iki kere 'Z' tuşuna basın. Bu komut dizisi önce dosyayı kaydedecek, sonra da vi editörden çıkmanızı ve kabuğa dönmenizi sağlayacaktır. Detaylı bilgi için bu sayfayı öneriyorum.

Açılan dosyamızın içerisine aşağıdaki komutları yazıp kaydediyoruz.

 #!/bin/sh
 AUDITOR="automated"
  DATE=$(date +%Y%m%d)
 HOST=$(hostname)
 LOG_DIR="/var/log/lynis"
 REPORT="$LOG_DIR/report-${HOST}.${DATE}"
 DATA="$LOG_DIR/report-data-${HOST}.${DATE}.txt"
 cd /opt/lynis
 ./lynis -c --auditor "${AUDITOR}" --cronjob > ${REPORT}
 mv /var/log/lynis-report.dat ${DATA}


Son olarak oluşturduğumuz dosyanın yetkilerini ayarlamamız gerekiyor. Bunun için de kullanılacak komut aşağıdadır.

Görevi: scan.sh dosyasının yetkilerini düzenler.
sudo chmod 755 /etc/cron.daily/scan.sh

İyi çalışmalar.