Memeriksa Keamanan Linux dengan Lynis Utility

Kami mencari cara untuk menggunakan salah satu utilitas freeware paling kuat untuk mengaudit sistem Linux.


Pernahkah Anda bertanya-tanya seberapa aman sistem Linux Anda? Ada banyak distribusi Linux (masing-masing dengan pengaturan standarnya sendiri) tempat Anda menjalankan lusinan paket perangkat lunak dengan nomor versi yang berbeda. Selain itu, ada banyak layanan yang berjalan di OS Anda di latar belakang yang kadang-kadang Anda tidak tahu atau pikirkan.

Untuk mendapatkan informasi tentang sistem, yaitu, periksa status umum perangkat lunak, jaringan, dan layanan yang berjalan di komputer Anda dengan Linux terinstal, jalankan beberapa perintah. Tetapi sekarang apa yang harus dilakukan dengan informasi yang diterima? Bagaimana cara memahaminya? Lagipula, jumlah data yang perlu Anda analisis sangat besar.

Akan jauh lebih baik jika Anda bisa menjalankan alat yang menghasilkan laporan terstruktur pada tingkat keamanan sistem. Lynis adalah alat open source populer yang mengaudit sistem berbasis Linux dan Unix.

β€œIa melakukan pemindaian komprehensif pengaturan keamanan dan berjalan pada sistem itu sendiri. Tujuan utamanya adalah untuk menguji fitur keamanan dan mengeluarkan rekomendasi untuk lebih meningkatkan tingkat keamanan sistem. Ini juga memindai informasi seluruh sistem, informasi tentang paket yang diinstal, dan kemungkinan kesalahan konfigurasi. Lynis [biasanya] digunakan oleh administrator sistem dan pakar keamanan untuk menilai tingkat keamanan sistem, " kata situs web proyek.

Instal Lynis


Anda dapat menggunakan manajer paket untuk menginstal Lynis. Asalkan sistem Linux Anda dengan relevansi versi dalam repositori dalam urutan, utilitas dapat diinstal seperti ini:

dnf install lynis

atau lebih:

apt install lynis

Namun, jika versi utilitas dalam repositori Anda bukan yang terbaru, lebih baik untuk menginstal Lynis dengan GitHub (Saya menggunakan sistem Red Hat Linux, tetapi perintah serupa bekerja pada distribusi Linux apa pun):

$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.8 (Maipo)
$
$ uname  -r
3.10.0-1127.el7.x86_64
$
$ git clone https://github.com/CISOfy/lynis.git
Cloning into 'lynis'...
remote: Enumerating objects: 30, done.
remote: Counting objects: 100% (30/30), done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 12566 (delta 15), reused 8 (delta 0), pack-reused 12536
Receiving objects: 100% (12566/12566), 6.36 MiB | 911.00 KiB/s, done.
Resolving deltas: 100% (9264/9264), done.
$

Segera setelah Anda mengkloning repositori, masuk ke dalamnya dan lihat apa yang tersedia untuk Anda, cari file bernama lynis. Ini sebenarnya adalah skrip shell, sehingga Anda dapat membukanya dan membaca apa fungsinya. Bahkan, Lynis terutama diimplementasikan menggunakan skrip:

$ cd lynis/
$ ls
CHANGELOG.md        CONTRIBUTING.md  db           developer.prf  FAQ             include  LICENSE  lynis.8  README     SECURITY.md
CODE_OF_CONDUCT.md  CONTRIBUTORS.md  default.prf  extras         HAPPY_USERS.md  INSTALL  lynis    plugins  README.md
$
$ file lynis
lynis: POSIX shell script, ASCII text executable, with very long lines
$ 

Luncurkan Lynis


Mari kita mulai dengan Lynis dengan menjalankan bantuan menggunakan flag -h :

$ ./lynis -h

Jadi Anda bisa membiasakan diri dengan perintah utilitas utama. Sebagai contoh, mari kita cari versinya:

$ ./lynis show version
3.0.0
$

Untuk daftar lengkap perintah Lynis, ketik:

$ ./lynis show commands

Commands:
lynis audit
lynis configure
lynis generate
lynis show
lynis update
lynis upload-only

$

Menjalankan audit sistem Linux


Semuanya dimulai dengan perintah berikut:

$ ./lynis audit system

Setelah memulai tim kami akan menerima laporan rinci. Jangan khawatir, kami akan mencari tahu nanti. Hasil kerja tim lain juga disimpan, sehingga Anda dapat kembali lagi nanti.

Di sini Lynis menyimpan log:

  Files:
  - Test and debug information      : /var/log/lynis.log
  - Report data                     : /var/log/lynis-report.dat

Anda dapat memeriksa apakah semua file yang diperlukan benar-benar dibuat:

$ ls -l /var/log/lynis.log
-rw-r-----. 1 root root 341489 Apr 30 05:52 /var/log/lynis.log
$
$ ls -l /var/log/lynis-report.dat
-rw-r-----. 1 root root 638 Apr 30 05:55 /var/log/lynis-report.dat
$ 

Kami mempelajari laporan


Lynis memberikan laporan yang cukup terperinci, jadi saya hanya akan membahas beberapa topik penting. Hal paling pertama yang dilakukan Lynis selama inisialisasi adalah mengetahui informasi lengkap tentang sistem operasi yang berjalan di komputer. Kemudian utilitas memeriksa alat sistem dan plugin yang telah Anda instal:

[+] 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
    [................]



Laporan ini dibagi menjadi beberapa bagian berbeda, dan setiap bagian dimulai dengan [+] . Beberapa bagian dapat dilihat di bawah ini.

[+] 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

Untuk kejelasan yang lebih besar, Lynis menggunakan konvensi warna:

  • hijau: semuanya baik-baik saja
  • kuning: tidak menemukan semua yang diperlukan, atau situasi kontroversial muncul
  • merah: ini masalah, ada baiknya berurusan dengannya

Dalam kasus saya, sebagian besar masalah (tanda merah) ditemukan di bagian Kernel Hardening. Kernel memiliki berbagai parameter yang dapat dikonfigurasi yang menentukan operasinya, dan beberapa parameter ini bertanggung jawab untuk keamanan. Distribusi mungkin tidak menginstalnya secara default karena berbagai alasan, tetapi Anda harus memeriksa masing-masing dan melihat apakah Anda perlu mengubah nilainya tergantung pada persyaratan keamanan Anda:

[+] 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 ]

Lihatlah SSH misalnya. Ini adalah bagian penting dari sistem dan harus dilindungi. Tidak ada yang disorot dalam warna merah di sini, tetapi Lynis memiliki banyak saran untuk meningkatkan keamanan layanan SSH:

[+] 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 ]

Tidak ada wadah atau mesin virtual yang berjalan di sistem saya. Jadi, sayang sekali, tidak ada yang bisa dibaca di sini.

[+] Virtualization
------------------------------------

[+] Containers
------------------------------------

Lynis memeriksa hak istimewa beberapa file, karena ini penting dari sudut pandang keamanan.

[+] 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 ]

Di akhir laporan, Lynis melakukan koreksi berdasarkan hasil audit. Setiap kalimat dimulai dengan deskripsi, dan tes ( TEST-ID ) yang dihasilkan ditunjukkan dalam tanda kurung di sebelahnya . Baris berikutnya menyarankan solusi untuk masalah, jika ada:

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 memungkinkan untuk menemukan informasi tambahan tentang setiap proposal koreksi menggunakan perintah show details , diikuti oleh nomor tes TEST-ID :

./lynis show details TEST-ID

Misalnya, untuk mengetahui informasi lebih lanjut untuk tes SSH-7408, saya masukkan $ ./lynis tunjukkan detail SSH-7408 dan dapatkan:

$ ./lynis show details SSH-7408
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 [test:SSH-7408] [details:AllowTcpForwarding (set YES to NO)] [solution:-]

Cobalah untuk tidak menyiksa


Jadi, jika Anda ingin tahu lebih banyak tentang keamanan sistem Linux Anda, periksa Lynis. Dan, jika Anda ingin mempelajari lebih lanjut tentang cara kerja utilitas ini, bagaimana ia mengumpulkan semua informasi ini, gali skrip shellnya. Seperti halnya utilitas lain, masuk akal untuk terlebih dahulu mencobanya di mesin virtual.

Peralatan apa yang anda gunakan? Bagikan komentar Anda.



Sebagai iklan


VDSina menawarkan server pada sistem operasi apa pun - pilih salah satu dari OS yang telah diinstal sebelumnya, atau instal dari gambar Anda. Server pembayaran harian atau penawaran unik di pasar - server abadi!


All Articles