GNU/Linux >> Belajar Linux >  >> Linux

Pindai keamanan Linux Anda dengan Lynis

Pernahkah Anda memikirkan seberapa aman mesin Linux Anda sebenarnya? Ada banyak distro Linux, masing-masing dengan pengaturan defaultnya sendiri, di mana Anda menjalankan lusinan paket perangkat lunak dengan nomor versi berbeda, dan banyak layanan yang berjalan di latar belakang, yang hampir tidak kita ketahui atau pedulikan.

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

Untuk menemukan postur keamanan—status keamanan keseluruhan dari perangkat lunak, jaringan, dan layanan yang berjalan di mesin Linux Anda—Anda dapat menjalankan beberapa perintah dan mendapatkan sedikit demi sedikit informasi yang relevan, tetapi jumlah data yang Anda perlukan sangat besar .

Akan jauh lebih baik jika Anda bisa menjalankan alat yang menghasilkan laporan tentang postur keamanan mesin. Dan untungnya ada satu:Lynis. Ini adalah alat audit keamanan sumber terbuka yang sangat populer yang membantu pengerasan sistem berbasis Linux dan Unix. Menurut proyek:

"Ini melakukan pemindaian keamanan mendalam dan berjalan pada sistem itu sendiri. Tujuan utamanya adalah untuk menguji pertahanan keamanan dan memberikan tip untuk pengerasan sistem lebih lanjut. Ini juga akan memindai informasi sistem umum, paket perangkat lunak yang rentan, dan kemungkinan masalah konfigurasi. Lynis [umumnya] digunakan oleh administrator sistem dan auditor untuk menilai pertahanan keamanan sistem mereka."

Instal Lynis

Lynis mungkin tersedia di repositori perangkat lunak Linux Anda. Jika demikian, Anda dapat menginstalnya menggunakan:

dnf install lynis 

atau

apt install lynis 

Namun, jika versi di repo Anda bukan yang terbaru, Anda sebaiknya menginstalnya dari GitHub. (Saya menggunakan sistem Red Hat Linux, tetapi Anda dapat menjalankannya di semua distribusi Linux.) Seperti semua alat, masuk akal untuk mencobanya di mesin virtual terlebih dahulu. Untuk menginstalnya dari GitHub:

$ cat /etc/redhat-release 
Red Hat Enterprise Linux Server rilis 7.8 (Maipo)
$
$ uname  -r
3.10.0-1127.el7. x86_64
$
$ git clone https://github.com/CISOfy/lynis.git
Kloning ke 'lynis'...
jarak jauh:Menghitung objek:30, selesai .
jarak jauh:Menghitung objek:100% (30/30), selesai.
jarak jauh:Mengompresi objek:100% (30/30), selesai.
jarak jauh:Total 12566 (delta 15 ), digunakan kembali 8 (delta 0), digunakan kembali paket 12536
Menerima objek:100% (12566/12566), 6,36 MiB | 911.00 KiB/s, selesai.
Menyelesaikan delta:100% (9264/9264), selesai.
$

Setelah Anda mengkloning repositori, pindah ke dalamnya dan lihat apa yang tersedia. Alat utama ada dalam file bernama lynis . Ini sebenarnya adalah skrip shell, sehingga Anda dapat membukanya dan membaca apa yang dilakukannya. Faktanya, Lynis terutama diimplementasikan menggunakan skrip shell:

$ cd lynis/
$ ls
CHANGELOG.md        CONTRIBUTING.md  db           developer.prf  FAQ            termasuk  LICENSE  lynis.8  README . ekstra         HAPPY_USERS.md  INSTALL  lynis    plugins  README.md
$
$ file lynis
lynis:POSIX shell script, teks ASCII yang dapat dieksekusi, dengan garis yang sangat panjang
$

Jalankan Lynis

Ajak Lynis bermain dengan memberikan -h pilihan untuk melihat bagian Bantuan:

$ ./lynis -h 

Anda akan melihat layar informasi singkat diikuti oleh semua perintah yang didukung Lynis.

Selanjutnya, cobalah beberapa perintah pengujian untuk merasakan sesuatu dan merasa nyaman. Untuk melihat versi Lynis yang Anda gunakan, jalankan:

$ ./lynis tampilkan versi
3.0.0
$

Untuk melihat semua perintah yang tersedia di Lynis:

$ ./lynis tampilkan perintah

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

$

Mengaudit sistem Linux

Untuk mengaudit postur keamanan sistem Anda, jalankan perintah berikut:

$ ./lynis audit system 

Ini berjalan dengan cepat dan mengembalikan laporan terperinci—outputnya mungkin tampak menakutkan pada awalnya, tetapi saya akan memandu Anda melaluinya di bawah. Keluaran perintah juga disimpan ke file log, sehingga Anda selalu dapat kembali lagi nanti dan memeriksa apa pun yang mungkin menarik.

Lynis menyimpan log di sini:

  File:
  - Informasi pengujian dan debug      :/var/log/lynis.log
  - Data laporan                     :/var/log/lynis-report.dat

Anda dapat memverifikasi apakah file log dibuat, dan memang benar:

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

Jelajahi laporan

Lynis memberikan laporan yang cukup komprehensif, jadi saya akan membahas beberapa bagian penting. Hal pertama yang dilakukan Lynis sebagai bagian dari inisialisasi adalah mengetahui informasi lengkap tentang sistem operasi yang berjalan di mesin. Ini diikuti dengan pemeriksaan untuk melihat alat sistem dan plugin apa yang diinstal:

[+] Inisialisasi program
------------------------------------
  - Mendeteksi OS...                                           [ SELESAI ]
  - Memeriksa profil...                         >< >   ><] ----------------------------------
  Versi program:          3.0.0
  Sistem operasi:Linux
  Nama sistem operasi:    Red Hat Enterprise Linux Server 7.8 (Maipo)
  Versi sistem operasi: 7.8
  Versi kernel:           3.10.0
  Platform perangkat keras:        x86_64
  Nama host :                 contoh
  ------------------------------------------------------- -------
< >

[+] Alat Sistem
----------------- -------------------
  - Memindai alat yang tersedia...
  - Memeriksa biner sistem...

[ +] Plugin (fase 1)
------------------------------------
 Catatan:plugin memiliki pengujian yang lebih ekstensif dan mungkin perlu beberapa menit untuk diselesaikan
 
  - Plugin:pam
    [..]
  - Plugin:systemd
    [................]

Selanjutnya, laporan dibagi menjadi beberapa bagian, dan setiap bagian dimulai dengan [+] simbol. Beberapa bagian dapat dilihat di bawah ini. (Wow, ada begitu banyak area untuk diaudit, dan Lynis adalah alat yang tepat untuk pekerjaan itu!)

[+] Boot dan layanan
[+] Kernel
[+] Memori dan Proses
[+] Pengguna, Grup, dan Otentikasi
[+] Shell
[+] Sistem file
[+] Perangkat USB
[+] Penyimpanan
[+] NFS
[+] Nama layanan
[+] Port dan paket
[+] Jaringan
[+] Printer dan Kumparan
[+] Software:e-mail dan messaging
[+] Software:firewall
[+] Software :server web
[+] Dukungan SSH
[+] Dukungan SNMP
[+] Basis Data
[+] Layanan LDAP
[+] PHP
[ +] Dukungan Squid
[+] Logging dan file
[+] Layanan tidak aman
[+] Spanduk dan identifikasi
[+] Tugas terjadwal
[+] Akuntansi
[+] Waktu dan Sinkronisasi
[+] Kriptografi
[+] Virtualisasi
[+] Kontainer
[+] Kerangka kerja keamanan
[+] Software:integritas file
[+] Software:System tooling
[+] Software:Malware
[+] Izin File
[+] Direktori Home
[+] Pengerasan Kernel
[+] Pengerasan
[+] Tes khusus

Lynis menggunakan kode warna untuk membuat laporan lebih mudah diurai:

  • Hijau:Semuanya bagus
  • Kuning:Dilewati, tidak ditemukan, atau mungkin ada saran
  • Merah:Anda mungkin perlu melihat ini lebih dekat

Dalam kasus saya, sebagian besar tanda merah ditemukan di bagian Kernel Hardening. Kernel memiliki berbagai pengaturan yang dapat disesuaikan yang menentukan bagaimana fungsi kernel, dan beberapa dari pengaturan ini mungkin memiliki konteks keamanan. Distro mungkin tidak menyetel ini secara default karena berbagai alasan, tetapi Anda harus memeriksa masing-masing dan melihat apakah Anda perlu mengubah nilainya berdasarkan postur keamanan Anda:

[+] Kernel Hardening
------------------------------------
sump  - Membandingkan pasangan kunci sysctl dengan profil pemindaian
    - fs.protected_hardlinks (exp:1)                         [ Oke ]
    - fs.protected_symlinks (exp:1)                (Exp:0) [OK]
- kernel.core_uses_pid (exp:1) [OK]
- kernel.ctrl-alt-del (EXP:0) [OK]
- Kernel .dmesg_restrict (exp:1) [berbeda]
- kernel.kptr_restrict (exp:2) [berbeda]
- kernel.randomize_va_space (exp:2) [ok]
- kernel.syrq (contoh:0)                                   [ BERBEDA ]
    - kernel.yama.ptrace_scope (exp:1 2 3)                 [ BERBEDA ]

    - net.ipv4.conf.all. accept_source_route (exp:0)          [ Oke ]
    - net.ipv4.conf.all.bootp_relay (exp:0)                  [ Oke ]
    - net.ipv4.conf.all.0) penerusan [ Oke ]
    - net.ipv4.conf.all.log_martians (exp:1)                 [ BERBEDA ]
    - net.ipv4.conf.all.mc_forwarding (exp:0)                >    - net.ipv4.conf.all.proxy_arp (exp:0)                    [ OK ]
    - net.ipv4.conf.all.rp_filter (exp:1)                    > OK . conf.all.send_redirects (exp:0)               [ BERBEDA ]
    - net.ipv4.conf.default.accept_redirects (exp:0)         [ BERBEDA ]
    - net.ipv4.conf exp:0)      [ Oke ]
    - net.ipv4.conf.default.log_martians (exp:1)             [ BERBEDA ]
    - net.ipv4.icmp_echo_ignore_broadcasts (exp:1)     [ ]>    - net.ipv4.icmp_ignore_bogus_error_responses (exp:1)     [ OK ]
    - net.ipv4.tcp_syncookies (exp :1)                        [ Oke ]
    - net.ipv4.tcp_timestamps (exp:0 1)                      [ Oke ]
    ENT: .ipv6.>    - net.ipv6.conf.all.accept_source_route (exp:0)          [ Oke ]
    - net.ipv6.conf.default.accept_redirects (exp:0)         [ BERBEDA ]
    - net.ipv conf.default.accept_source_route (exp:0)      [ Oke ]

Lihat SSH, sebagai contoh, karena ini adalah area kunci dan perlu diamankan. Tidak ada yang berwarna merah di sini, tetapi Lynis memiliki banyak saran tentang pengerasan layanan SSH pada pengaturan saya:

[+] Dukungan SSH
------------------------------------
- Memeriksa Running SSH Daemon [ditemukan] Opsi OpenSSH:ClientaliveInterval [OK]
- Open OpenSH:Kompresi [Saran]
- Opsi OpenSH:FingerprintHash [OK] :Ignorerhosts [OK]
- Opsi OpenSH:LogingRacetime [OK]
- Opsi OpenSH:Loglevel [Saran]
- Opsi OpenSh:Maxauthtries [Saran]
- Opsi OpenSSH:MaxSessions [Saran]
- Opsi OpenSSH:Permitrootlogin [Saran] - Opsi OpenSSH:port [saran]
- Opsi OpenSH:printlastlog [OK]
- Opsi OpenSH:strictmodes [OK] Opsi:Penggunaan [Saran]
- Opsi OpenSH:X11Forwarding [SARAN] AllowUsers                             [TIDAK DITEMUKAN ]
    - Opsi OpenSSH:AllowGroups                             [TIDAK DITEMUKAN ]

Saya tidak memiliki mesin virtual atau container yang berjalan di sistem saya, sehingga mereka menampilkan hasil yang kosong:

[+] Virtualisasi
------------------------------------

[+] Wadah
------------------------------------

Lynis memeriksa izin file pada beberapa file yang penting dari sudut pandang keamanan:

[+] Izin Berkas
------------------------------------
- Memulai file izin periksa
File:/Boot/Grub2/grub.cfg [Saran]
File:/etc/cron.deny [OK]
File:/ etc / crontab [ Saran]
File:/ etc / group [OK]
File:/ etc / Group- [OK]
File:/etc/hosts.allow [OK]
File:/etc/hosts.deny [OK]
File:/ etc / edisi [OK]
File:/etc/issue.net [OK]
File:/ etc / motd [OK]
    File:/etc/passwd                                         [ OK ]
    File:/etc/passwd-                    [OK]
File:/ etc / ssh / sshd_config [OK]
direktori:/root/.ssh [Saran]
direktori:/etc/cron.d [Saran]
Direktori:/etc/cron.daily [Saran]
direktori:/etc/cron.hourly [Saran]
direktori:/etc/cron.
direktori:/ etc /cron.monthly                              [ SARAN ]

Menjelang bagian bawah laporan, Lynis menawarkan saran berdasarkan temuan laporan. Setiap saran diikuti oleh TEST-ID (simpan ini untuk bagian selanjutnya):

 Saran (47):
  ----------------------------
  * Jika tidak diperlukan, pertimbangkan penonaktifan eksplisit core dump di file /etc/security/limits.conf [KRNL-5820]
      https://cisofy.com/lynis/controls/KRNL-5820/

  * Periksa Konfigurasi PAM, tambahkan putaran jika berlaku dan kedaluwarsa sandi untuk mengenkripsi dengan nilai baru [AUTH-9229]
      https://cisofy.com/lynis/controls/AUTH-9229/

Lynis menyediakan opsi untuk menemukan lebih banyak informasi tentang setiap saran, yang dapat Anda akses menggunakan tampilkan detail perintah diikuti dengan nomor ID tes:

./lynis show details TEST-ID 

Ini akan menampilkan informasi tambahan tentang tes itu. Misalnya, saya memeriksa detail SSH-7408:

$ ./lynis tampilkan detail SSH-7408
30-04-2020 05:52:23 Melakukan ID pengujian SSH-7408 (Periksa opsi yang ditentukan khusus SSH)
30-04-2020 05:Tes 52:23:Memeriksa opsi yang ditentukan secara spesifik di /tmp/lynis.k8JwazmKc6
30-04-2020 05:52:23 Hasil:menambahkan opsi tambahan untuk OpenSSH <7.5
30-04-2020 05:52:23 Tes:Memeriksa AllowTcpForwarding di /tmp/lynis.k8JwazmKc6
30-04-2020 05:52:23 Hasil:Opsi AllowTcpForwarding ditemukan
30-04-2020 05:52:23 Hasil:Opsi Nilai AllowTcpForwarding adalah YA
30-04-2020 05:52:23 Hasil:Opsi OpenSSH AllowTcpForwarding dalam status konfigurasi yang lemah dan harus diperbaiki
30-04-2020 05:52:23 Saran:Pertimbangkan pengerasan konfigurasi SSH [test:SSH-7408] [detail:AllowTcpForwarding (atur YA ke TIDAK)] [solusi:-]

Cobalah

Jika Anda ingin mempelajari lebih lanjut tentang keamanan mesin Linux Anda, lihat Lynis. Dan, jika Anda ingin mempelajari cara kerja Lynis, gali skrip shell-nya untuk melihat bagaimana ia mengumpulkan semua informasi ini.


Linux
  1. Pantau sistem Linux Anda di terminal Anda dengan procps-ng

  2. Mengelola perangkat keras Anda yang terpasang di Linux dengan systemd-udevd

  3. Pemantauan keamanan di Linux dengan Tripwire

  1. Dengarkan musik favorit Anda di Linux dengan Juk

  2. Keamanan Linux:Lindungi sistem Anda dengan fail2ban

  3. Cara Memindai Server Anda dengan Penasihat Keamanan cPanel

  1. Pantau Java Anda di Linux dengan jconsole

  2. Pantau server Linux Anda dengan Checkmk

  3. Pengujian pena dengan alat keamanan Linux