Minggu, 06 April 2025

Cara Instalasi dan Konfigurasi HashiCorp Vault di CentOS/Rocky Linux

Di era digital saat ini, melindungi informasi sensitif seperti kata sandi dan kunci API bukan lagi sekadar tindakan pencegahan, tetapi sebuah keharusan bisnis. Ancaman siber yang semakin canggih menuntut solusi yang kuat dan komprehensif untuk melindungi kredensial dari akses dan penyalahgunaan yang tidak sah. Di sinilah HashiCorp Vault hadir sebagai alat penting dalam persenjataan keamananmu.

Vault adalah solusi manajemen rahasia terkemuka di industri yang dirancang untuk menyimpan dan mengelola data sensitif secara aman, termasuk kata sandi, sertifikat, kunci API, dan informasi rahasia lainnya. Ia menyediakan platform terpusat untuk mengontrol akses ke rahasia, mengenkripsi data saat transit dan saat istirahat, serta mengaudit akses untuk memastikan kepatuhan terhadap kebijakan keamanan.

Panduan ini akan memandumu melalui proses instalasi dan konfigurasi Vault di CentOS dan Rocky Linux, dua sistem operasi server yang populer dan andal. Karena kedua distribusi ini didasarkan pada Red Hat Enterprise Linux (RHEL), proses instalasinya sangat mirip. Pada akhir tutorial ini, Kamu akan memiliki instance Vault yang berfungsi penuh dan siap melindungi rahasia organisasimu yang paling berharga.

Persiapan Instalasi Vault

Sebelum kita membahas proses instalasi, mari pastikan Kamu memiliki prasyarat yang diperlukan. Ini penting untuk pengaturan yang lancar dan sukses.

  1. Server CentOS atau Rocky Linux yang Berjalan: Kamu memerlukan instance server yang menjalankan versi stabil CentOS atau Rocky Linux. Pastikan server dikonfigurasi dengan benar dengan konektivitas jaringan.

  2. Akun Pengguna dengan Hak Akses Root atau Sudo: Kamu memerlukan akun pengguna dengan hak akses root atau kemampuan untuk menjalankan perintah dengan sudo. Ini diperlukan untuk menginstal perangkat lunak dan mengonfigurasi layanan sistem.

Dengan prasyarat ini, Kamu siap memulai perjalanan instalasi!

Instalasi Vault: Langkah demi Langkah

Langkah-langkah berikut akan memandumu melalui proses instalasi biner Vault di server CentOS atau Rocky Linux Kamu.

Langkah #1: Mengunduh Biner Vault

HashiCorp menyediakan biner pra-bangun untuk berbagai sistem operasi, termasuk RHEL/CentOS. Biner ini adalah komponen inti dari Vault dan penting untuk menjalankan layanan.

  1. Identifikasi Arsitektur Prosesor Kamu: Tentukan arsitektur prosesor server Kamu. Arsitektur umum termasuk 386, amd64, dan arm. Informasi ini sangat penting untuk memilih biner yang benar.

  2. Kunjungi Halaman Unduhan Vault: Arahkan ke halaman unduhan HashiCorp Vault resmi di situs web mereka. Di sini, Kamu akan menemukan daftar lengkap versi Vault yang tersedia dan biner untuk berbagai sistem operasi dan arsitektur.

  3. Temukan Biner yang Sesuai: Temukan biner yang sesuai dengan sistem operasi server Kamu (RHEL/CentOS) dan arsitektur prosesor. Salin tautan ke file .zip yang sesuai.

  4. Unduh Biner menggunakan wget: Buka terminal di server Kamu dan gunakan perintah wget untuk mengunduh file biner ke direktori yang sesuai, seperti direktori Unduhan pengguna Kamu.

      # wget https://releases.hashicorp.com/vault/1.18.5/vault_1.18.5_linux_386.zip
    

Catatan: Ganti URL pada perintah di atas dengan URL sebenarnya dari biner yang Kamu unduh dari situs web HashiCorp.

  1. Ekstrak Biner: Setelah unduhan selesai, gunakan perintah unzip untuk mengekstrak isi file .zip. Ini akan membuat direktori yang berisi executable Vault.

      # unzip vault_1.18.5_linux_386.zip
    
  1. Atur Kepemilikan: Pastikan bahwa pengguna root memiliki kepemilikan dan akses penuh ke direktori yang diekstrak. Ini penting untuk keamanan dan pengoperasian Vault yang tepat. Gunakan perintah chown berikut:

      # sudo chown root:root vault
    

Langkah #2: Memindahkan Biner Vault ke /usr/local/bin

Untuk membuat Vault dapat diakses dari mana saja di terminal tanpa menentukan jalur lengkapnya, kita perlu memindahkan biner yang diekstrak ke direktori /usr/local/bin. Direktori ini biasanya digunakan untuk executable yang bukan bagian dari perangkat lunak sistem default.

  1. Pindahkan Biner: Gunakan perintah mv untuk memindahkan direktori Vault ke /usr/local/bin:

      # sudo mv vault /usr/local/bin/
    
  1. Verifikasi Pemindahan: Konfirmasikan bahwa direktori Vault telah berhasil dipindahkan ke /usr/local/bin dengan mencantumkan isi direktori:

      # ls /usr/local/bin/
    

Kamu akan melihat executable vault terdaftar di antara file-file di direktori.

Langkah #3: Verifikasi Instalasi Vault

Sekarang biner Vault sudah ada, saatnya untuk memverifikasi bahwa instalasi berhasil dan Vault siap untuk konfigurasi.

  1. Periksa Versi Vault: Gunakan perintah vault version untuk menampilkan informasi versi dari biner Vault yang terinstal:

      # vault --version
    

Jika Kamu melihat nomor versi dan detail lainnya tentang instalasi Vault, itu mengonfirmasi bahwa Vault telah diinstal dengan benar.

  1. Jelajahi Argumen Perintah: Untuk mendapatkan gambaran singkat tentang perintah Vault yang tersedia dan penggunaannya, jalankan perintah vault tanpa argumen apa pun:

      # vault
    

Ini akan menampilkan daftar perintah dan opsi yang bermanfaat, memungkinkan Kamu untuk menjelajahi kemampuan Vault.

Konfigurasi Vault untuk Manajemen Rahasia yang Aman

Dengan Vault berhasil diinstal, langkah penting selanjutnya adalah mengonfigurasinya untuk memenuhi persyaratan keamanan spesifik Kamu. Ini melibatkan pengaturan pengguna khusus, mengonfigurasi layanan Vault, dan memahami proses unsealing.

Langkah #1: Membuat Pengguna Vault Non-Root

Praktik terbaik keamanan menyatakan bahwa operasi Vault harus ditangani oleh pengguna non-root. Ini meminimalkan potensi kerusakan jika terjadi kompromi keamanan.

  1. Buat Pengguna vault: Gunakan perintah useradd untuk membuat pengguna sistem khusus untuk menjalankan Vault:

      # sudo useradd --system --home /etc/vault.d --shell /bin/false vault
    
  • --system: Membuat pengguna sistem, biasanya digunakan untuk menjalankan layanan.

  • --home /etc/vault.d: Mengatur direktori home untuk pengguna ke /etc/vault.d, lokasi umum untuk file konfigurasi Vault.

  • --shell /bin/false: Menonaktifkan akses shell untuk pengguna, mencegah login langsung dan eksekusi perintah yang tidak sah.

  1. Verifikasi Pembuatan Pengguna: Konfirmasikan bahwa pengguna vault telah dibuat dengan memeriksa isi file /etc/passwd:

      # cat /etc/passwd | grep vault
    

Kamu akan melihat entri untuk pengguna vault dalam output.

Langkah #2: Menyiapkan Layanan Vault

Untuk menjalankan Vault sebagai layanan latar belakang dan mengelolanya menggunakan systemd, kita perlu membuat file unit layanan.

  1. Buat File vault.service: Gunakan editor teks seperti nano atau vim untuk membuat file bernama vault.service di direktori /etc/systemd/system/:

      # sudo nano /etc/systemd/system/vault.service
    
  1. Tambahkan Konfigurasi Layanan: Tempelkan konfigurasi berikut ke dalam file vault.service:

[Unit]
Description=HashiCorp Vault - A tool for managing secrets
Documentation=https://www.vaultproject.io/docs/
Requires=network-online.target
After=network-online.target
ConditionFileNotEmpty=/etc/vault.d/vault.hcl

[Service]
User=vault
Group=vault
ProtectSystem=full
ProtectHome=read-only
PrivateTmp=yes
PrivateDevices=yes
SecureBits=keep-caps
AmbientCapabilities=CAP_IPC_LOCK
CapabilityBoundingSet=CAP_SYSLOG CAP_IPC_LOCK
NoNewPrivileges=yes
ExecStart=/usr/local/bin/vault server -config=/etc/vault.d/vault.hcl
ExecReload=/bin/kill -signal HUP $MAINPID
KillMode=process
KillSignal=SIGINT
Restart=on-failure
RestartSec=5
TimeoutStopSec=30
LimitNOFILE=65536
LimitMEMLOCK=infinity

[Install]
WantedBy=multi-user.target
    
  • [Unit]: Mendefinisikan metadata tentang layanan, seperti deskripsi, tautan dokumentasi, dan dependensi.

  • Requires=network-online.target dan After=network-online.target: Memastikan bahwa jaringan online sebelum memulai Vault.

  • ConditionFileNotEmpty=/etc/vault.d/vault.hcl: Memverifikasi bahwa file konfigurasi Vault ada sebelum memulai layanan.

  • [Service]: Mendefinisikan parameter eksekusi layanan.

  • User=vault dan Group=vault: Menentukan bahwa layanan harus berjalan di bawah pengguna dan grup vault.

  • ProtectSystem=full, ProtectHome=read-only, PrivateTmp=yes, PrivateDevices=yes: Meningkatkan keamanan dengan membatasi akses ke sumber daya sistem.

  • SecureBits=keep-caps, AmbientCapabilities=CAP_IPC_LOCK, CapabilityBoundingSet=CAP_SYSLOG CAP_IPC_LOCK, NoNewPrivileges=yes: Lebih memperkuat keamanan dengan membatasi kemampuan.

  • ExecStart=/usr/local/bin/vault server -config=/etc/vault.d/vault.hcl: Menentukan perintah untuk memulai server Vault, menggunakan file konfigurasi yang terletak di /etc/vault.d/vault.hcl.

  • ExecReload=/bin/kill -signal HUP $MAINPID: Mendefinisikan perintah untuk memuat ulang layanan Vault.

  • KillMode=process, KillSignal=SIGINT: Mengonfigurasi cara layanan dihentikan.

  • Restart=on-failure, RestartSec=5: Secara otomatis memulai ulang layanan jika gagal.

  • TimeoutStopSec=30: Mengatur batas waktu untuk menghentikan layanan.

  • LimitNOFILE=65536, LimitMEMLOCK=infinity: Menyesuaikan batas sumber daya untuk layanan.

  • [Install]: Mendefinisikan cara layanan diaktifkan dan dimulai.

  • WantedBy=multi-user.target: Menentukan bahwa layanan harus dimulai ketika sistem memasuki mode multi-pengguna.

  1. Muat Ulang Daemon Systemd: Setelah membuat file layanan, muat ulang daemon systemd untuk mendaftarkan layanan baru:

      # sudo systemctl daemon-reload
    
  1. Aktifkan Layanan Vault: Aktifkan layanan Vault untuk memulai secara otomatis saat boot sistem:

      # sudo systemctl enable vault.service
    
  1. Mulai Layanan Vault: Mulai layanan Vault:

      # sudo systemctl start vault.service
    
  1. Periksa Status Layanan: Verifikasi bahwa layanan Vault berjalan dengan sukses:

      # sudo systemctl status vault.service
    

Output harus menunjukkan bahwa layanan aktif dan berjalan.

Langkah #3: Mengonfigurasi Akses Sistem Luas ke Vault

Untuk mengaktifkan akses mudah ke Vault dari mana saja di sistem, kita perlu mengonfigurasi variabel PATH dan mengatur alamat server Vault.

  1. Atur Variabel PATH: Tambahkan direktori /usr/local/bin ke variabel PATH di file konfigurasi shell Kamu (~/.bashrc):

      # echo "export PATH=$PATH:/usr/local/bin/" >> ~/.bashrc
    

Ini memastikan bahwa perintah vault dapat dieksekusi dari direktori mana pun.

  1. Atur Alamat Server Vault: Atur variabel lingkungan VAULT_ADDR ke alamat server Vault Kamu:

      # echo 'export VAULT_ADDR=http://your-Vault-server-ip:8200' >> ~/.bashrc
    

Ganti your-Vault-server-ip dengan alamat IP atau nama host sebenarnya dari server Vault Kamu. Port default untuk Vault adalah 8200.

  1. Muat Ulang Konfigurasi Bash: Muat ulang konfigurasi shell Bash untuk menerapkan perubahan:

      # source ~/.bashrc
    

Inisialisasi dan Unsealing Vault: Melindungi Rahasia Kamu

Sebelum Kamu dapat mulai menggunakan Vault untuk menyimpan dan mengelola rahasia, Kamu perlu menginisialisasi dan unseal. Proses ini memastikan bahwa rahasia Kamu dilindungi oleh enkripsi dan bahwa hanya pengguna yang berwenang yang dapat mengaksesnya.

Langkah #1: Inisialisasi Server Vault

Menginisialisasi server Vault adalah proses satu kali yang menghasilkan kunci enkripsi dan token root awal.

  1. Inisialisasi Vault: Jalankan perintah vault operator init:

      # vault operator init
    

Perintah ini akan menghasilkan lima kunci unseal dan satu token root awal.

Penting: Simpan kunci unseal dan token root ini di lokasi yang aman. Kehilangan mereka akan mengakibatkan hilangnya akses permanen ke Vault dan isinya.

Langkah #2: Unsealing Vault

Setelah inisialisasi, Vault dimulai dalam keadaan disegel, yang berarti bahwa data dienkripsi dan tidak dapat diakses. Untuk membuka kunci Vault, Kamu perlu "unseal" menggunakan kuorum kunci unseal.

  1. Unseal Vault: Jalankan perintah vault operator unseal tiga kali, setiap kali dengan kunci unseal yang berbeda:

# vault operator unseal <unseal-key-1>
# vault operator unseal <unseal-key-2>
# vault operator unseal <unseal-key-3>
    

Ganti <unseal-key-1>, <unseal-key-2>, dan <unseal-key-3> dengan tiga kunci unseal berbeda yang diperoleh selama inisialisasi.

  1. Verifikasi Status Vault: Setelah unsealing, verifikasi bahwa Vault dalam keadaan tidak disegel dengan menjalankan perintah vault status:

      # vault status
    

Output harus menunjukkan bahwa status Sealed adalah false, menunjukkan bahwa Vault tidak disegel dan siap digunakan.

Langkah #3: Login ke Vault

Sekarang Vault tidak disegel, Kamu dapat login menggunakan token root awal.

  1. Login ke Vault: Jalankan perintah vault login dengan token root:

      # vault login <root-token>
    

Ganti <root-token> dengan token root yang diperoleh selama inisialisasi.

Setelah login berhasil, Kamu akan dapat berinteraksi dengan Vault dan mulai mengelola rahasia Kamu.

Kesimpulan: Rahasia Kamu Aman

Dengan mengikuti panduan lengkap ini, Kamu telah berhasil menginstal dan mengonfigurasi HashiCorp Vault di CentOS atau Rocky Linux. Kamu telah mempelajari cara menginisialisasi Vault, unseal dengan aman, dan mengakses rahasia. Kamu juga telah memperoleh wawasan tentang praktik terbaik untuk menangani token root dan meningkatkan keamanan.

Vault menyediakan platform yang kuat dan serbaguna untuk mengelola data sensitif, melindungi kunci enkripsi, dan memberlakukan kontrol akses. Dengan Vault di tempatnya, Kamu dapat yakin bahwa rahasia organisasi Kamu aman dan terlindungi.

Kata kunci: Vault, HashiCorp, CentOS, Rocky Linux, Manajemen Rahasia, Kunci API, Perlindungan Kata Sandi, Keamanan, Instalasi, Konfigurasi, Unseal, Token Root, Enkripsi, Systemd, Server Linux

0 komentar:

Posting Komentar