GNU/Linux >> Belajar Linux >  >> Linux

Pemantauan keamanan di Linux dengan Tripwire

Setiap sysadmin kehilangan waktu tidur sesekali karena gangguan sistem. Tidak ada yang menginginkan server yang menjadi tanggung jawabnya dikompromikan. Masalahnya adalah, meskipun Anda dapat meninjau log secara teratur, intrusi sistem yang benar-benar efektif tidak meninggalkan log yang jelas tergeletak di sekitar. Hal ini membuat sulit untuk mengetahui secara pasti apakah sistem Anda aman.

Selain menyetel SELinux ke Enforcing dan menerapkan pentests reguler, salah satu cara terbaik untuk memantau sistem Anda dari pelanggaran keamanan adalah dengan — memantau sistem Anda dari pelanggaran keamanan. Jika itu tampaknya lebih mudah diucapkan daripada dilakukan, maka Anda perlu mencoba Tripwire. Tripwire adalah alat pemantauan integritas file yang mengawasi perubahan pada file penting di sistem Anda. Artikel ini menunjukkan cara menginstal, menyiapkan, dan menggunakan Tripwire di jaringan Anda.

Tripwire adalah perusahaan dan basis kode sumber terbuka. Anda dapat membeli pemantauan dari Tripwire, atau Anda dapat menggunakan kode GPLv2 yang mereka sediakan di GitHub. Trade-off yang biasa berlaku. Jika Anda membayarnya, Tripwire melakukan sebagian besar kerja keras untuk Anda, dan yang harus Anda lakukan hanyalah memperhatikan laporannya. Jika Anda mengimplementasikan Tripwire sendiri, Anda dapat mengaturnya dan mengonfigurasinya sendiri.

Memasang

Untuk menginstal Tripwire di RHEL atau CentOS, Anda harus menambahkan repositori Paket Ekstra untuk Enterprise Linux (EPEL). Pada RHEL 8, Anda harus mengaktifkan codeready-builder opsi di subscription-manager :

$ sudo repos --enable "codeready-builder-for-rhel-8-$(arch)-rpms"

Di CentOS, Anda harus mengaktifkan PowerTools :

$ sudo dnf config-manager --set-enabled PowerTools

Untuk menginstal:

$ sudo dnf install -y epel-release

Dengan EPEL sekarang ditambahkan ke daftar repositori Anda, instal Tripwire :

$ sudo dnf install -y tripwire

Menyetel nama host

Sebelum mengonfigurasi Tripwire, Anda harus menetapkan nama host untuk server Anda jika belum memilikinya. Nama host sering menjadi titik kebingungan, jadi baca artikel saya tentang menyetel nama host untuk memastikan Anda memahami apa yang Anda atur. Di CentOS, RHEL, dan Fedora, Anda dapat mengatur nama host dengan hostnamectl :

$ sudo hostnamectl set-hostname --pretty "Rockhopper tripwire demo machine"
$ sudo hostnamectl set-hostname --static rockhopper

Membuat kunci

Selanjutnya, Anda harus membuat kunci enkripsi untuk Tripwire. Bagaimanapun, tujuan Tripwire adalah untuk mencegah penyerang menutupi jejak mereka, jadi data Tripwire harus dienkripsi dengan kuat.

Pertama, buat kunci lokal dengan twadmin alat:

$ sudo twadmin --generate-keys --local-keyfile /etc/tripwire/$(hostname)-local.key

Selanjutnya, buat kunci situs:

$ sudo twadmin --generate-keys --site-keyfile /etc/tripwire/site.key

Dalam kedua kasus, Anda harus memberikan frasa sandi untuk setiap kunci. Jaga agar frasa sandi ini tetap pribadi dan aman!

Tripwire menggunakan dua kunci berbeda untuk enkripsi:kunci lokal, yang unik untuk setiap server, dan kunci situs, yang dapat Anda gunakan di semua sistem dalam organisasi Anda. Kunci situs adalah fitur penting karena memungkinkan manajer TI untuk mendikte kebijakan keamanan tunggal untuk organisasi, dan dapat diperbarui secara terpusat, ditandatangani dengan kunci situs, dan kemudian didistribusikan dengan Ansible atau scp untuk digunakan di setiap server. Setiap admin server masih memiliki kunci lokal yang unik, jadi meskipun file kebijakan keamanan tidak dapat diubah, mereka masih dapat mengakses Tripwire untuk pembaruan dan laporan.

File konfigurasi tripwire

Selanjutnya, Anda perlu membuat file konfigurasi dasar untuk Tripwire. Sebagian besar default dalam konfigurasi dapat diterima, dan tidak ada yang perlu untuk diubah kecuali Anda tahu sistem Anda berbeda dalam beberapa hal yang signifikan dari apa yang Anda lihat dalam contoh file konfigurasi yang disediakan di /etc/tripwire/twcfg.txt . Secara default, Tripwire menggunakan sendmail untuk mengirimi Anda email peringatan. Jika Anda menggunakan postfix, tidak perlu mengubahnya, karena postfix menyediakan sendmail alias. Juga ditentukan dalam file konfigurasi adalah lokasi kunci enkripsi dan file kebijakan Anda, jadi pastikan bahwa itu benar.

Jika Anda puas dengan opsi konfigurasi, gunakan twadmin untuk memvalidasi teks konfigurasi dan menuliskannya ke file bernama /etc/tripwire/tw.cfg , yang ditandatangani dengan kunci situs. Menandatangani file konfigurasi memerlukan frasa sandi ke kunci situs Anda.

$ sudo twadmin --create-cfgfile --site-keyfile=/etc/tripwire/site.key /etc/tripwire/twcfg.txt
Please enter your site passphrase:
Wrote configuration file: /etc/tripwire/tw.cfg

Sintaks file kebijakan

File kebijakan adalah tempat Anda melakukan sebagian besar pekerjaan untuk Tripwire. Kebijakan Tripwire Anda menentukan file mana yang harus dipantau dan mana yang diabaikan, dan mana yang berada di antara keduanya. Kedua ekstrem itu sama pentingnya. Jika laporan Tripwire harian Anda mengirimkan positif palsu untuk setiap file pengguna yang berubah sepanjang hari kerja, maka Anda akan segera belajar untuk mengabaikan laporan Tripwire sama sekali.

Contoh file kebijakan yang dibundel dengan pemasangan EPEL Tripwire dibuat berdasarkan pemasangan penuh Fedora Workstation. Anda harus menyesuaikannya untuk sistem Anda kecuali Anda menjalankan instalasi penuh Fedora Workstation, tetapi membacanya membantu memberi Anda gambaran tentang isi file kebijakan standar. Untuk memecahkan kode notasi Tripwire, tinjau twpolicy(4) halaman manual.

File kebijakan bisa rumit, dan mungkin membantu untuk menganggapnya lebih seperti Sass atau Makefile daripada file konfigurasi. Anda dapat membuat variables , atau gunakan beberapa yang default, dan rules , dan bahkan conditionals untuk mengatur cara Tripwire memperlakukan direktori dan file individual.

Misalnya, ReadOnly variabel mendefinisikan aturan untuk file yang dimaksudkan untuk dibaca-saja. Dalam konteks ini, "hanya-baca" tidak berarti izin filenya disetel ke r-- (yaitu, 400 ), namun secara umum tidak ada perubahan yang diharapkan dari waktu inisialisasi Tripwire ke laporan harian, atau laporan harian.

Aturan disusun sebagai garis yang diakhiri dengan titik koma (; ) dan dibatasi oleh panah (-> ). Blok kode ini menyetel executable Tripwire ke ReadOnly :

/sbin/siggen    ->   $(ReadOnly);
/sbin/tripwire  ->   $(ReadOnly);
/sbin/twadmin   ->   $(ReadOnly);
/sbin/twprint   ->   $(ReadOnly);

File sampel dari Fedora menggunakan variabel untuk mendefinisikan sebagian besar aturan. Misalnya:

SEC_BIN = $(ReadOnly) ;  # Binaries that should not change

Jadi entri untuk memantau binari Tripwire adalah:

/sbin/siggen    ->   $(SEC_BIN);
/sbin/tripwire  ->   $(SEC_BIN);
/sbin/twadmin   ->   $(SEC_BIN);
/sbin/twprint   ->   $(SEC_BIN);

Kedua contoh tersebut memiliki tujuan yang sama persis, dan implementasinya hanya berbeda.

Gunakan file kebijakan sampel sebagai titik awal dan buat kebijakan untuk memantau sistem Anda.

Membuat file kebijakan

Khusus untuk pengujian, tambahkan baris ini ke File Data Tripwire bagian:

/etc/tripwire/secrets -> $(SEC_CRIT); # proof of concept

Buat kritis file uji bernama secrets :

$ sudo touch /etc/tripwire/secrets

Buat file kebijakan Anda dengan twadmin :

$ sudo twadmin --create-polfile \
--site-keyfile=/etc/tripwire/site.key \
/etc/tripwire/twpol.txt

Masukkan frasa sandi kunci situs Anda saat diminta.

Ini menghasilkan file yang ditandatangani dan dienkripsi, /etc/tripwire/tw.pol .

Menginisialisasi Tripwire

Dengan kunci yang dibuat, set konfigurasi, dan file kebijakan, Anda sekarang dapat menginisialisasi Tripwire:

$ sudo tripwire --init

Masukkan lokal . Anda frasa sandi kunci saat diminta.

Jika Anda melihat peringatan, baca dengan cermat dan perbaiki entri yang salah dalam file kebijakan Anda. Tidak jarang upaya pertama Anda pada file kebijakan, terutama jika didasarkan pada file yang sudah ada, untuk merujuk file yang sebenarnya tidak ada di sistem Anda. Anda dapat mengatasinya dengan menginstal file yang hilang atau dengan menghapus referensi ke file tersebut dari /etc/tripwire/twpol.txt Anda file induk.

Jika Anda harus membuat perubahan, perbarui file kebijakan Anda dengan membuatnya kembali, lalu inisialisasi ulang database Anda:

$ sudo twadmin --create-polfile \
--site-keyfile=/etc/tripwire/site.key \
/etc/tripwire/twpol.txt
$ sudo tripwire --init

Anda harus melakukan ini sampai Anda mencapai tempat awal yang baik. Setelah Anda memiliki basis data awal yang waras, Anda tidak boleh menginisialisasi ulang basis data Anda, tetapi gunakan tripwire perintah untuk memeriksa integritas sistem Anda dan, secara opsional, menimpa perbedaan yang dapat diterima dengan --interactive pilihan:

$ sudo tripwire --check --interactive

Melihat laporan

Pemasangan EPEL Tripwire membuat cron pekerjaan untuk menjalankan laporan Tripwire, dan mengirim laporan melalui email ke root . Anda juga dapat menjalankan laporan manual:

$ sudo tripwire --check

Perintah ini menyimpan file laporan ke /var/lib/tripwire/reports (atau lokasi apa pun yang Anda tetapkan di file konfigurasi). Untuk melihat file ini, gunakan twprint perintah:

$ sudo twprint --print-report --report-level 1 \
--twrfile /var/lib/tripwire/reports/`hostname`-20200317-163425.twr

Untuk melihat laporan dengan kesalahan, ubah secrets menguji file dan menjalankan laporan:

$ sudo echo 1 > /etc/tripwire/secrets
$ sudo tripwire --check

Kemudian lihat laporannya:

$ sudo twprint --print-report --report-level 1 \
--twrfile /var/lib/tripwire/reports/`hostname`-20200317-164413.twr
Added: "/var/lib/tripwire/rockhopper.twd.bak
Modified: "/etc/tripwire/secrets"

Dengan asumsi Anda senang dengan modifikasi file pengujian Anda, Anda dapat memperbarui database Tripwire:

$ sudo tripwire --update \
--twrfile /var/lib/tripwire/reports/`hostname`-20200317-164413.twr

Lindungi sistem Anda

Tripwire adalah monitor keamanan yang sangat presisi dan sangat bertele-tele. Berhenti berjuang untuk mengurai log untuk tanda-tanda penyusup dan membuat Tripwire bekerja untuk Anda. Dengan Tripwire, ketika sesuatu berubah pada sistem, Anda akan mengetahuinya, dan Anda dapat menanganinya dengan tepat.

[ Ingin mempelajari lebih lanjut tentang keamanan? Lihat daftar periksa keamanan dan kepatuhan TI. ]


Linux
  1. Enkripsi dan dekripsi file dengan frasa sandi di Linux

  2. Pindai keamanan Linux Anda dengan Lynis

  3. 5 tips untuk memulai dengan keamanan server Linux

  1. Menyeimbangkan keamanan Linux dengan kegunaan

  2. Keamanan Linux:Memanipulasi kebijakan SELinux dengan Booleans

  3. Memulai SSH di Linux

  1. Bertahan dari audit keamanan dengan Linux perusahaan

  2. Keamanan Linux:Lindungi sistem Anda dengan fail2ban

  3. Cara Memantau Keamanan Server Linux dengan Osquery