Skip to main content

Systemübersicht

Erfahren Sie mehr über die Systeminterna, Funktionen und Sicherheit von GitHub Enterprise Server.

Informationen zum GitHub Enterprise Server

          GitHub Enterprise Server ist eine selbstgehostete Version der GitHub-Plattform.
          GitHub stellt GitHub Enterprise Server als eigenständiges virtuelles Gerät bereit. 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 finden Sie unter [AUTOTITLE](/admin/overview/about-github-enterprise-server).

Speicherarchitektur

          GitHub Enterprise Server erfordert zwei Speichervolumes, einen, der an den _Stammdateisystempfad_ (`/`) und den anderen am _Benutzerdateisystempfad_ (`/data/user`) bereitgestellt wurde. 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. Sie enthält das Basisbetriebssystem und die GitHub Enterprise Server Anwendungsumgebung. Das Root-Dateisystem sollte als flüchtig behandelt werden. Alle Daten im Stammdateisystem werden beim Upgrade auf zukünftige GitHub Enterprise Server Versionen 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 z. B. ein Stammvolume mit 400 GB zugewiesen ist, werden dem Stammdateisystem 200 GB zugewiesen, und 200 GB sind für die Upgrades und Rollbacks reserviert.

In neuen Installationen von 3.14 und höher wird das Stammspeichervolume in vier Partitionen aufgeteilt. Zwei kleine Partitionen sind für die unterstützten Startmodi (BIOS und UEFI) vorgesehen, und die anderen beiden ebenfalls großen Partitionen sind für die GitHub Enterprise Server primären, und Upgrades und Rollbacks.

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
  • Der Replikationszustand

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

  • Git-Repositorys
  • Datenbanken
  • Suchindizes
  • Veröffentlichte Inhalte auf GitHub Pages-Websites
  • Große Dateien von Git Large File Storage (Speicher für große Dateien)
  • Pre-Receive-Hook-Umgebungen.

Bereitstellungstopologien

Standardmäßig wird GitHub Enterprise Server als eigenständige Instanz ausgeführt. Sie können die Zuverlässigkeit und Leistung GitHub Enterprise Server erhöhen, indem Sie eine andere Topologie für Ihre Bereitstellung verwenden.

  • Um die Auswirkungen von System- oder Netzwerkausfällen abzufedern, kannst du eine passive Replikatinstanz bereitstellen. Wenn deine primäre Instanz von einem Ausfall betroffen ist, kannst du manuell ein Failover auf die Replikatinstanz durchführen. Weitere Informationen finden Sie unter Informationen zur Hochverfügbarkeitskonfiguration.
  • Du kannst mehrere aktive Replikate konfigurieren, um die Leistung für Entwickler zu verbessern, die geografisch weit von deiner primären Instanz entfernt sind. Weitere Informationen finden Sie unter Informationen zur Geo-Replikation.
  • Einige Unternehmen mit Zehntausenden von Entwicklern können von einer Clusterkonfiguration mit horizontaler statt vertikaler Skalierung profitieren. Weitere Informationen finden Sie unter Informationen zu Clustering.

Datenaufbewahrung und Rechenzentrumsredundanz

Warnung

Vor der Verwendung GitHub Enterprise Server in einer Produktionsumgebung empfehlen wir dringend, Sicherungen und einen Notfallwiederherstellungsplan einzurichten.

          GitHub Enterprise Server umfasst Unterstützung für Online- 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 und unkomplizierte Alternative zu Netzwerksicherungen verwendet werden, wenn GitHub Enterprise Server Backup Utilities Ihre Anforderungen auf Serviceebene eine regelmäßige Offlinewartung ermöglichen.

Weitere Informationen finden Sie unter Konfigurieren von Sicherungen auf deiner Instanz mithilfe von Sicherungshilfsprogrammen.

Sicherheit

GitHub Enterprise Server wird in deiner Infrastruktur ausgeführt und von Zugriffs- und Sicherheitskontrollen gesteuert, 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 enthält auch zusätzliche Sicherheitsfeatures.

Betriebssystem, Software und Patches

          GitHub Enterprise Server führt ein angepasstes Linux-Betriebssystem mit nur den erforderlichen Anwendungen und Diensten aus. 
          GitHub verteilt Patches für das Kernbetriebssystem der Instanz als Teil des Standardmäßigen Produktveröffentlichungszyklus. Patches behandeln Funktionen, Stabilität und nicht kritische Sicherheitsprobleme für GitHub Enterprise Server. 
          GitHub stellt auch kritische Sicherheitspatches nach Bedarf außerhalb des regulären Releasezyklus bereit.

          GitHub Enterprise Server wird als Appliance bereitgestellt, und viele der Betriebssystempakete werden im Vergleich zur üblichen Ubuntu-Verteilung geändert. Wir unterstützen die Änderung des zugrunde liegenden Betriebssystems aus diesem Grund nicht, einschließlich Betriebssystemupgrades, was mit der [GitHub Enterprise Server Lizenz- und Supportvereinbarung](https://enterprise.github.com/license) gemäß Abschnitt 11.3 Ausschlüssen übereinstimmt.

Derzeit ist das Basisbetriebssystem für GitHub Enterprise Server Ubuntu 20 (Focal Fossa). Obwohl Ubuntu 20 (Focal Fossa) das Ende des Standardsupports bis Mai 2025 erreicht, können wir die erweiterte Sicherheitswartung nutzen und den sicherheitsrelevanten Support nach 2025 erhalten.

Regelmäßige Patchupdates werden auf der GitHub Enterprise Server Seite "Releases" veröffentlicht, und die Versionshinweise-Seite enthält 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 auftreten, wenn das Upstream-Update veröffentlicht wird, bevor es in einer bevorstehenden GitHub Enterprise Server Patch-Version getestet und gebündelt wird.

Netzwerksicherheit

          GitHub Enterprise ServerDie interne Firewall beschränkt den Netzwerkzugriff auf die Dienste der Instanz. Über das Netzwerk sind ausschließlich Dienste verfügbar, die für die Funktionsfähigkeit der Appliance erforderlich sind. Weitere Informationen finden Sie unter [AUTOTITLE](/admin/configuration/configuring-network-settings/network-ports).

Anwendungssicherheit

          GitHubDas Anwendungssicherheitsteam konzentriert sich vollzeit auf die Bewertung von Sicherheitsrisiken, Penetrationstests und Codeüberprüfungen für GitHub Produkte, einschließlich GitHub Enterprise Server. 
          GitHub schließt auch Verträge mit externen Sicherheitsunternehmen ab, um zeitpunktbezogene Sicherheitsbewertungen von GitHub Produkten durchzuführen.

Externe Dienste und Supportzugriff

          GitHub Enterprise Server kann ohne ausgehenden Zugriff von Ihrem Netzwerk auf externe Dienste betrieben 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 [AUTOTITLE](/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications), [AUTOTITLE](/admin/enterprise-management/monitoring-your-appliance/setting-up-external-monitoring) und [AUTOTITLE](/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/log-forwarding).

Sie können Problembehandlungsdaten manuell sammeln und an GitHub-Support senden. Weitere Informationen finden Sie unter Bereitstellen von Daten für GitHub Support.

Verschlüsselte Kommunikation

          GitHub Designs GitHub Enterprise Server , die hinter Ihrer Unternehmensfirewall ausgeführt werden sollen. Zum Schutz der drahtgebundenen Kommunikation solltest du TLS (Transport Layer Security) aktivieren. 
          GitHub Enterprise Server unterstützt 2048-Bit- und höhere kommerzielle TLS-Zertifikate für HTTPS-Datenverkehr. Weitere Informationen finden Sie unter [AUTOTITLE](/admin/configuration/configuring-network-settings/configuring-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 zur SSH und Auf die Verwaltungsshell (SSH) zugreifen.

Wenn Sie die SAML-Authentifizierung für Ihre GitHub Enterprise Server-Instancekonfigurieren, können Sie verschlüsselte Assertionen zwischen der Instanz und Ihrem SAML-IdP aktivieren. Weitere Informationen finden Sie unter Verwenden von SAML for Enterprise IAM.

Benutzer und Zugriffsberechtigungen

          GitHub Enterprise Server stellt drei Arten von Konten bereit.
  • 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 finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen.
  • 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 GitHub Enterprise Serverden Benutzerberechtigungen finden Sie unter Zugriffsberechtigungen für GitHub.

Authentifizierung

          GitHub Enterprise Server stellt vier Authentifizierungsmethoden bereit.
  • 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 zur SSH und Auf die Verwaltungsshell (SSH) zugreifen.
  • 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 finden Sie unter Integrierte Authentifizierung konfigurieren.
  • 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 finden Sie unter Verwenden von SAML for Enterprise IAM.
  • OAuth und personal access tokens bieten Zugriff auf Git-Repositorydaten und APIs für externe Clients und Dienste. Weitere Informationen finden Sie unter Verwalten deiner persönlichen Zugriffstoken.

Überwachungs- und Zugriffsprotokollierung

          GitHub Enterprise Server speichert sowohl herkömmliche Betriebssystem- als auch Anwendungsprotokolle. Die Anwendung schreibt außerdem detaillierte Prüf- 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 [AUTOTITLE](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/about-the-audit-log-for-your-enterprise) und [AUTOTITLE](/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/log-forwarding).

Zugriffs- und Auditprotokolle enthalten beispielsweise die folgenden Informationen.

Zugriffsprotokolle

  • Vollständige Webserverprotokolle sowohl für den Browser- als auch für den API-Zugriff
  • Vollständige Protokolle über den Zugriff auf Repository-Daten über Git, HTTPS und SSH-Protokolle
  • Protokolle des administrativen Zugriffs ü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

Sie können eine vollständige Liste der Abhängigkeiten in der Version GitHub Enterprise Server Ihrer Instanz sowie auch die Lizenz jedes Projekts unter http(s)://HOSTNAME/site/credits einsehen.

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

  • Abhängigkeiten, die für alle Plattformen gelten, befinden sich 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 Lektüre