DigitalOcean adalah penyedia cloud yang mirip dengan AWS, Microsoft Azure, Google Cloud Platform, dan banyak lainnya. Mereka menawarkan instans, yang disebut “tetesan”, dengan distribusi Linux yang berbeda seperti Debian, Ubuntu, FreeBSD, dll. Mirip dengan AWS, DigitalOcean memiliki pusat data di seluruh dunia dan terkadang beberapa pusat data di setiap negara.
Namun, satu fitur khusus membedakan mereka dari pesaing mereka. Beberapa saat yang lalu, mereka menambahkan dukungan untuk gambar khusus, yang memungkinkan pengguna untuk mengimpor disk mesin virtual dan menggunakannya sebagai tetesan. Ini sempurna bagi kami karena kami dapat menggunakan Kali Linux versi kami sendiri di cloud mereka.
Meskipun mungkin untuk memuat gambar virtual resmi Kali Linux, itu tidak akan terlalu efisien. Sebagai gantinya, kami akan membuat instalasi Kali yang ringan dengan minimal untuk membuatnya berfungsi.
Menghasilkan ISO
Secara default, ISO Kali Linux memiliki GUI yang terinstal, dan sementara kami dapat menggunakannya, kami ingin meminimalkan jumlah data yang harus kami unggah ke DigitalOcean untuk alasan yang akan kami bicarakan nanti. Menjalankan GUI pada sistem tanpa kepala juga merupakan pemborosan sumber daya sehingga sementara kami dapat menghapus atau menonaktifkannya, kami hanya akan membuat Kali ISO kustom tanpa GUI atau alat lain yang diinstal. Membangun ISO akan membutuhkan sekitar 5 GB ruang hard drive, jadi pastikan Anda memiliki cukup ruang jika Anda mengikutinya.
Pertama, kami akan memastikan bahwa sistem sudah mutakhir:
apt update
apt -y full-upgrade
Jika kernel baru telah diinstal, mari kita reboot sistem sebelum melanjutkan dan kemudian melanjutkan untuk memulai pembangunan.
apt -y install git live-build cdebootstrap devscripts
git clone https://gitlab.com/kalilinux/build-scripts/live-build-config.git
cd live-build-config
./build.sh --variant minimal --verbose
Ini akan memakan waktu cukup lama untuk membangun ISO karena perlu mengunduh banyak paket dan merakitnya. Sementara itu, nikmati secangkir joe yang enak. Atau teh.
Opsi '–verbose' akan menampilkan log build di layar. Namun itu dapat dihapus, dan sebagai gantinya kemajuan dapat diikuti di build.log berkas:
tail -f build.log
Setelah prompt kami kembali di terminal tempat 'build.sh' diluncurkan, ISO sudah siap dan dapat ditemukan di images/ direktori.
Buat Mesin Virtual
Dengan ISO yang kami buat, kami sekarang dapat mulai membangun mesin virtual kami. Buat mesin virtual baru dengan mengatur OS ke Debian 64 bit terbaru dan mengalokasikan hard disk 20 GB. Jika diperlukan, pengaturan terperinci dijelaskan di situs web Pelatihan Kali. Penting untuk menyimpan disk virtual sebagai satu file yang dialokasikan secara dinamis. Sisanya seperti jumlah CPU dan RAM tidak masalah karena hanya file disk yang akan diunggah ke DigitalOcean.
Ukuran disk penting karena penagihan didasarkan pada ukuran disk untuk gambar khusus. Ini juga akan memengaruhi pilihan instance yang dapat kita buat. Katakanlah hard disk 40 GB dibuat, itu akan gagal membuat instance pada level $5/bulan karena ukuran hard disk maksimumnya adalah 25 GB. Dalam hal ini kami akan terpaksa menggunakan opsi $10/bulan untuk instance dengan disk 50 GB. Jangan khawatir, meskipun disk berukuran 20 GB, disk akan diperluas tergantung pada paket droplet yang dipilih.
Selama instalasi, pilih partisi manual dan atur seperti yang ditunjukkan di bawah ini, dengan semua file dalam satu partisi dan tidak ada file swap.
Perbarui Sistem
Ketika instalasi selesai dan setelah reboot, kami login di konsol dan memperbarui sistem:
apt update
apt -y full-upgrade
Jika Anda tidak melihatnya melewati cermin selama 'pembaruan apt', Anda mungkin secara tidak sengaja lupa menambahkan cermin jaringan selama instalasi. Ikuti petunjuk di situs Kali-Docs untuk memperbaikinya dan menjalankan kedua perintah itu lagi.
Instal Paket yang Diperlukan
Agar DigitalOcean dapat mengonfigurasi sistem untuk kita, kita perlu menginstal cloud-init paket:
apt -y install cloud-init
echo 'datasource_list: [ ConfigDrive, DigitalOcean, NoCloud, None ]' > /etc/cloud/cloud.cfg.d/99_digitalocean.cfg
systemctl enable cloud-init
Perbarui GRUB
Saat boot, disk terpasang dan dipetakan sebagai sda1. Namun, dengan tetesan, itu terlihat sebagai vda1. Untuk mengatasinya, kita perlu mengubah semua instance sda1 ke vda1 di /boot/grub/grub.cfg :
sed -i 's/sda1/vda1/g' /boot/grub/grub.cfg
Dengan memperbarui file konfigurasi, kita dapat menjalankan 'update-grub' untuk memperbarui sistem:
update-grub
Bersiap untuk SSH
Karena kita perlu menggunakan SSH untuk terhubung ke sistem di DigitalOcean, openssh-server paket perlu diinstal (dan diaktifkan) juga:
apt -y install openssh-server
systemctl enable ssh.service
Saat membuat droplet standar, Anda dapat memilih untuk menggunakan kunci SSH atau tidak. Namun, saat menggunakan gambar khusus, ini bukan pilihan dan menggunakan kunci SSH adalah wajib. Untuk alasan ini, DigitalOcean mengharuskan kami untuk menghapus kata sandi root:
passwd -d root
Kita juga perlu membuat /root/.ssh map:
mkdir /root/.ssh
Pembersihan
Sebelum kita selesai dengan mesin virtual kita, kita menjalankan beberapa perintah untuk membersihkan semuanya:
apt autoremove
apt autoclean
rm -rf /var/log/*
history -c
Pada titik ini, mesin virtual kami sudah siap sehingga kami menjalankan 'poweroff' untuk mematikan sistem.
poweroff
Mengunggah
Di folder mesin virtual, temukan .vmdk lalu kompres menggunakan bzip2, gzip, atau zip sebagai persiapan untuk diunggah ke DigitalOcean.
bzip2 kali.vmdk
Masuk ke akun DigitalOcean Anda. Di bagian “Kelola” di sebelah kiri, klik “Gambar”, lalu pilih tab “Gambar Khusus”.
Dari sana, kami mengunggah gambar disk terkompresi. Kami akan menamainya Kali, menandainya sebagai Debian, dan memilih wilayah dan pusat data untuk mengunggahnya. Perhatikan bahwa setelah diunggah ke suatu lokasi, tetesan hanya dapat dimulai di lokasi itu, yang merupakan batasan saat ini untuk gambar khusus. Hal lain yang perlu diingat pada tahap ini adalah gambar yang diunggah menggunakan ruang disk dan DigitalOcean akan menagih berdasarkan penggunaan disk.
Memulai Droplet
Setelah selesai, kolom “Diunggah” akan menunjukkan sudah berapa lama diunggah. Sekarang kita akan mengklik opsi "Lainnya" dari gambar dan pilih "Mulai tetesan".
Anda akan dibawa ke pengaturan tetesan di mana Anda dapat memilih paket tetesan, kunci SSH, dan proyek untuk memulainya. Karena ini adalah gambar khusus, Anda harus menggunakan kunci SSH. Anda dapat memilih yang sudah ada atau mengunggah yang baru dengan mengklik “Kunci SSH baru”, yang akan membuka layar berikut tempat Anda dapat menempelkan kunci publik dan menamainya:
Setelah selesai, klik "Buat" seperti yang ditunjukkan di bawah ini. Ini kemudian akan membawa Anda kembali ke dasbor (Kelola> Tetesan) tempat semua tetesan Anda terdaftar. Karena kami menggunakan kunci SSH, DigitalOcean tidak akan mengirim email dengan kredensial untuk tetesan.
Dalam beberapa detik, dan setelah IP ditampilkan, tetesan kami akan siap. Untuk terhubung, kita perlu menggunakan kunci SSH pribadi yang kita buat (disebut MY_KEY dalam contoh ini):
[email protected]:~$ ssh -i MY_KEY [email protected]
The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.
ECDSA key fingerprint is SHA256:d83fcd43d25e2a7edd291666160b47360cc85870ded.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'IP' (ECDSA) to the list of known hosts.
Linux kali-s-1vcpu-1gb-nyc3-01 4.19.0-kali5-amd64 #1 SMP Debian 4.19.37-2kali1 (2019-05-15) x86_64
The programs included with the Kali GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Kali GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Sekarang kami memiliki instalasi Kali Linux minimal yang bagus yang dapat kami terapkan dan sesuaikan sesuai kebutuhan.
[email protected]:~# lsb_release -a
No LSB modules are available.
Distributor ID: Kali
Description: Kali GNU/Linux Rolling
Release: 2019.2
Codename: n/a
[email protected]:~# uname -a
Linux kali-s-1vcpu-1gb-nyc3-01 4.19.0-kali5-amd64 #1 SMP Debian 4.19.37-2kali1 (2019-05-15) x86_64 GNU/Linux
[email protected]:~# free -h
total used free shared buff/cache available
Mem: 987Mi 51Mi 527Mi 1.0Mi 407Mi 790Mi
Swap: 0B 0B 0B