Setelah mengimpor disk virtual secara manual ke Compute Engine, Anda perlu mengoptimalkan image tersebut agar dapat menggunakan fitur khusus untuk lingkungan Compute Engine.
Daftar Isi
Menginstal lingkungan tamu Compute Engine
Anda harus menginstal lingkungan tamu sebelum dapat menggunakan fitur utama Compute Engine. Untuk mengetahui kapan Anda perlu menginstal lingkungan tamu secara manual, lihat kapan harus menginstal atau mengupdate lingkungan tamu secara manual.
Instal lingkungan tamu di instance VM aktif yang Anda buat setelah mengimpor image yang ada secara manual. Untuk melakukan penginstalan, akses instance VM melalui SSH dengan akun pengguna yang Anda buat sebelum mengimpornya atau dengan cara berinteraksi dengan Konsol Serial.
Mengonfigurasi image yang diimpor untuk Compute Engine
Anda dapat menjalankan boot disk image di Compute Engine tanpa perubahan tambahan, tetapi Anda juga dapat mengoptimalkan image lebih lanjut agar berjalan secara optimal dalam Compute Engine dan memiliki akses ke semua fitur Compute Engine.
Edit file
ntp.conf
agar hanya menyertakan entri server NTP Googleserver metadata.google.internal iburst
.Tetapkan zona waktu ke UTC:
sudo ln -sf /usr/share/zoneinfo/UTC /etc/localtime
Untuk memastikan kemampuan jaringan berperforma tinggi, gunakan konfigurasi jaringan yang direkomendasikan berikut:
- Gunakan klien ISC DHCP.
- Tetapkan MTU DHCP ke MTU jaringan. Server DHCP Compute Engine
menyajikan parameter ini sebagai opsi
interface-mtu
, yang dipatuhi oleh sebagian besar klien. Untuk informasi selengkapnya tentang MTU jaringan, lihat ringkasan unit transmisi maksimum. - Jika Anda tidak berencana mengonfigurasi alamat IPv6, nonaktifkan IPv6.
Hapus aturan jaringan persisten untuk mencegah instance mengingat alamat MAC. Contoh:
rm -f /etc/udev/rules.d/70-persistent-net.rules
Nonaktifkan firewall sistem operasi, kecuali jika Anda memiliki persyaratan tertentu yang tidak didukung oleh Aturan Firewall Compute Engine. Compute Engine menyediakan firewall untuk traffic masuk dan keluar. Untuk informasi selengkapnya tentang firewall, lihat Ringkasan aturan firewall.
Untuk memastikan kemampuan disk dan jaringan berperforma tinggi, nonaktifkan atau hapus daemon
irqbalance
. Daemon ini tidak menyeimbangkan permintaan IRQ dengan benar untuk sistem operasi tamu di instance virtual machine (VM). Sebagai gantinya, gunakan skrip yang merupakan bagian dari lingkungan tamu guna menyeimbangkan setelan IRQ untuk CPU virtual dengan benar.Mengonfigurasi akses SSH ke image dasar:
- Nonaktifkan login SSH root.
- Nonaktifkan autentikasi sandi.
- Nonaktifkan autentikasi berbasis host.
- Aktifkan pemeriksaan kunci host yang ketat.
- Gunakan
ServerAliveInterval
agar koneksi tetap terbuka. Hapus kunci SSH dari image sehingga orang lain tidak dapat mengakses kunci publik atau pribadi di image Anda. Sebagai gantinya, gunakan Compute Engine untuk mengelola akses ke instance.
Edit file
/etc/ssh/ssh_config
untuk menggunakan konfigurasi berikut:Host * Protocol 2 ForwardAgent no ForwardX11 no HostbasedAuthentication no StrictHostKeyChecking no Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc Tunnel no # Compute Engine times out connections after 10 minutes of inactivity. # Keep alive ssh connections by sending a packet every 7 minutes. ServerAliveInterval 420
Edit file
/etc/ssh/sshd_config
untuk menggunakan konfigurasi berikut:# Disable PasswordAuthentication because ssh keys are more secure. PasswordAuthentication no # Disable root login. Using sudo provides better auditing. PermitRootLogin no PermitTunnel no AllowTcpForwarding yes X11Forwarding no # Compute Engine times out connections after 10 minutes of inactivity. # Keep alive ssh connections by sending a packet every 7 minutes. ClientAliveInterval 420
Setelah mengonfigurasi dan mengoptimalkan boot disk di Compute Engine, buat image dari boot disk tersebut agar Anda dapat membuat instance dari versi image yang dioptimalkan sepenuhnya tanpa harus mengonfigurasi setiap instance setiap kali Anda membuatnya.
Mengonfigurasi praktik terbaik keamanan
Anda harus selalu menyediakan lingkungan sistem operasi yang aman, tetapi mungkin sulit untuk mencapai keseimbangan antara lingkungan yang aman dan mudah diakses. Virtual machine yang rentan terhadap serangan dapat menggunakan sumber daya yang mahal. Google sangat merekomendasikan agar image Anda mematuhi praktik terbaik keamanan berikut:
- Minimalkan jumlah software yang diinstal secara default (misalnya, lakukan penginstalan OS yang minimal).
- Aktifkan update otomatis.
- Secara default, nonaktifkan semua layanan jaringan kecuali untuk SSH, DHCP, dan NTPD. Anda dapat mengizinkan server email, seperti Postfix, berjalan jika hanya menerima koneksi dari localhost.
- Jangan izinkan port yang mendengarkan secara eksternal kecuali untuk sshd.
- Instal paket denyhosts untuk membantu mencegah upaya login brute force SSH.
- Hapus semua akun nonpengguna yang tidak diperlukan dari penginstalan default.
- Di
/etc/passwd
, tetapkan shell semua akun nonpengguna ke/sbin/nologin
atau/usr/sbin/nologin
(tergantung pada tempat OS menginstal nologin). - Konfigurasikan OS Anda untuk menggunakan SHA512 dengan salt untuk sandi di
/etc/shadow
. - Siapkan dan konfigurasikan pam_cracklib untuk sandi kuat.
- Siapkan dan konfigurasikan pam_tally untuk mengunci akun selama 5 menit setelah 3 kegagalan.
Di
/etc/shadow
, konfigurasikan akun root agar dikunci secara default. Jalankan perintah berikut untuk mengunci akun root:usermod -L root
Tolak root di
/etc/ssh/sshd_config
dengan menambahkan baris berikut:PermitRootLogin no
Buat profil AppArmor atau SELinux untuk semua layanan default yang berinteraksi dengan jaringan yang berjalan.
Jika memungkinkan, gunakan kemampuan sistem file untuk menghilangkan kebutuhan akan bit S*ID dan untuk memberikan kontrol yang lebih terperinci.
Aktifkan mitigasi eksploit runtime dan compiler saat mengompilasi software yang berhubungan dengan jaringan. Misalnya, berikut adalah beberapa mitigasi yang ditawarkan GNU Compiler Collection (GCC) dan cara mengaktifkannya:
- Perlindungan terhadap stack smash: Aktifkan ini dengan
-fstack-protector
. Secara default, opsi ini melindungi fungsi dengan buffer yang dialokasikan stack lebih panjang dari delapan byte. Untuk meningkatkan perlindungan dengan menutupi fungsi menggunakan setidaknya empat byte buffer tambahkan--param=ssp-buffer-size=4
. - Address space layout randomization (ASLR):
Aktifkan ini dengan membangun file yang dapat dieksekusi dan tidak bergantung posisi dengan
-fPIC -pie
. - Perlindungan Glibc: Aktifkan perlindungan ini dengan
-D_FORTIFY_SOURCE=2
. - Perlindungan Global Offset Table (GOT): Aktifkan fitur loader runtime ini
dengan
-Wl,-z,relro,-z,now
. - Error waktu kompilasi untuk string format yang tidak ada:
-Wformat -Wformat-security -Werror=format-security
- Perlindungan terhadap stack smash: Aktifkan ini dengan
Nonaktifkan
CAP_SYS_MODULE
, yang memungkinkan pemuatan dan penghapusan muatan modul kernel. Untuk menonaktifkan fitur ini, edit file/etc/sysctl.conf
dan sertakan setelan berikut:kernel.modules_disabled = 1
Hapus tabel simbol kernel:
sudo rm /boot/System.map
Langkah selanjutnya
- Setelah image Anda siap diproduksi, buat versi final image kustom tersebut dan sertakan image dalam kelompok image sehingga Anda dapat dengan mudah mengelola versi terbaru dari image kustom.
- Pelajari cara memulai instance dari gambar.