Konfigurasi disk yang diimpor secara manual


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 Google server 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
  • 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