GNU/Linux >> Belajar Linux >  >> Linux

Mengamankan sistem Linux yang diwariskan

Mereka mengatakan bahwa membeli rumah atau mobil bekas sama saja membeli masalah orang lain. Perbaikan lakban apa yang tersembunyi di dalam dinding atau di bawah kap? Tanpa mengetahui riwayat pemeliharaan, Anda perlu menyelidiki untuk menghindari hal yang tidak terduga.

Apakah ada server jahat, admin yang keluar dari perusahaan, atau akuisisi dan merger, di beberapa titik dalam perjalanan sysadmin Anda, Anda akan mewarisi server yang tidak Anda bangun tetapi tiba-tiba bertanggung jawab. Artikel ini akan fokus pada beberapa area untuk mulai mengamankan dan membiasakan diri dengan sistem baru. Mengambil pendekatan triase hanyalah titik awal:Keamanan adalah bagian dari siklus hidup berkelanjutan dalam mengelola sistem.

Perhatikan bahwa sistem ini menghosting aplikasi atau layanan yang perlu tetap tersedia. Gunakan proses manajemen perubahan yang diperlukan yang dimiliki perusahaan Anda. Selain itu, pahami juga kebijakan keamanan perusahaan Anda dan di mana Anda dapat merujuknya untuk pengaturan yang sesuai.

Cadangan

Selalu miliki rencana cadangan yang baik… dan cadangan yang dapat dipulihkan!

Mulai peninjauan dengan memeriksa apakah sistem dicadangkan secara teratur dan cadangan dapat dipulihkan. Jangan menunggu sampai Anda membutuhkan pemulihan untuk mengetahui itu buruk. Pemeriksaan pencadangan harus mencakup konfirmasi bahwa sistem file jarak jauh juga dicadangkan di suatu tempat.

Beberapa aplikasi dan database memerlukan proses atau agen khusus untuk mendapatkan pencadangan yang baik, jadi ini saat yang tepat untuk meninjau bahwa pencadangan tambahan tersebut dilakukan dengan benar. Melakukan pengujian pemulihan berkala yang mencakup pengujian aplikasi untuk fungsionalitas pasca-pemulihan mengidentifikasi celah dan masalah apa pun dengan pencadangan.

Anda mungkin juga ingin mengambil cadangan cepat sebelum melanjutkan. Pemulihan sistem yang lengkap mungkin tidak diperlukan, tetapi jika penyesuaian menjadi sangat salah, pencadangan ini menyediakan status kerja untuk digunakan kembali. Gunakan kontrol perubahan dan dokumentasikan pekerjaan Anda sebagai metode lain untuk membantu kemungkinan pemulihan.

Akun

Langkah Anda selanjutnya mencakup tinjauan tentang siapa yang memiliki akses ke sistem dan bagaimana mereka mengautentikasi. Semua hak istimewa yang ditingkatkan, seperti melalui sudo , juga perlu diperiksa. Ketahui kebijakan keamanan perusahaan seperti kedaluwarsa kata sandi dan aturan kompleksitas untuk memverifikasi bahwa itu diterapkan. Artikel basis pengetahuan ini menjelaskan detail tentang cara mengonfigurasi kebijakan sandi.

Catatan: Pastikan untuk memeriksa apakah sistem menggunakan sumber identitas seperti IDM, AD, atau LDAP. Sebaliknya, meskipun sistem menggunakan eksternal, akun lokal tetap harus ditinjau.

Mari kita lihat contoh spesifik masalah yang perlu Anda pertimbangkan dan cara menanganinya.

Akun admin sebelumnya

Karena sistem ini diwariskan, pertimbangkan apakah admin sebelumnya masih membutuhkan akun. Jika tidak, hindari menghapus akun mereka. Kunci itu, sebagai gantinya. Melakukannya akan menjaga informasi akun dan membantu mencegah penggunaan kembali UID secara tidak sengaja. usermod perintah yang dapat digunakan untuk mengunci akun:

$ sudo user mod -L <username>

Akun akses istimewa

Tinjau sudoers untuk menyertakan sudoers file (/etc/sudoers ) dan direktori sertakan (/etc/sudoers.d ). Periksa setiap tugas khususnya yang menyertakan ALL . Tugas ini biasanya mencakup grup wheel . Untuk menghapus pengguna dari grup, gunakan groupmems perintah seperti ini:

$ sudo groupmems -g wheel -d <username>

Anda juga dapat membuat daftar perintah yang diizinkan sudo untuk pengguna mana pun seperti ini:

$ sudo -l -U <username>

Akun lain

Jika ada akun yang dibagikan oleh banyak pengguna, pertimbangkan untuk memaksa perubahan sandi sebagai bagian dari penyerahan ini. Pendekatan yang lebih baik untuk akun bersama adalah dengan memanfaatkan grup dan ACL untuk izin file.

Akun layanan tidak boleh memiliki akses masuk sebagai praktik terbaik. Akun ini biasanya terkunci atau tidak memiliki kata sandi, dan memiliki shell seperti /usr/sbin/nologin . Jika akun layanan membutuhkan shell interaktif, pertimbangkan untuk memberikan sudo su <accountname> . kepada admin alih-alih login langsung.

Perintah lain yang dapat membantu saat meninjau akun adalah chage dan last . chage perintah menyediakan opsi untuk melihat dan menyesuaikan pengaturan kedaluwarsa akun. last perintah menunjukkan informasi tentang login terakhir.

Untuk melihat info kedaluwarsa akun:

$ sudo chage -l <username>

Untuk melihat lima login terakhir untuk sebuah akun:

$ last <username>  -5

Pelabuhan dan layanan

Meninjau layanan dan port yang berjalan membantu Anda mengidentifikasi yang tidak perlu dan dapat dinonaktifkan. Menghentikan layanan tambahan ini juga menghapusnya sebagai vektor serangan.

Salah satu cara cepat untuk menunjukkan apa yang sedang didengarkan adalah dengan ss memerintah. Contoh ini menggunakan opsi untuk menampilkan soket yang mendengarkan TCP dan UDP, dan juga menyertakan detail proses:

$ sudo ss -tulnp 

Menjalankan perintah ini pada server web sampel memberikan apa yang Anda lihat di sini:

Output ini menunjukkan bahwa ada httpd proses mendengarkan port 80 , 443 , 8080 , dan 8443 . Proses mendengarkan lainnya termasuk mariadb (mysqld ) pada port 3306 , xvnc pada port 5901 , dan vsftpd pada port21 . Tiga proses terakhir ini mungkin menimbulkan beberapa kekhawatiran.

Apa pun yang tidak diperlukan agar aplikasi atau sistem berfungsi harus dinonaktifkan. Jika Anda perlu melacak PID kembali ke systemd service, jalankan systemctl status :

$ systemctl status <PID>

Konfigurasi penelitian untuk layanan yang tersisa. Beberapa aplikasi mungkin mendukung ACL untuk menambahkan lapisan perlindungan lainnya. Pada sistem multihomed, periksa apakah layanan hanya diperlukan pada satu segmen jaringan. Local Address:Port kolom menunjukkan apakah layanan mendengarkan pada IP tertentu, atau di semua jaringan (* , 0.0.0.0 , atau :: ).

Mari kita lihat hal-hal tambahan yang dapat Anda lakukan untuk mengamankan port dan layanan Anda.

Port

Memindai port dengan alat seperti nmap menunjukkan port apa yang dapat dijangkau dari sistem lain. Alat ini juga dapat digunakan untuk memvalidasi bahwa firewall berfungsi seperti yang diharapkan. Anda memiliki beberapa opsi dengan nmap , tetapi untuk pemindaian cepat dan sederhana, Anda hanya perlu memberikan nama host atau alamat IP:

$ nmap <host-to-scan>

Layanan

Akses layanan Anda untuk melihat apa yang berjalan dan perlu, karena tidak semua layanan memiliki pendengar jaringan yang aktif. Anda bisa mendapatkan daftar layanan yang berjalan menggunakan --state opsi dengan systemctl , seperti ini:

$ systemctl --state=running -t s

Menghentikan dan menonaktifkan layanan sangat mudah dengan systemctl :

$ sudo systemctl stop <service name>
$ sudo systemctl disable <service name>

Juga, periksa layanan yang gagal dan perlu pemeliharaan:

$ systemctl --state=failed

Atau, jika layanan tidak diperlukan sama sekali, nonaktifkan dengan systemctl disable .

SELinux

SELinux harus diaktifkan dan diatur untuk diterapkan. Status ini dapat diperiksa menggunakan sestatus :

$ sestatus -v

Jika perlu, Anda dapat mengubah SELinux menjadi enforcing dengan perintah:

$ sudo setenforce Enforcing

Pertahankan perubahan dengan masuk ke /etc/selinux/config dengan mencari SELINUX=disable atau SELINUX=permissive , lalu ubah baris menjadi:

SELINUX=enforcing

Pemecahan masalah SELinux melampaui panduan ini, tetapi referensi awal yang baik adalah artikel basis pengetahuan ini.

Menambal

Memelihara dan mengamankan sistem termasuk pembaruan. Untuk server yang diwarisi, mulailah dengan memeriksa apakah sistem berlangganan dan dikonfigurasi untuk menerima pembaruan. Di Red Hat Enterprise Linux (RHEL), gunakan perintah ini untuk menampilkan informasi tentang layanan manajemen langganan:

$ sudo subscription-manager config --list 

baseurl tercantum di [rhsm ] memberikan informasi tentang langganan sistem ini. Jika cdn.redhat.com terdaftar, sistem berlangganan langsung ke Jaringan Pengiriman Konten Red Hat.

Contoh ini menunjukkan sistem yang berlangganan langsung ke Red Hat. Jika baseurl adalah server satelit, periksa repositori yang disinkronkan di sana untuk memastikan konten yang disinkronkan masih baru.

Konfirmasikan repo apa yang diaktifkan untuk sistem dengan perintah ini:

$ yum repolist --all

Output ini menunjukkan repositori yang dikonfigurasi dan statusnya. Jika repositori dinonaktifkan, itu tidak akan diperiksa patchnya saat sistem diperbarui.

Catatan: Dimulai dengan RHEL 8, CentOS 8, dan Fedora 22, yum diganti dengan dnf . yum semua opsi hampir sama dengan opsi untuk dnf , dan yum itu sendiri hanyalah tautan simbolis ke dnf .

Menjalankan yum check-update akan mencantumkan paket dan versi yang tersedia untuk pembaruan. Praktik terbaik menerapkan semua tambalan yang tersedia tetapi mungkin ada beberapa kasus di mana hanya perbaikan terkait keamanan yang diinginkan. Hal ini dimungkinkan untuk melakukan ini menggunakan --security pilihan.

Opsi ini dapat digabungkan dengan check-update untuk mengembalikan daftar tambalan yang memberikan bantuan dari kerentanan keamanan, tetapi akan melewatkan yang lainnya. Itu juga dapat disertakan dengan update perintah.

$ yum check-update 

Tambahkan --security opsi untuk membatasi keluaran ini pada pembaruan terkait keamanan.

Untuk sistem Red Hat Enterprise Linux, Anda dapat meninjau kekritisan setiap pembaruan dari Red Hat Satellite atau portal pelanggan. Setiap kesalahan keamanan memiliki peringkat (Kritis, Penting, Sedang, atau Rendah) berdasarkan potensi risiko. Peringkat membantu Anda menentukan seberapa cepat Anda perlu menjadwalkan pembaruan apa pun ke sistem.

Saat Anda siap untuk menambal, jalankan yum update perintah:

$ sudo yum update

Tinjau output dan tekan Y saat diminta.

Catatan: Pembaruan kernel memerlukan boot ulang, dan artikel ini mencantumkan paket lain yang memerlukan boot ulang untuk sistem RHEL. yum-utils paket juga menyertakan needs-restarting utilitas yang memeriksa apakah reboot diperlukan.

Langkah selanjutnya

Pemindaian kerentanan dan pemeriksaan kepatuhan harus dijadwalkan dan dilakukan jika waktu memungkinkan. Dua alat untuk mengeksplorasi topik ini adalah OpenVAS dan OpenSCAP. Alat-alat ini memberikan analisis sistem yang lebih dalam, melaporkan setiap kerentanan dan kesenjangan yang ada dalam kepatuhan. Jika Anda belum pernah menggunakan alat ini sebelumnya, mungkin perlu waktu untuk menyiapkan dan membiasakan diri, tetapi alat ini harus menjadi alat bantu Anda untuk mengamankan semua sistem yang Anda kelola.

Menutup

Ditugaskan untuk mengelola sistem yang dibangun orang lain tentu bisa jadi menakutkan. Sepanjang tinjauan sistem warisan Anda ini, Anda harus lebih mengenalnya, dan Anda akan meningkatkan keamanannya. Lanjutkan dengan tinjauan keamanan berkala untuk semua sistem Anda sebagai bagian dari siklus hidup sistem.

Pastikan untuk memeriksa kembali artikel mendatang saat kami mempelajari lebih dalam pemindaian kerentanan dan proses STIG.

[Ingin mencoba Red Hat Enterprise Linux? Unduh sekarang secara gratis.]


Linux
  1. Cara Mengubah Nama Host di Linux

  2. riwayat waktu aktif linux

  3. Menonaktifkan vsyscalls di Linux

  1. Contoh Perintah "shutdown" di Linux

  2. Resize2fs Contoh Perintah di Linux

  3. Contoh Perintah localectl di Linux

  1. Pengantar Sistem File Linux

  2. Alternatif untuk `memory.size()` R di linux?

  3. Sistem antrian Linux