Importierte Laufwerke manuell konfigurieren

Nachdem Sie ein virtuelles Laufwerk manuell in Compute Engine importiert haben, müssen Sie diese Images optimieren, damit sie die spezifischen Funktionen der Compute Engine-Umgebung verwenden können.

Inhalt

Compute Engine-Gastumgebung installieren

Sie müssen die Gastumgebung installieren, um die wichtigsten Funktionen von Compute Engine verwenden zu können.

Installieren Sie die Gastumgebung auf der ausgeführten VM-Instanz, die Sie nach dem manuellen Import Ihres vorhandenen Images erstellt haben. Für die Installation greifen Sie auf die VM-Instanz über SSH mit einem Nutzerkonto, das Sie vor dem Importieren erstellt haben, oder über die interaktive serielle Konsole zu.

Importierte Images für Compute Engine konfigurieren

Sie können Ihr Startspeicherabbild ohne zusätzliche Änderungen in Compute Engine ausführen, Sie können das Abbild jedoch auch optimieren, sodass es ideal auf Compute Engine läuft und Zugriff auf alle Compute Engine-Funktionen hat.

  • Bearbeiten Sie die Datei ntp.conf so, dass sie nur den Google NTP-Server-Eintrag server metadata.google.internal iburst enthält.

  • Legen Sie als Zeitzone UTC fest:

    sudo ln -sf /usr/share/zoneinfo/UTC /etc/localtime
    
  • Damit Sie eine leistungsstarke Netzwerkkapazität gewährleisten können, verwenden Sie die folgenden empfohlenen Netzwerkkonfigurationen:

    • Verwenden Sie den ISC DHCP-Client.
    • Legen Sie für DHCP-MTU den Wert 1460 fest. Der Compute Engine DHCP-Server gibt diesen Parameter als die Option interface-mtu aus, die die meisten Clients berücksichtigen.
    • Deaktivieren Sie IPv6, da dieses nicht von Compute Engine unterstützt wird.
    • Entfernen Sie persistierende Netzwerkregeln, um zu verhindern, dass die Instanz MAC-Adressen speichert. Beispiel:

      rm -f /etc/udev/rules.d/70-persistent-net.rules
      
    • Deaktivieren Sie die Firewall des Betriebssystems, es sei denn, Sie haben spezielle Anforderungen, die von Compute Engine-Firewallregeln nicht unterstützt werden. Compute Engine bietet eine Firewall für ein- und ausgehenden Traffic. Weitere Informationen zu Firewalls finden Sie in der Firewalls-Dokumentation.

  • Damit Sie eine leistungsstarke Netzwerk- und Festplattenkapazität gewährleisten können, deaktivieren oder entfernen Sie den Daemon irqbalance. Dieser Daemon kann die IRQ-Anfragen für die Gastbetriebssysteme auf Instanzen virtueller Maschinen nicht richtig ausbalancieren. Verwenden Sie stattdessen die Skripts, die Teil der Gastumgebung sind, um die IRQ-Einstellungen für virtuelle CPUs richtig auszubalancieren.

  • Konfigurieren Sie den SSH-Zugriff auf das Basis-Image:

    • Entfernen Sie den SSH-Root-Login.
    • Deaktivieren Sie die Passwortauthentifizierung.
    • Deaktivieren Sie die Host-basierte Authentifizierung.
    • Aktivieren Sie die strenge Host-Schlüsselprüfung.
    • Verwenden Sie ServerAliveInterval, um Verbindungen offen zu halten.
    • Entfernen Sie SSH-Schlüssel aus dem Image, sodass niemand auf die öffentlichen oder privaten Schlüssel in Ihrem Image zugreifen kann. Verwenden Sie stattdessen Compute Engine, um den Zugriff auf Instanzen zu verwalten.

    • Bearbeiten Sie die Datei /etc/ssh/ssh_config so, dass sie die folgende Konfiguration verwendet:

      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
      
      # Google Compute Engine times out connections after 10 minutes of inactivity.
      # Keep alive ssh connections by sending a packet every 7 minutes.
      ServerAliveInterval 420
      
    • Bearbeiten Sie die Datei /etc/ssh/sshd_config so, dass sie die folgende Konfiguration verwendet:

      # Disable PasswordAuthentication as ssh keys are more secure.
      PasswordAuthentication no
      
      # Disable root login, using sudo provides better auditing.
      PermitRootLogin no
      
      PermitTunnel no
      AllowTcpForwarding yes
      X11Forwarding no
      
      # Compute times out connections after 10 minutes of inactivity.  Keep alive
      # ssh connections by sending a packet every 7 minutes.
      ClientAliveInterval 420
      

Nachdem Sie Ihr Startlaufwerk auf Compute Engine konfiguriert und optimiert haben, erstellen Sie ein neues Image von diesem Startlaufwerk, sodass Sie neue Instanzen von einer vollständig optimierten Version des Images erzeugen können, statt jede Instanz beim Erstellen aufs Neue konfigurieren zu müssen.

Bewährte Sicherheitsmethoden konfigurieren

Sie sollten immer eine sichere Betriebssystemumgebung zur Verfügung stellen. Es kann jedoch schwierig sein, ein optimales Gleichgewicht zwischen einer sicheren und einer zugänglichen Umgebung zu wahren. Unsichere virtuellen Maschinen sind anfällig für Angriffe und können teure Ressourcen verbrauchen. Google empfiehlt dringend, dass Sie bei Ihren Images die folgenden bewährten Sicherheitsmethoden beachten:

  • Minimieren Sie die standardmäßig installierte Software (führen Sie beispielsweise eine minimale Installation des Betriebssystems aus).
  • Aktivieren Sie automatische Updates.
  • Standardmäßig werden alle Netzwerkdienste mit Ausnahme von SSH, DHCP und NTPD deaktiviert. Sie können den Betrieb eines Mail-Servers wie Postfix zulassen, wenn dieser nur Verbindungen vom localhost akzeptiert.
  • Lassen Sie das Abhören von Schnittstellen von außen nur über SSHD zu.
  • Installieren Sie das Paket denyhosts, um SSH-Brute-Force-Anmeldeversuche zu unterbinden.
  • Entfernen Sie alle überflüssigen Nicht-Nutzerkonten aus der Standardinstallation.
  • Legen Sie die Shell für alle Nicht-Nutzerkonten auf /sbin/nologin oder /usr/sbin/nologin in /etc/passwd fest (je nachdem, wo Ihr Betriebssystem nologin installiert hat).
  • Konfigurieren Sie Ihr Betriebssystem so, dass es SHA512 mit Salt für Passwörter in /etc/shadow verwendet.
  • Richten Sie pam_cracklib ein und konfigurieren Sie es für starke Passwörter.
  • Richten Sie pam_tally ein und konfigurieren Sie es, um Konten nach 3 fehlgeschlagenen Anmeldeversuchen für 5 Minuten zu sperren.
  • Konfigurieren Sie das Root-Konto so, dass es standardmäßig in /etc/shadow gesperrt ist. Führen Sie den folgenden Befehl aus, um das Root-Konto zu sperren:

    usermod -L root
    
  • Verweigern Sie den Root-Zugriff in /etc/ssh/sshd_config durch Hinzufügen der folgenden Zeile:

    PermitRootLogin no
    
  • Erstellen Sie AppArmor- oder SELinux-Profile für alle standardmäßig ausgeführten netzwerkseitigen Dienste.

  • Verwenden Sie nach Möglichkeit Dateisystemfunktionen, damit auf das S*ID-Bit verzichtet werden kann und eine ausführlichere Kontrolle möglich ist.

  • Aktivieren Sie beim Kompilieren netzwerkseitiger Software Schutzmaßnahmen gegen Compiler- und Laufzeit-Exploits. Es folgen einige der Schutzmaßnahmen, die in der GNU Compiler Collection (GCC) enthalten sind, und die Schritte zu ihrer Aktivierung:

    • Stack-Smashing-Schutz: Verwenden Sie -fstack-protector zur Aktivierung. Standardmäßig schützt diese Option Funktionen mit einem Stack-basierten Puffer, der länger als acht Byte ist. Fügen Sie für einen verbesserten Schutz durch Einbeziehen von Funktionen mit einem Puffer von mindestens vier Byte --param=ssp-buffer-size=4 hinzu.
    • Address Space Layout Randomization (ASLR): Zur Aktivierung dieser Maßnahme müssen Sie eine positionsunabhängige ausführbare Datei mit -fPIC -pie erstellen.
    • Glibc-Schutz: Aktivieren Sie diesen Schutz mit -D_FORTIFY_SOURCE=2.
    • GOT-Schutz (Global Offset Table): Aktivieren Sie diese Laufzeitladefunktion mit -Wl,-z,relro,-z,now.
    • Kompilierungszeitfehler aufgrund fehlender Formatstrings: -Wformat -Wformat-security -Werror=format-security
  • Deaktivieren Sie CAP_SYS_MODULE, mit dem Kernelmodule geladen und entladen werden. Diese Funktion wurde im Linux-Kernel verworfen. So deaktivieren Sie diese Funktion:

    echo 1 > /proc/sys/kernel/modules_disabled
    
  • Entfernen Sie die Kernelsymboltabelle:

    sudo rm /boot/System.map
    

Weitere Informationen

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Compute Engine-Dokumentation