GNU/Linux >> Belajar Linux >  >> Linux

Cara membaca laporan Lynis untuk meningkatkan keamanan Linux

Ketika saya membaca artikel Gaurav Kamathe Pindai keamanan Linux Anda dengan Lynis , itu mengingatkan saya pada waktu saya sebagai administrator sistem untuk Departemen Tenaga Kerja AS. Salah satu tugas saya adalah menjaga server Unix kami tetap kuat. Setiap kuartal, pemverifikasi independen datang untuk meninjau status keamanan server kami. Setiap kali pada hari verifikator dijadwalkan tiba, saya menjalankan Security Readiness Review (SRR), alat pemindaian yang menggunakan sekumpulan besar skrip untuk mengidentifikasi dan melaporkan temuan keamanan apa pun. SRR adalah open source, jadi saya bisa melihat semua skrip sumber dan fungsinya. Ini memungkinkan saya untuk melihat ke dalam kode, menentukan apa yang salah, dan dengan cepat memperbaiki setiap masalah yang ditemukan.

Apa itu Lynis?

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

Lynis adalah alat audit keamanan sumber terbuka yang bekerja seperti SRR dengan memindai sistem Linux dan memberikan laporan terperinci tentang kelemahan apa pun yang ditemukannya. Juga seperti SRR, ini terdiri dari kumpulan skrip yang besar, dan setiap skrip memeriksa item tertentu, misalnya, persyaratan usia kata sandi minimum dan maksimum.

Setelah menjalankan Lynis, Anda bisa menggunakan laporannya untuk menemukan skrip setiap item dan mempelajari dengan tepat bagaimana Lynis memeriksa dan melaporkan setiap masalah. Anda juga dapat menggunakan kode skrip yang sama untuk membuat kode baru guna mengotomatiskan resolusi.

Cara membaca laporan Lynis

Karena artikel Gaurav membahas instalasi dan penggunaan Lynis, dalam artikel ini, saya akan menunjukkan beberapa contoh bagaimana Anda dapat membaca dan menggunakan laporannya.

Untuk memulai, jalankan audit:

# lynis audit system --quick 

Setelah selesai, laporan lengkap akan ditampilkan di layar Anda. Di bagian bawah, Saran bagian mencantumkan semua item yang mungkin perlu diprioritaskan untuk memperkuat sistem dengan lebih baik, serta TEST-ID untuk masing-masing item.

Untuk memperkuat sistem dan mengurangi ukuran daftar, mulailah mengejar setiap item. Deskripsi di Saran bagian mungkin semua yang Anda butuhkan untuk mengetahui tindakan apa yang harus diambil. Jika tidak, Anda dapat menggunakan show details perintah:

# lynis show details TEST-ID 

Misalnya, salah satu saran di sistem saya adalah:

Basis data yang diperlukan untuk locate tidak dapat ditemukan. Jalankan updatedb atau locate.updatedb untuk membuat file ini. [FILE-6410]

Sepertinya saya hanya perlu menjalankan perintah updatedb , tetapi jika saya ingin memastikan, saya dapat menggunakan show details Lyn Lynis pilihan:

# lynis show details FILE-6410
2020-06-16 20:54:33 Melakukan test ID FILE-6410 (Memeriksa Cari database)
16-06-2020 20:54:33 Test :Memeriksa lokasi database
16-06-2020 20:54:33 Hasil:file /var/lib/mlocate/mlocate.db tidak ditemukan
16-06-2020 20:54:33 Hasil:file /var/lib/locate/locatedb tidak ditemukan
16-06-2020 20:54:33 Hasil:file /var/lib/locatedb tidak ditemukan
16-06-2020 20:54:33 Hasil :file /var/lib/slocate/slocate.db tidak ditemukan
16-06-2020 20:54:33 Hasil:file /var/cache/locate/locatedb tidak ditemukan
16-06-2020 20:54:33 Hasil:file /var/db/locate.database tidak ditemukan
16-06-2020 20:54:33 Hasil:database tidak ditemukan
16-06-2020 20:54:33 Saran:Basis data yang diperlukan untuk 'lokasi' tidak dapat ditemukan. Jalankan 'updatedb' atau 'locate.updatedb' untuk membuat file ini. [test:FILE-6410] [detail:-] [solusi:-]
16-06-2020 20:54:33 ====

Detail ini menunjukkan Lynis tidak dapat menemukan berbagai file. Kasus ini sangat jelas. Saya dapat menjalankan updatedb perintah dan periksa kembali tes ini:

# updatedb
# lynis --tests FILE-6410

Selanjutnya, memeriksa ulang detailnya menunjukkan file mana yang ditemukan yang memenuhi pengujian:

# lynis show details FILE-6410 
2020-06-16 21:38:40 Melakukan test ID FILE-6410 (Memeriksa Cari database)
16-06-2020 21:38:40 Test :Memeriksa lokasi database
16-06-2020 21:38:40 Hasil:lokasi database ditemukan (/var/lib/mlocate/mlocate.db)
16-06-2020 21:38:40 Hasil :file /var/lib/locate/locatedb tidak ditemukan
16-06-2020 21:38:40 Hasil:file /var/lib/locatedb tidak ditemukan
16-06-2020 21:38:40 Hasil:file /var/lib/slocate/slocate.db tidak ditemukan
16-06-2020 21:38:40 Hasil:file /var/cache/locate/locatedb tidak ditemukan
2020-06 -16 21:38:40 Hasil:file /var/db/locate.database tidak ditemukan
16-06-2020 21:38:40 ====

Menyelam lebih dalam

Banyak saran Lynis tidak sesederhana yang satu ini. Jika Anda tidak yakin apa yang dimaksud dengan temuan atau saran, mungkin sulit untuk mengetahui cara memperbaiki masalah. Misalkan Anda menjalankan Lynis terhadap server Linux baru, dan ada beberapa item yang berkaitan dengan daemon secure shell (SSH), salah satunya mengacu pada MaxAuthTries pengaturan:

* Pertimbangkan pengerasan konfigurasi SSH [SSH-7408] 
    - Detail  :MaxAuthTries (6 --> 3)
      https://cisofy.com/lynis/controls/SSH-7408/

Untuk mengatasi ini, Anda perlu mengetahui lokasi file konfigurasi SSH. Administrator Linux berpengalaman mungkin sudah tahu di mana menemukannya, tetapi jika tidak, ada cara untuk melihat di mana Lynis menemukannya.

Temukan skrip pengujian Lynis

Lynis mendukung banyak sistem operasi; oleh karena itu, lokasi pemasangan Anda mungkin berbeda. Pada sistem Red Hat Enterprise Linux atau Fedora Linux, gunakan rpm untuk menemukan file pengujian:

# rpm -ql lynis 

Ini mencantumkan semua file pengujian dan melaporkan lokasinya di lynis/include direktori. Cari direktori ini untuk TEST-ID yang ingin Anda ketahui (dalam kasus ini SSH-7408):

# grep SSH-7408 /usr/share/lynis/include/*
/usr/share/lynis/include/tests_ssh:   # Test        :SSH-7408

Temukan masalah SSH

File bernama tests_ssh berisi TEST-ID, dan di sinilah Anda dapat menemukan fungsi pemindaian yang terkait dengan SSH. Lihatlah file ini untuk melihat berbagai fungsi yang dipanggil oleh pemindai Lynis. Bagian pertama mendefinisikan daftar direktori dalam variabel yang disebut SSH_DAEMON_CONFIG_LOCS . Beberapa bagian berikut bertanggung jawab untuk memeriksa status daemon SSH, menemukan file konfigurasinya, dan mengidentifikasi versinya. Saya menemukan kode yang mencari file konfigurasi di bagian Test SSH-7404, dijelaskan sebagai "Tentukan lokasi file konfigurasi daemon SSH". Kode ini berisi for loop yang mencari item dalam daftar untuk file bernama sshd_config . Saya dapat menggunakan logika ini untuk melakukan pencarian saya sendiri:

# temukan /etc /etc/ssh /usr/local/etc/ssh /opt/csw/etc/ssh -nama sshd_config
/etc/ssh/sshd_config
/etc/ssh/sshd_config
find:'/usr/local/etc/ssh':Tidak ada file atau direktori seperti itu
find:'/opt/csw/etc/ssh':Tidak ada file atau direktori seperti itu

Menjelajahi lebih lanjut file ini mengungkapkan kode yang terkait dengan menemukan SSH-7408. Tes ini mencakup MaxAuthTries dan beberapa pengaturan lainnya. Sekarang saya dapat menemukan variabel dalam file konfigurasi SSH:

# grep MaxAuthTries /etc/ssh/sshd_config
#MaxAuthTries 6

Lynis juga melaporkan temuan terkait spanduk legal yang ditampilkan saat Anda masuk ke sistem. Pada sistem desktop rumah saya (di mana saya tidak mengharapkan banyak orang lain untuk masuk), saya tidak repot-repot mengubah issue default file. Sistem korporat atau pemerintah kemungkinan diperlukan untuk menyertakan spanduk legal untuk memperingatkan pengguna bahwa login dan aktivitas mereka dapat direkam dan dipantau. Lynis melaporkan ini dengan tes BANN-7126 dan BANN-7130:

* Tambahkan spanduk resmi ke /etc/issue, untuk memperingatkan pengguna yang tidak berwenang [BANN-7126] 
      https://cisofy.com/lynis/controls/BANN-7126/

* Tambahkan spanduk resmi ke /etc/issue.net, untuk memperingatkan pengguna yang tidak sah [BANN-7130]
      https://cisofy.com/lynis/controls/BANN-7130/

Saya tidak menemukan banyak hal di sistem saya yang menjalankan Fedora 32 Workstation:

# cat /etc/issue /etc/issue.net
\S
Kernel \r pada \m (\l)

\S
Kernel \r pada \m (\l)

Saya dapat menambahkan sesuatu seperti "Jauhkan" atau "Jangan rusak apa pun", tetapi deskripsi pengujian tidak memberikan informasi yang cukup untuk menyelesaikan masalah, jadi saya melihat lagi skrip Lynis. Saya perhatikan bahwa include direktori berisi file bernama tests_banners; ini tampak seperti tempat yang bagus untuk dilihat. Dengan bantuan dari grep , saya melihat tes terkait:

# grep -E 'BANN-7126|BANN-7130' /usr/share/lynis/include/tests_banners
    # Tes        :BANN-7126
    Daftar --test-no BANN-7126 - -preqs-met ${PREQS_MET} --weight L --network NO --category security --description "Periksa konten file banner masalah"
    # Test        :BANN-7130
    Daftar --test-no BANN-7130 --preqs-met ${PREQS_MET} --weight L --network NO --category security --description "Periksa konten file banner issue.net"

Setelah memeriksa kode terkait dalam file untuk pengujian, saya menemukan bahwa kedua pengujian ini berulang melalui beberapa istilah hukum yang telah ditentukan sebelumnya dengan for lingkaran:

for ITEM in ${LEGAL_BANNER_STRINGS}; do 

Istilah hukum ini disimpan dalam variabel LEGAL_BANNER_STRINGS didefinisikan di bagian atas file. Menggulir kembali ke atas menunjukkan daftar lengkap:

LEGAL_BANNER_STRINGS="audit access authori condition connect consent continu criminal enforce evidence forbidden intrusion law legal legislat log monitor owner penal policy policies privacy private prohibited record restricted secure subject system terms warning" 

Saran awal saya ("jauhkan" dan "jangan rusak apa pun") tidak akan memenuhi pengujian, karena tidak mengandung kata apa pun dari daftar ini.

Pesan spanduk ini berisi beberapa kata yang diperlukan, dan oleh karena itu, pesan tersebut akan memenuhi pengujian ini dan mencegah Lynis melaporkannya:

Perhatian, dengan terus menyambung ke sistem ini, Anda menyetujui pemilik menyimpan log dari semua aktivitas. Akses tidak sah dilarang.

Perhatikan bahwa pesan ini harus ditambahkan ke /etc/issue dan /etc/issue.net .

Membuatnya dapat diulang

Anda dapat melakukan pengeditan ini secara manual, tetapi Anda mungkin ingin mempertimbangkan otomatisasi. Misalnya, mungkin ada banyak pengaturan yang perlu diubah, atau Anda mungkin perlu melakukan pengeditan ini secara teratur di banyak server. Membuat skrip pengerasan akan menjadi cara yang bagus untuk merampingkan proses ini. Untuk konfigurasi SSH, beberapa sed perintah dalam skrip pengerasan Anda akan menyelesaikan temuan tersebut. Atau, Anda dapat menggunakan pernyataan gema untuk menambahkan spanduk resmi:

sed -i '/MaxAuthTries/s/#MaxAuthTries 6/MaxAuthTries 3/' /etc/ssh/sshd_config

echo "Spanduk Hukum" | tee -a /etc/issue /etc/issue.net

Otomatisasi memungkinkan Anda membuat skrip berulang yang dapat disimpan dan dikelola di seluruh infrastruktur Anda. Anda juga dapat memasukkan skrip ini ke dalam penyediaan server awal Anda.

Perkuat sistem Anda

Jenis latihan ini dapat meningkatkan keterampilan skrip Anda baik dengan mengikuti kode yang ada maupun dengan menulis skrip Anda sendiri. Karena open source, Lynis memudahkan untuk melihat bagaimana sistem Anda diperiksa dan apa arti laporannya. Hasil akhirnya akan menjadi sistem yang dikeraskan dengan baik yang dapat Anda pamerkan kapan pun auditor tersebut datang.


Linux
  1. Pindai keamanan Linux Anda dengan Lynis

  2. Linux – Jalankan Vs Baca Bit. Bagaimana Izin Direktori Di Linux Bekerja?

  3. Linux – Bagaimana Cara Memperbaiki/menginstal/menginstal ulang Grub?

  1. Cara Memantau Keamanan Server Linux dengan Osquery

  2. Bagaimana cara membaca halaman manual Linux?

  3. Cara membaca respons websocket di shell linux

  1. Cara Meningkatkan Waktu Startup Aplikasi Di Linux

  2. Cara Membaca Log Audit di Linux

  3. Bagaimana fakeroot bukan pelanggaran keamanan di Linux?