Menambal kernel di server Linux tampaknya sederhana. Itu dapat dilakukan dengan menggunakan alat-alat umum seperti dpkg, apt-get, atau kexec. Metode ini, bagaimanapun, menjadi rumit jika sebuah organisasi menjalankan ratusan atau ribuan server. Banyak server berarti banyak distribusi untuk ditambal, yang masing-masing memerlukan perhatian pribadi dari sysadmin atau teknisi.
Metode penambalan manual ini juga berisiko karena memerlukan reboot. Reboot melibatkan waktu henti server, yang selalu bermasalah, jadi biasanya dilakukan dalam siklus reboot. Karena penambalan manual dilakukan selama siklus ini, ini memberi peretas "jendela waktu" di mana mereka dapat menyerang infrastruktur server.
Untuk organisasi yang menjalankan lebih dari beberapa server, patching langsung adalah pilihan yang lebih baik. Ini adalah cara otomatis untuk menambal kernel Linux saat server sedang berjalan, yang memungkinkannya menjadi lebih efisien dan lebih aman daripada metode manual. Mari pelajari cara menyiapkan empat sistem patching langsung paling populer dari Canonical, Oracle, Red Hat, dan CloudLinux.
Apa itu patch langsung dan cara kerjanya
Pada akhirnya, ada dua metode live patching untuk kernel dan library:sementara dan persisten. Metode sementara menerapkan tambalan tanpa reboot tetapi sebenarnya membutuhkan me-reboot server nanti. Tambalan langsung yang persisten tidak memerlukan reboot.
Metode Sementara
Metode sementara (atau penambalan "tumpukan") dijalankan dengan perangkat lunak manajemen paket (seperti plugin YUM). Patch dikirimkan ke repositori dan diterapkan sesuai dengan alur kerja pembaruan yang ditentukan oleh pengguna.
Patching "Stack" sama dengan reboot dan downtime server, meskipun Anda mungkin tidak perlu reboot segera setelah Anda menginstal patch, tetapi karena arsitektur jenis pembaruan langsung ini, patch keamanan menumpuk di atas satu sama lain dari waktu ke waktu, berpotensi menurunkan kinerja dan stabilitas. Satu-satunya solusi untuk masalah ini adalah me-reboot server untuk memuat kernel baru ke dalam memori.
Vendor yang menyediakan patch sementara adalah:
- Tambalan Langsung Kanonik
- kGraph
- Tambalan langsung kernel Amazon Linux 2
Metode Persisten
Dalam kasus metode persisten, server menyimpan tambalan terbaru dan tambalan ini disebut "monolitik" karena berisi tambalan sebelumnya. Untuk memperbarui server, program agen berjalan di latar belakang, memeriksa patch server untuk patch. Jika ada patch untuk kernel di server patch, agen akan memanggil modul patching dan menerapkan patch tersebut.
Tambalan persisten memiliki keuntungan penting lainnya:
- Server yang menggunakan metode persisten tetap aktif dan berjalan bahkan dengan kerentanan perangkat keras yang biasanya memerlukan boot ulang untuk menambal, seperti Spectre, Meltdown, dan Zombieload;
- Ini mengurangi waktu dan upaya yang diperlukan untuk mengelola server dengan otomatisasi proses patching lengkap;
- Ini memungkinkan server untuk tetap aktif dan berjalan, seringkali selama bertahun-tahun.
Metode tambalan persisten biasanya melibatkan biaya vendor, dengan periode uji coba gratis tersedia dari sebagian besar vendor:
- Ksplice
- Kpatch
- KernelCare
Mengatur pembaruan Kernel tanpa boot otomatis di server Linux
Di bawah ini kami akan menunjukkan kepada Anda cara mengatur pembaruan kernel tanpa reboot di server Linux menggunakan layanan Livepatch, Kpatch, Ksplice, dan KernelCare.
Catatan:Sebelum Anda mulai menerapkan petunjuk ini, pastikan sistem Anda sudah diperbarui dan dicadangkan.
1. Menyiapkan Livepatch Kanonik
Layanan Livepatch Canonical dapat diatur baik selama atau setelah instalasi. Ini akan menginstal patch keamanan kernel hanya ketika Anda menjalankan perintah apt-get upgrade (oleh karena itu, semi-otomatis).
Kelebihan: Sederhana. Setengah otomatis. Tidak perlu reboot.
Kekurangan: Mahal untuk 4 host atau lebih (tetapi gratis hingga 3 host untuk semua dan hingga 50 mesin jika Anda adalah anggota Komunitas Ubuntu). Tidak ada pengembalian patch.
Biaya, per server: Bulanan (Tidak tersedia), Tahunan ($225).
Untuk menginstal Livepatch di Ubuntu 20.04 LTS Server (juga berfungsi pada versi 16.04 LTS, 14.04 LTS, dan 18.04 LTS), buka terminal dan jalankan dua perintah ini:
sudo snap install canonical-livepatch
sudo canonical-livepatch enable <your key>
Untuk membatalkan pendaftaran server, gunakan perintah ini:
sudo canonical-livepatch disable <your key>
Untuk memeriksa status layanan, gunakan perintah ini:
sudo canonical-livepatch status --verbose
2. Menyiapkan Oracle Ksplice
Kecuali Anda menjalankan instance Ksplice di dalam Oracle Cloud, Anda memerlukan kunci akses untuk menginstalnya. Ini dapat diperoleh dengan masuk ke Jaringan Linux yang Tidak Dapat Dipecahkan, dan mengikuti petunjuk untuk mendaftarkan sistem Anda ke Ksplice.
Untuk menginstal Ksplice, sistem Anda harus memiliki akses ke internet. Jika Anda menggunakan proxy, setel proxy di shell Anda:
# export http_proxy=http://proxy.example.com:port
# export https_proxy=http://proxy.example.com:port
Proxy harus mendukung pembuatan koneksi HTTPS, dan string proxy harus dalam format ini:
[protocol://][username:[email protected]]<host>[:port]
- protokol adalah protokol untuk terhubung ke proxy (http atau https)
- nama pengguna dan sandi adalah informasi autentikasi yang diperlukan untuk menggunakan proxy Anda (jika ada).
- host dan port adalah nama host/alamat ip dan nomor port yang digunakan untuk terhubung ke proxy
Jalankan instruksi berikut sebagai root, ganti YOUR_ACCESS_KEY dengan kunci akses yang Anda terima di langkah sebelumnya.
Di dalam Oracle Cloud
Untuk menginstal Ksplice di dalam Oracle Cloud sehingga pembaruan kernel diinstal secara otomatis, jalankan perintah berikut:
# wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
# sh install-uptrack-oc --autoinstall
Untuk menerapkan pembaruan yang tersedia ke Uptrack, aplikasi yang menginstal pembaruan kernel secara otomatis, jalankan perintah ini:
# uptrack-upgrade -y
Jika Anda sudah menginstal Uptrack, Anda dapat mengaktifkannya dengan mengatur autoinstall =yes di /etc/uptrack/uptrack.conf setelah Ksplice diinstal.
Untuk menginstal Ksplice agar pembaruan diterapkan secara manual, jalankan perintah berikut:
# wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
# sh install-uptrack-oc
Di luar Oracle Cloud
Untuk menginstal Ksplice di luar Oracle Cloud sehingga pembaruan kernel diinstal secara otomatis, jalankan perintah berikut:
# wget -N https://ksplice.oracle.com/uptrack/install-uptrack
# sh install-uptrack YOUR_ACCESS_KEY --autoinstall
Untuk menginstal Ksplice agar pembaruan diterapkan secara manual, jalankan perintah berikut:
# wget -N https://ksplice.oracle.com/uptrack/install-uptrack
# sh install-uptrack YOUR_ACCESS_KEY
Catatan:Jika Anda menginstal Ksplice di server Debian atau Ubuntu, Anda mungkin perlu menginstal ca-sertifikat paket dengan apt-get install ca-sertifikat. Tanpa paket ini, Anda akan melihat "kesalahan verifikasi sertifikat".
4. Menyiapkan Red Hat Kpatch
Instalasi Kpatch sederhana dan mudah:
Jalankan perintah update untuk memperbarui repositori paket dan mendapatkan informasi paket terbaru:
sudo apt-get update -y
Jalankan perintah install dengan flag -y untuk menginstal paket dan dependensi dengan cepat:
sudo apt-get install -y patch
5. Menyiapkan CloudLinux KernelCare
Untuk melihat apakah kernel yang berjalan didukung oleh KernelCare, jalankan salah satu dari perintah berikut:
curl -s -L https://kernelcare.com/checker | python
atau
wget -qq -O – https://kernelcare.com/checker | python
Untuk menginstal KernelCare, jalankan salah satu dari perintah ini:
curl -s -L https://kernelcare.com/installer | bash
atau:
wget -qq -O - https://kernelcare.com/installer | bash
Jika Anda menggunakan lisensi berbasis IP, tidak ada lagi yang diperlukan. Jika Anda menggunakan lisensi berbasis kunci, jalankan perintah ini:
$ /usr/bin/kcarectl --register KEY
KEY adalah string kode kunci pendaftaran yang Anda terima saat membeli KernelCare atau mendaftar untuk uji coba gratis. Anda bisa mendapatkan kunci di sini.
Untuk membatalkan pendaftaran server, jalankan:
sudo kcarectl --unregister
Untuk memeriksa status layanan, jalankan:
sudo kcarectl --info
KernelCare secara otomatis memeriksa patch baru setiap 4 jam. Untuk melakukan pembaruan secara manual alih-alih otomatis, jalankan:
/usr/bin/kcarectl –update
Kesimpulan
Petunjuk penginstalan untuk beberapa solusi penambalan langsung ini mencantumkan semua langkah yang diperlukan untuk menginstalnya di lingkungan Anda. Setelah selesai, Anda akan menikmati manfaat dari teknologi live patching:dapat memperbarui kernel tanpa menghentikan server, tanpa perlu reboot selama berbulan-bulan, atau bahkan bertahun-tahun.