Systemübersicht

GitHub Enterprise Server ist die private Kopie von GitHub in Ihrer Organisation, die in einer virtuellen Appliance enthalten ist, die lokal oder in der Cloud gehostet wird und die Sie konfigurieren und kontrollieren.

Speicherarchitektur

Für GitHub Enterprise Server sind zwei Storage-Volumes erforderlich. Eines muss am Pfad des Root-Dateisystems (/) und das andere am Pfade des Benutzerdateisystems (/data/user) gemountet sein. 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 Root-Dateisystem werden beim Upgrade auf künftige GitHub Enterprise Server-Versionen ersetzt.

Das Root-Dateisystem enthält Folgendes:

  • benutzerdefinierte Zertifikate der Zertifizierungsstelle (CA) (in /usr/local/share/ca-certificates)
  • benutzerdefinierte Netzwerkkonfigurationen
  • benutzerdefinierte Firewallkonfigurationen
  • den Replikationszustand

Das Benutzerdateisystem enthält die Benutzerkonfiguration und -daten, beispielsweise

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

Bereitstellungsoptionen

Sie können GitHub Enterprise Server als eine einzelne virtuelle Appliance oder in einer Hochverfügbarkeitskonfiguration bereitstellen. Weitere Informationen finden Sie unter „GitHub Enterprise Server für Hochverfügbarkeit konfigurieren“.

Einige Organisationen mit Zehntausenden Entwicklern können ebenfalls vom GitHub Enterprise Server Clustering profitieren. Weitere Informationen findest Du unter „Informationen zum Clustering“.

Datenaufbewahrung und Rechenzentrumsredundanz

Bevor Sie GitHub Enterprise Server in einer Produktionsumgebung verwenden, wird dringend empfohlen, Backups und einen Disaster Recovery-Plan einzurichten. Weitere Informationen finden Sie unter „Backups auf Ihrer Appliance konfigurieren“.

GitHub Enterprise Server unterstützt Online- und inkrementelle Backups mit den GitHub Enterprise Server Backup-Dienstprogramme. Sie können inkrementelle Snapshots über eine sichere Netzwerkverbindung (den SSH-Verwaltungsport) über weite Entfernungen für den externen oder geografisch verteilten Storage erstellen. Im Falle einer Katastrophe im primären Rechenzentrum können Sie Snapshots über das Netzwerk auf neu verteilten Appliances wiederherstellen.

Zusätzlich zu Netzwerk-Backups werden AWS- (EBS) und VMware-Disk-Snapshots der Benutzer-Storage-Volumes unterstützt, während die Appliance offline ist oder sich im Wartungsmodus befindet. Regelmäßige Volume-Snapshots können als kostengünstige, unkomplizierte Alternative zu Netzwerk-Backups mit GitHub Enterprise Server Backup-Dienstprogramme verwendet werden, wenn Ihre Service Level-Anforderungen eine regelmäßige Offline-Wartung ermöglichen.

Weitere Informationen finden Sie unter „Backups auf Ihrer Appliance konfigurieren“.

Sicherheit

GitHub Enterprise Server wird als virtuelle Appliance in Ihrer Infrastruktur ausgeführt und unterliegt den bestehenden Datensicherheitssteuerungen, z. B. Firewalls, IAM, Überwachung und VPNs. GitHub Enterprise Server trägt dazu bei, möglichen Problemen cloudgestützter Lösungen hinsichtlich der Einhaltung gesetzlicher Vorschriften vorzubeugen.

GitHub Enterprise Server umfasst zudem weitere Sicherheitsfunktionen.

Betriebssystem, Software und Patches

GitHub Enterprise Server führt ein angepasstes Linux-Betriebssystem mit den nötigsten Anwendungen und Diensten aus. GitHub stellt Patches für das Kernbetriebssystems der Appliance im Rahmen des normalen Produktveröffentlichungszyklus bereit. Die Patches richten sich an Funktions-, Stabilitäts- und nicht kritische Sicherheitsprobleme bei GitHub-Anwendungen. Bei Bedarf stellt GitHub außerdem kritische Sicherheitspatches außerhalb des normalen Veröffentlichungszyklus bereit.

Netzwerksicherheit

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

Anwendungssicherheit

Das Anwendungssicherheitsteam von GitHub konzentriert sich auf die Beurteilung der Sicherheitslücken, auf die Eindringtests und die Codeprüfung für GitHub products, including GitHub Enterprise Server. GitHub hat zusätzlich externe Sicherheitsfirmen mit zeitabhängigen Sicherheitsbeurteilungen der GitHub-Produkte beauftragt.

Externe Dienste und Supportzugang

GitHub Enterprise Server lässt sich ohne jeglichen Egress-Zugriff vom Netzwerk auf externe Dienste nutzen. Optional können Sie die Integration in externe Dienste zur E-Mail-Zustellung, zur externen Überwachung und zur Protokollweiterleitung aktivieren. For more information, see "Configuring email for notifications," "Setting up external monitoring," and "Log forwarding."

Sie können manuell Fehlerbehebungsdaten sammeln und an den GitHub-Support senden. Weitere Informationen finden Sie unter „Daten für den GitHub-Support-Support bereitstellen“.

Verschlüsselte Kommunikation

GitHub hat GitHub Enterprise Server für die Ausführung hinter der Unternehmens-Firewall vorgesehen. Zum Schutz der drahtgebundenen Kommunikation sollten Sie 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 finden Sie unter „TLS konfigurieren“.

Standardmäßig bietet die Appliance auch den SSH-Zugriff (Secure Shell) für den Repository-Zugriff über Git und für Verwaltungszwecke. Weitere Informationen finden Sie unter „Informationen zu SSH“ und „Auf die Verwaltungsshell (SSH) zugreifen“.

Benutzer und Zugriffsberechtigungen

GitHub Enterprise Server umfasst drei Kontotypen.

  • Das admin-Linux-Benutzerkonto besitzt kontrollierten Zugriff auf das zugrundeliegende Betriebssystem mit direktem Dateisystem- und Datenbankzugriff. 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 Appliance besitzen den uneingeschränkten Zugriff auf die jeweils eigenen Daten sowie auf alle Daten, für die andere Benutzer oder Organisationen den Zugriff ausdrücklich gewähren.
  • Websiteadministratoren in der Webanwendung der Appliance sind Benutzerkonten, die die allgemeinen Webanwendungs- und Appliance-Einstellungen, die Einstellungen für Benutzer- und Organisationskonten sowie die Repository-Daten verwalten können.

Weitere Informationen zu den Benutzerberechtigungen in GitHub Enterprise Server finden Sie unter „Zugriffsrechte auf 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 finden Sie unter „Informationen zu 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 verwenden“.
  • 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 „Benutzer für Ihre GitHub Enterprise Server-Instanz authentifizieren“.
  • OAuth-Token und persönliche Zugriffstoken eröffnen den Zugriff auf Git-Repository-Daten und APIs sowohl für externe Clients als auch für Dienste. Weitere Informationen finden Sie unter "Erstellen eines persönlichen Zugriffstokens."

Audit- und Zugriffsprotokollierung

GitHub Enterprise Server speichert sowohl herkömmliche Betriebssystem- als auch Anwendungsprotokolle. Die Anwendung führt außerdem detaillierte Audit- und Sicherheitsprotokolle, die GitHub Enterprise Server dauerhaft speichert. You can forward both types of logs in real time to multiple destinations via the syslog-ng protocol. Weitere Informationen finden Sie unter „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
Auditprotokolle
  • 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 Ihrer Appliance von GitHub Enterprise Server sowie die Lizenz jedes Projekts finden Sie unter http(s)://HOSTNAME/site/credits.

Tarballs mit einer vollständigen Liste der Abhängigkeiten und verknüpften Metadaten sind auf Ihrer Appliance verfügbar:

  • Plattformübergreifende Abhängigkeiten finden Sie unter /usr/local/share/enterprise/dependencies-<GHE version>-base.tar.gz.
  • Plattformspezifische Abhängigkeiten finden Sie unter /usr/local/share/enterprise/dependencies-<GHE version>-<platform>.tar.gz.

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

Weiterführende Informationen

Did this doc help you?Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Oder, learn how to contribute.