Ana içeriğe geç

Lynis Nedir, Nasıl Kullanılır ?

  • Merhaba. Her işletim sisteminin eksiği olduğu gibi Linux’unda güvenlik eksiklikleri bulunmaktadır. Ne kadar güvenli olduğunu, sıkıştırma işleminin ne kadar başarılı olduğunu test etmemiz, raporlamamız gerekebilir.

  • Böyle durumlarda kullanılması kolay olan Lynis bize yardımcı olacaktır. Şimdi sizlere bu aracın nasıl kurulacağını ve kullanılacağını anlatacağım.

Lynis Nasıl Kurulur ?

  • Lynis, Linux yazılım deponuzda mevcut olabilir. Eğer öyleyse, bunu kullanarak kurabilirsiniz:
dnf install lynis

veya

apt install lynis
  • Ancak, deponuzdaki sürüm en son sürüm değilse, GitHub'dan yüklemeniz daha iyi olur. (Ben Ubuntu kullanıyorum, ancak bunu herhangi bir Linux dağıtımında çalıştırabilirsiniz.) Tüm araçlarda olduğu gibi, bunu önce sanal bir makinede denemek mantıklıdır. GitHub'dan yüklemek için:
git clone https://github.com/CISOfy/lynis.git
  • Ayrıca Lynis'in kendi sitesindende indirebilirsiniz:
wget https://downloads.cisofy.com/lynis/lynis-3.0.0.tar.gz
tar -xzvf lynis-3.0.0.tar.gz

Lynis'i çalıştırın.

  • Lynis'i çalıştırmak için ilk önce bulunduğu dizine erişmemiz gerekiyor.
cd lynis
  • Eğer Lynis hakkında yardım almak istiyorsanız:
./lynis -h
  • Eğer sisteminize kurulu olan Lynis'in versiyonunu öğrenmek için gireceğiniz komut ve çıktı:
./lynis show version   
  • Çıktı:
3.0.0   
  • Lynis'te bulunan tüm komutları görmek için gireceğiniz komut ve çıktı:
./lynis show commands   
  • Çıktı:
Commands:   
lynis audit   
lynis configure   
lynis generate   
lynis show   
lynis update   
lynis upload-only   

Sisteminizi denetleyin

  • Şimdi sırada ki işlem Lynis ile sistemimizi denetlemeye geldi.

  • Aşağıdaki komut ile Lynis'i çalıştıralım:

./lynis audit system
  • Lynis oldukça kapsamlı raporlar sağlar, bu nedenle bazı önemli bölümleri ele alacağım. Lynis'in, başlatmanın bir parçası olarak yaptığı ilk şey, makinede çalışan işletim sistemi hakkında tam bilgi bulmaktır. Ardından, hangi sistem araçlarının ve eklentilerin yüklü olduğunu kontrol edin:
[+] Initializing program   
 ------------------------------------   
 - Detecting OS...                                           [ DONE ]   
 - Checking profiles...                                      [ DONE ]   
 ---------------------------------------------------   
 Program version:           3.0.0   
 Operating system:          Linux   
 Operating system name:     Red Hat Enterprise Linux Server 7.8 (Maipo)   
 Operating system version:  7.8   
 Kernel version:            3.10.0   
 Hardware platform:         x86_64   
 Hostname:                  example   
 ---------------------------------------------------   
 <<snip>>   

 [+] System Tools   
 ------------------------------------   
 - Scanning available tools...   
 - Checking system binaries...   

 [+] Plugins (phase 1)   
 ------------------------------------   
 Note: plugins have more extensive tests and may take several minutes to complete   

 - Plugin: pam   
 [..]   
 - Plugin: systemd   
 [................]
  • Sonrasında göreceğiniz ekranda, rapor çeşitli bölümlere ayrılmıştır ve her bölüm bir [+] simgesiyle başlar. Bölümlerden bazıları aşağıda görülebilir.
[+] Boot and services   
[+] Kernel   
[+] Memory and Processes   
[+] Users, Groups and Authentication   
[+] Shells   
[+] File systems   
[+] USB Devices   
[+] Storage   
[+] NFS   
[+] Name services   
[+] Ports and packages   
[+] Networking   
[+] Printers and Spools   
[+] Software: e-mail and messaging   
[+] Software: firewalls   
[+] Software: webserver   
[+] SSH Support   
[+] SNMP Support   
[+] Databases   
[+] LDAP Services   
[+] PHP   
[+] Squid Support   
[+] Logging and files   
[+] Insecure services   
[+] Banners and identification   
[+] Scheduled tasks   
[+] Accounting   
[+] Time and Synchronization   
[+] Cryptography   
[+] Virtualization   
[+] Containers   
[+] Security frameworks   
[+] Software: file integrity   
[+] Software: System tooling   
[+] Software: Malware   
[+] File Permissions   
[+] Home directories   
[+] Kernel Hardening   
[+] Hardening   
[+] Custom tests

Lynis, raporun daha kolay ayrıştırılmasını sağlamak için renk kodlaması kullanır:

  • Yeşil: Hepsi iyi
  • Sarı: Atlandı, bulunamadı veya bir önerisi olabilir
  • Kırmızı: Buna daha yakından bakmanız gerekebilir

Benim durumumda, kırmızı işaretlerin çoğu Kernel Hardening bölümünde bulundu. Çekirdeğin, çekirdeğin nasıl çalıştığını tanımlayan çeşitli ayarlanabilir ayarları vardır ve bu ayarlanabilir özelliklerin bazıları bir güvenlik bağlamına sahip olabilir. Dağıtım, çeşitli nedenlerle bunları varsayılan olarak ayarlamıyor olabilir, ancak her birini incelemeli ve güvenlik duruşunuza göre değerini değiştirmeniz gerekip gerekmediğini görmelisiniz:

[+] Kernel Hardening   
 ------------------------------------   
 - Comparing sysctl key pairs with scan profile   
 - fs.protected_hardlinks (exp: 1)                         [ OK ]   
 - fs.protected_symlinks (exp: 1)                          [ OK ]   
 - fs.suid_dumpable (exp: 0)                               [ OK ]   
 - kernel.core_uses_pid (exp: 1)                           [ OK ]   
 - kernel.ctrl-alt-del (exp: 0)                            [ OK ]   
 - kernel.dmesg_restrict (exp: 1)                          [ DIFFERENT ]   
 - kernel.kptr_restrict (exp: 2)                           [ DIFFERENT ]   
 - kernel.randomize_va_space (exp: 2)                      [ OK ]   
 - kernel.sysrq (exp: 0)                                   [ DIFFERENT ]   
 - kernel.yama.ptrace_scope (exp: 1 2 3)                   [ DIFFERENT ]   
 - net.ipv4.conf.all.accept_redirects (exp: 0)             [ DIFFERENT ]   
 - net.ipv4.conf.all.accept_source_route (exp: 0)          [ OK ]   
 - net.ipv4.conf.all.bootp_relay (exp: 0)                  [ OK ]   
 - net.ipv4.conf.all.forwarding (exp: 0)                   [ OK ]   
 - net.ipv4.conf.all.log_martians (exp: 1)                 [ DIFFERENT ]   
 - net.ipv4.conf.all.mc_forwarding (exp: 0)                [ OK ]   
 - net.ipv4.conf.all.proxy_arp (exp: 0)                    [ OK ]   
 - net.ipv4.conf.all.rp_filter (exp: 1)                    [ OK ]   
 - net.ipv4.conf.all.send_redirects (exp: 0)               [ DIFFERENT ]   
 - net.ipv4.conf.default.accept_redirects (exp: 0)         [ DIFFERENT ]   
 - net.ipv4.conf.default.accept_source_route (exp: 0)      [ OK ]   
 - net.ipv4.conf.default.log_martians (exp: 1)             [ DIFFERENT ]   
 - net.ipv4.icmp_echo_ignore_broadcasts (exp: 1)           [ OK ]   
 - net.ipv4.icmp_ignore_bogus_error_responses (exp: 1)     [ OK ]   
 - net.ipv4.tcp_syncookies (exp: 1)                        [ OK ]   
 - net.ipv4.tcp_timestamps (exp: 0 1)                      [ OK ]   
 - net.ipv6.conf.all.accept_redirects (exp: 0)             [ DIFFERENT ]   
 - net.ipv6.conf.all.accept_source_route (exp: 0)          [ OK ]   
 - net.ipv6.conf.default.accept_redirects (exp: 0)         [ DIFFERENT ]   
 - net.ipv6.conf.default.accept_source_route (exp: 0)      [ OK ]
  • Bir örnek olan SSH'ye bakın, çünkü burası kilit bir alan ve güvenlik altına alınması gerekiyor. Burada kırmızı renkte hiçbir şey yok, ancak Lynis'in kurulumumda SSH hizmetini sağlamlaştırmayla ilgili birçok önerisi var:
[+] SSH Support   
 ------------------------------------   
 - Checking running SSH daemon                               [ FOUND ]   
 - Searching SSH configuration                             [ FOUND ]   
 - OpenSSH option: AllowTcpForwarding                      [ SUGGESTION ]   
 - OpenSSH option: ClientAliveCountMax                     [ SUGGESTION ]   
 - OpenSSH option: ClientAliveInterval                     [ OK ]   
 - OpenSSH option: Compression                             [ SUGGESTION ]   
 - OpenSSH option: FingerprintHash                         [ OK ]   
 - OpenSSH option: GatewayPorts                            [ OK ]   
 - OpenSSH option: IgnoreRhosts                            [ OK ]   
 - OpenSSH option: LoginGraceTime                          [ OK ]   
 - OpenSSH option: LogLevel                                [ SUGGESTION ]   
 - OpenSSH option: MaxAuthTries                            [ SUGGESTION ]   
 - OpenSSH option: MaxSessions                             [ SUGGESTION ]   
 - OpenSSH option: PermitRootLogin                         [ SUGGESTION ]   
 - OpenSSH option: PermitUserEnvironment                   [ OK ]   
 - OpenSSH option: PermitTunnel                            [ OK ]   
 - OpenSSH option: Port                                    [ SUGGESTION ]   
 - OpenSSH option: PrintLastLog                            [ OK ]   
 - OpenSSH option: StrictModes                             [ OK ]   
 - OpenSSH option: TCPKeepAlive                            [ SUGGESTION ]   
 - OpenSSH option: UseDNS                                  [ SUGGESTION ]   
 - OpenSSH option: X11Forwarding                           [ SUGGESTION ]   
 - OpenSSH option: AllowAgentForwarding                    [ SUGGESTION ]   
 - OpenSSH option: UsePrivilegeSeparation                  [ OK ]   
 - OpenSSH option: AllowUsers                              [ NOT FOUND ]   
 - OpenSSH option: AllowGroups                             [ NOT FOUND ]
  • Sistemimde çalışan sanal makinelerim veya konteynerlerim yok, bu yüzden boş sonuçlar gösteriyorlar:
[+] Virtualization   
 ------------------------------------   

[+] Containers   
 ------------------------------------
  • Lynis, güvenlik açısından önemli olan bazı dosyalarda dosya izinlerini kontrol eder:
[+] File Permissions   
 ------------------------------------   
 - Starting file permissions check   
 File: /boot/grub2/grub.cfg                                [ SUGGESTION ]   
 File: /etc/cron.deny                                      [ OK ]   
 File: /etc/crontab                                        [ SUGGESTION ]   
 File: /etc/group                                          [ OK ]   
 File: /etc/group-                                         [ OK ]   
 File: /etc/hosts.allow                                    [ OK ]   
 File: /etc/hosts.deny                                     [ OK ]   
 File: /etc/issue                                          [ OK ]   
 File: /etc/issue.net                                      [ OK ]   
 File: /etc/motd                                           [ OK ]   
 File: /etc/passwd                                         [ OK ]   
 File: /etc/passwd-                                        [ OK ]   
 File: /etc/ssh/sshd_config                                [ OK ]   
 Directory: /root/.ssh                                     [ SUGGESTION ]   
 Directory: /etc/cron.d                                    [ SUGGESTION ]   
 Directory: /etc/cron.daily                                [ SUGGESTION ]   
 Directory: /etc/cron.hourly                               [ SUGGESTION ]   
 Directory: /etc/cron.weekly                               [ SUGGESTION ]   
 Directory: /etc/cron.monthly                              [ SUGGESTION ]
  • Lynis, raporun bulgularına dayalı öneriler sunar. Her öneriyi bir TEST-ID takip eder (bunu bir sonraki bölüm için hazır bulundurun):
Suggestions (47):   
 ----------------------------   
 * If not required, consider explicit disabling of core dump in /etc/security/limits.conf file [KRNL-5820]   
 https://cisofy.com/lynis/controls/KRNL-5820/   

 * Check PAM configuration, add rounds if applicable and expire passwords to encrypt with new values [AUTH-9229]   
 https://cisofy.com/lynis/controls/AUTH-9229/
  • Lynis, show details komutunu ve ardından test kimlik numarasını kullanarak erişebileceğiniz her öneri hakkında daha fazla bilgi bulma seçeneği sunar:
./lynis show details TEST-ID
  • Bu, o test hakkında ek bilgi gösterecektir. Örneğin, SSH-7408'in ayrıntılarını kontrol edelim:
./lynis show details SSH-7408   
  • Çıktı:
2020 -04- 30 05: 52 : 23 Performing test ID SSH- 7408 ( Check SSH specific defined options )   
2020 -04- 30 05: 52 : 23 Test: Checking specific defined options in / tmp / lynis.k8JwazmKc6   
2020 -04- 30 05: 52 : 23 Result: added additional options for OpenSSH < 7.5   
2020 -04- 30 05: 52 : 23 Test: Checking AllowTcpForwarding in / tmp / lynis.k8JwazmKc6   
2020 -04- 30 05: 52 : 23 Result: Option AllowTcpForwarding found   
2020 -04- 30 05: 52 : 23 Result: Option AllowTcpForwarding value is YES   
2020 -04- 30 05: 52 : 23 Result: OpenSSH option AllowTcpForwarding is in a weak configuration state and should be fixed   
2020 -04- 30 05: 52 : 23 Suggestion: Consider hardening SSH configuration [
  • Lynis Linux ve Unix tabanlı sistemlerin güçlendirilmesine yardımcı olan son derece popüler bir açık kaynak güvenlik denetim aracıdır. Projeye göre:

"Derinlemesine bir güvenlik taraması gerçekleştirir ve sistemin kendisi üzerinde çalışır. Birincil amaç, güvenlik savunmalarını test etmek ve daha fazla sistem sağlamlaştırması için ipuçları sağlamaktır. Ayrıca genel sistem bilgilerini, savunmasız yazılım paketlerini ve olası yapılandırma sorunlarını da tarayacaktır. Lynis, sistem yöneticileri ve denetçileri tarafından sistemlerinin güvenlik savunmalarını değerlendirmek için yaygın olarak kullanılır. "