Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Systemübersicht

Hier erfährst du mehr über die internen Systemabläufe, Funktionen und die Sicherheit von GitHub Enterprise Server.

Informationen zu GitHub Enterprise Server

GitHub Enterprise Server ist eine selbstgehostete Plattform für die Softwareentwicklung innerhalb deines Unternehmens. GitHub verteilt GitHub Enterprise Server als eine eigenständige virtuelle Appliance. Nachdem du einen virtuellen Computer bereitgestellt und die Appliance installiert hast, wird auf der Instanz ein Linux-Betriebssystem mit einem benutzerdefinierten Anwendungsstapel ausgeführt. Weitere Informationen findest du unter Informationen zu GitHub Enterprise Server.

Speicherarchitektur

GitHub Enterprise Server erfordert zwei Speichervolumes: eines für den Pfad des Stammdateisystems (/) und eines für den Pfad des Benutzerdateisystems (/data/user). Diese Architektur vereinfacht die Upgrade-, Rollback und Wiederherstellungsprozeduren, indem die in Ausführung befindliche Softwareumgebung von den persistenten Anwendungsdaten getrennt wird.

Das Root-Dateisystem ist im verteilten Maschinen-Image enthalten. Es enthält das Basisbetriebssystem und die GitHub Enterprise Server-Anwendungsumgebung. Das Root-Dateisystem sollte als flüchtig behandelt werden. Daten auf dem Stammdateisystem werden beim Upgrade auf künftige GitHub Enterprise Server-Releases ersetzt.

Das Stammspeichervolume wird in zwei gleich große Partitionen unterteilt. Eine der Partitionen wird als Stammdateisystem (/) bereitgestellt. Die andere Partition wird nur während Upgrades und Rollbacks von Upgrades als /mnt/upgrade bereitgestellt, um bei Bedarf einfachere Rollbacks zu ermöglichen. Wenn beispielsweise ein Stammvolume mit 200 GB zugewiesen ist, sind 100  GB für das Stammdateisystem und 100 GB für die Upgrades und Rollbacks reserviert.

Das Stammdateisystem enthält Dateien, die die folgenden Informationen speichern. Diese Liste ist nicht vollständig.

  • Benutzerdefinierte Zertifizierungsstellenzertifikate (ZS) (in /usr/local/share/ca-certificates*)
  • benutzerdefinierte Netzwerkkonfigurationen
  • benutzerdefinierte Firewallkonfigurationen
  • den Replikationszustand

Das Benutzerdateisystem enthält Dateien, die die folgenden Konfigurationen und Daten speichern. Diese Liste ist nicht vollständig.

  • Git-Repositorys
  • Datenbanken
  • Suchindizes
  • auf GitHub Pages-Websites veröffentlichte Inhalte,
  • große Dateien von Git Large File Storage,
  • Pre-Receive-Hook-Umgebungen.

Bereitstellungstopologien

Du kannst GitHub Enterprise Server in einer Vielzahl von Topologien bereitstellen (z. B. ein Hochverfügbarkeitspaar). Weitere Informationen findest du unter Informationen zu GitHub Enterprise Server.

Datenaufbewahrung und Rechenzentrumsredundanz

Warnung: Bevor du GitHub Enterprise Server in einer Produktionsumgebung verwendest, wird dringend empfohlen, Sicherungen und einen Notfallwiederherstellungsplan einzurichten.

GitHub Enterprise Server enthält Unterstützung für Onlinesicherungen und inkrementelle Sicherungen mit GitHub Enterprise Server Backup Utilities. Du kannst inkrementelle Snapshots über eine sichere Netzwerkverbindung (den SSH-Verwaltungsport) über weite Entfernungen für den externen oder geografisch verteilten Storage erstellen. Im Falle eines Notfalls im primären Rechenzentrum kannst du Momentaufnahmen über das Netzwerk in einer neu bereitgestellten Instanz wiederherstellen.

Zusätzlich zu Netzwerksicherungen werden AWS- (EBS) und VMware-Datenträger-Momentaufnahmen der Benutzerspeichervolumes unterstützt, während die Instanz offline ist oder sich im Wartungsmodus befindet. Regelmäßige Volumemomentaufnahmen können als kostengünstige, unkomplizierte Alternative zu Netzwerksicherungen mit GitHub Enterprise Server Backup Utilities verwendet werden, wenn deine Dienstebenenanforderungen eine regelmäßige Offlinewartung ermöglichen.

Weitere Informationen findest du unter Konfigurieren von Sicherungen auf deiner Appliance.

Sicherheit

GitHub Enterprise Server wird auf deiner Infrastruktur ausgeführt und von Zugriffs- und Sicherheitskontrollen geregelt, die von dir definiert werden, z. B. Firewalls, Netzwerkrichtlinien, IAM, Überwachung und VPNs. GitHub Enterprise Server ist für Unternehmen geeignet, die gesetzliche Bestimmungen einhalten müssen, um Probleme zu vermeiden, die sich aus Softwareentwicklungsplattformen in der öffentlichen Cloud ergeben.

GitHub Enterprise Server umfasst auch zusätzliche Sicherheitsfeatures.

Betriebssystem, Software und Patches

GitHub Enterprise Server führt ein benutzerdefiniertes Linux-Betriebssystem mit den nötigsten Anwendungen und Diensten aus. GitHub verteilt Patches für das Kernbetriebssystem der Instanz als Teil des Standardproduktreleasezyklus. Die Patches richten sich an Funktions-, Stabilitäts- und nicht kritische Sicherheitsprobleme bei GitHub Enterprise Server. Bei Bedarf stellt GitHub außerdem kritische Sicherheitspatches außerhalb des normalen Releasezyklus bereit.

GitHub Enterprise Server wird als Appliance bereitgestellt, und viele der Betriebssystempakete werden im Vergleich zur üblichen Debian-Distribution geändert. Aus diesem Grund unterstützen wir keine Änderung des zugrunde liegenden Betriebssystems (einschließlich Betriebssystemupgrades) entsprechend der Lizenz- und Supportvereinbarung von GitHub Enterprise Server unter dem Abschnitt 11.3 „Ausschluss“.

Derzeit ist Debian 10 (Buster) das Basisbetriebssystem für GitHub Enterprise Server. Für diese Version wird im Rahmen des Debian Long Term Support-Programms Support angeboten.

Regelmäßige Patchupdates werden auf GitHub Enterprise Server-Releaseseite veröffentlicht, und auf der Seite Versionshinweise erhältst du weitere Informationen. Diese Patches enthalten normalerweise Upstreamanbieter- und Projektsicherheitspatches, nachdem sie von unserem Engineeringteam getestet und qualitativ genehmigt wurden. Es kann eine leichte Zeitverzögerung zwischen der Veröffentlichung des Upstreamupdates und dem Zeitpunkt geben, an dem es getestet und in einen kommenden GitHub Enterprise Server-Patchrelease gebündelt wird.

Netzwerksicherheit

Die interne Firewall von GitHub Enterprise Server schränkt den Netzwerkzugriff auf die Dienste der Instanz ein. Über das Netzwerk sind ausschließlich Dienste verfügbar, die für die Funktionsfähigkeit der Appliance erforderlich sind. Weitere Informationen findest du unter Netzwerkports.

Anwendungssicherheit

Das Anwendungssicherheitsteam von GitHub konzentriert sich auf die Sicherheitsbewertung, Penetrationstests und Code Reviews für GitHub-Produkte (einschließlich GitHub Enterprise Server). GitHub hat zusätzlich externe Sicherheitsfirmen mit zeitabhängigen Sicherheitsbeurteilungen der GitHub-Produkte beauftragt.

Externe Dienste und Supportzugang

GitHub Enterprise Server kann ohne jeglichen ausgehenden Zugriff von deinem Netzwerk auf externe Dienste genutzt werden. Optional kannst du die Integration in externe Dienste zur E-Mail-Zustellung, zur externen Überwachung und zur Protokollweiterleitung aktivieren. Weitere Informationen findest du unter Konfigurieren von E-Mails für Benachrichtigungen, Einrichten externer Überwachung und Protokollweiterleitung.

Du kannst manuell Fehlerbehebungsdaten sammeln und an den GitHub Support senden. Weitere Informationen findest du unter Bereitstellen von Daten für GitHub Support.

Verschlüsselte Kommunikation

GitHub konzipiert GitHub Enterprise Server für die Ausführung hinter deiner Unternehmensfirewall. Zum Schutz der drahtgebundenen Kommunikation solltest du TLS (Transport Layer Security) aktivieren. GitHub Enterprise Server unterstützt handelsübliche TLS-Zertifikate mit 2048 Bit und mehr für den HTTPS-Datenverkehr. Weitere Informationen findest du unter Konfigurieren von TLS.

Standardmäßig bietet die Instanz auch den SSH-Zugriff (Secure Shell) für den Repositoryzugriff über Git und für Verwaltungszwecke. Weitere Informationen findest du unter Informationen zu SSH und Zugriff auf die Administrative Shell (SSH).

Wenn du die SAML-Authentifizierung für your GitHub Enterprise Server instance konfigurierst, kannst du verschlüsselte Assertionen zwischen der Instanz und deinem SAML-IdP aktivieren. Weitere Informationen findest du unter Verwenden von SAML.

Benutzer und Zugriffsberechtigungen

GitHub Enterprise Server bietet drei Arten von Konten.

  • Das Linux-Benutzerkonto admin hat den Zugriff auf das zugrundeliegende Betriebssystem festgelegt, einschließlich des direkten Dateisystems und des Datenbankzugriffs. Eine kleine Gruppe vertrauenswürdiger Administratoren sollte den Zugriff auf dieses Konto erhalten, auf das sie über SSH zugreifen können. Weitere Informationen findest du unter Zugreifen auf die Verwaltungsshell (SSH).
  • Benutzerkonten in der Webanwendung der Instanz haben uneingeschränkten Zugriff auf die jeweils eigenen Daten sowie auf alle Daten, für die andere Benutzer*innen oder Organisationen den Zugriff ausdrücklich gewähren.
  • Websiteadministrator*innen in der Webanwendung der Instanz sind Benutzerkonten, die die allgemeinen Webanwendungs- und Instanzeinstellungen, die Einstellungen für Benutzer- und Organisationskonten sowie die Repositorydaten verwalten können.

Weitere Informationen zu den Benutzerberechtigungen von GitHub Enterprise Server findest du unter Zugriffsberechtigungen in GitHub.

Authentifizierung

GitHub Enterprise Server umfasst vier Authentifizierungsmethoden.

  • Die Authentifizierung mit einem öffentlichen SSH-Schlüssel eröffnet sowohl den Repository-Zugriff mit Git als auch den Zugriff auf die Verwaltungsshell. Weitere Informationen findest du unter Informationen zu SSH und Zugriff auf die Administrative Shell (SSH).
  • Die Authentifizierung per Benutzername und Passwort mit HTTP-Cookies eröffnet den Zugriff auf die Webanwendung und auf die Sitzungsverwaltung mit optionaler Zwei-Faktor-Authentifizierung (2FA). Weitere Informationen findest du unter Verwenden der integrierten Authentifizierung.
  • Die externe LDAP-, SAML- oder CAS-Authentifizierung mit einem LDAP-Service, einem SAML Identity Provider (IdP) oder anderen kompatiblen Diensten eröffnet den Zugriff auf die Webanwendung. Weitere Informationen findest du unter Verwalten von IAM für dein Unternehmen.
  • OAuth-Token und personal access token ermöglichen den Zugriff auf Git-Repositorydaten und APIs für externe Clients und Dienste. Weitere Informationen findest du unter Erstellen eines personal access token.

Audit- und Zugriffsprotokollierung

GitHub Enterprise Server speichert sowohl herkömmliche Betriebssystemprotokolle als auch Anwendungsprotokolle. Die Anwendung führt außerdem detaillierte Überwachungs- und Sicherheitsprotokolle, die GitHub Enterprise Server dauerhaft speichert. Du kannst beide Protokolltypen über das syslog-ng-Protokoll in Echtzeit an mehrere Ziele weiterleiten. Weitere Informationen findest du unter Informationen zum Überwachungsprotokoll für dein Unternehmen und Protokollweiterleitung.

Zugriffs- und Auditprotokolle enthalten beispielsweise die folgenden Informationen.

Zugriffsprotokolle

  • Vollständige Webserverprotokolle über den Browser- und API-Zugriff
  • Vollständige Protokolle über den Zugriff auf Repository-Daten über Git, HTTPS und SSH-Protokolle
  • Verwaltungszugriffsprotokolle über HTTPS und SSH

Überwachungsprotokolle

  • Benutzeranmeldungen, Passwortzurücksetzungen, 2FA-Anfragen, Änderungen der E-Mail-Einstellungen und Änderungen an autorisierten Anwendungen und APIs
  • Aktionen von Websiteadministratoren wie das Entsperren von Benutzerkonten und Repositorys
  • Repository-Push-Events, Zugriffsgewährungen, Übertragungen und Umbenennungen
  • Änderungen an der Organisationsmitgliedschaft, u. a. Teamerstellung und -vernichtung

Open-Source-Abhängigkeiten für GitHub Enterprise Server

Eine vollständige Liste der Abhängigkeiten in der Version deiner GitHub Enterprise Server-Instanz sowie die Lizenz jedes Projekts findest du unter http(s)://HOSTNAME/site/credits.

Tarballs mit einer vollständigen Liste der Abhängigkeiten und verknüpften Metadaten sind in deiner Instanz verfügbar.

  • Für Abhängigkeiten, die für alle Plattformen gelten, unter /usr/local/share/enterprise/dependencies-<GHE version>-base.tar.gz
  • Für Abhängigkeiten, die für eine Plattform spezifisch gelten, unter /usr/local/share/enterprise/dependencies-<GHE version>-<platform>.tar.gz

Tarballs sind auch mit einer vollständigen Liste der Abhängigkeiten und Metadaten unter https://enterprise.github.com/releases/<version>/download.html verfügbar.

Weiterführende Themen