Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Обзор системы

Подробные сведения о внутреннем устройстве, функциях и безопасности системы GitHub Enterprise Server.

Сведения о GitHub Enterprise Server

GitHub Enterprise Server — это локальная платформа для разработки программного обеспечения на предприятии. GitHub распространяет GitHub Enterprise Server как автономное виртуальное устройство. Завершив подготовку виртуальной машины и установку устройства, экземпляр запускает операционную систему Linux с пользовательским стеком приложений. Дополнительные сведения см. в разделе О сервере GitHub Enterprise.

Архитектура хранилища

Для GitHub Enterprise Server требуется два тома хранилища: один должен быть подключен к пути корневой файловой системы (/), а другой — к пути пользовательской файловой системы (/data/user). Эта архитектура упрощает процедуры обновления, отката и восстановления, отделяя выполняемую программную среду от сохраняемых данных приложения.

Корневая файловая система включена в распределенный образ компьютера. Она содержит базовую операционную систему и среду приложений GitHub Enterprise Server. Корневая файловая система должна рассматриваться как временная. Все данные в корневой файловой системе будут заменены при обновлении до будущих выпусков GitHub Enterprise Server.

Корневой том хранилища разбивается на два раздела одинакового размера. Один из разделов будет подключен в качестве корневой файловой системы (/). Другой раздел подключается в качестве /mnt/upgrade только во время обновлений и откатов обновлений для упрощения таких откатов, если это необходимо. Например, если выделен корневой том объемом 200 ГБ, для корневой файловой системы будет выделено 100 ГБ, а для обновлений и откатов будет зарезервировано 100 ГБ.

Корневая файловая система содержит файлы, которые хранят указанные ниже сведения. Этот список не является исчерпывающим.

  • Пользовательские сертификаты центра сертификации (ЦС) (в /usr/local/share/ca-certificates*)
  • Пользовательские конфигурации сети
  • Пользовательские конфигурации брандмауэра
  • Состояние репликации

Файловая система пользователя содержит файлы, которые хранят указанные ниже конфигурации и данные. Этот список не является исчерпывающим.

  • Репозитории Git
  • Базы данных
  • Индексы поиска
  • Содержимое, опубликованное на сайтах GitHub Pages
  • Крупные файлы из Хранилище больших файлов Git
  • Среда перехватчиков предварительного получения

Технологии развертывания

Вы можете развернуть GitHub Enterprise Server в различных топологиях, таких как пара высокой доступности. Дополнительные сведения см. в разделе О сервере GitHub Enterprise.

Хранение данных и избыточность центров обработки данных

Внимание! Прежде чем использовать GitHub Enterprise Server в рабочей среде, настоятельно рекомендуем настроить резервные копии и план аварийного восстановления.

GitHub Enterprise Server включает в себя поддержку оперативного и добавочного резервного копирования за счет GitHub Enterprise Server Backup Utilities. Вы можете создавать добавочные моментальные снимки через безопасный сетевой канал (административный порт SSH) на больших расстояниях для получения автономного или географически распределенного хранилища. Моментальные снимки можно по сети восстановить на новом подготовленном экземпляре во время процедуры восстановления в случае аварии в основном центре обработки данных.

Кроме сетевого резервного копирования, поддерживаются моментальные снимки дисков VMware и AWS (EBS) для пользовательских томов хранилища, когда экземпляр находится в автономном режиме или в режиме обслуживания. Обычные моментальные снимки томов можно использовать в качестве недорогой и несложной альтернативы для сетевых резервных копий с помощью GitHub Enterprise Server Backup Utilities, если требования к уровню обслуживания допускают регулярное автономное обслуживание.

Дополнительные сведения см. в разделе Настройка резервных копий на устройстве.

Безопасность

GitHub Enterprise Server выполняется в вашей инфраструктуре и для управления им вы можете настроить разные элементы управления доступом и безопасностью, например брандмауэры, сетевые политики, системы IAM, средства мониторинга и каналы VPN. GitHub Enterprise Server хорошо подойдет тем предприятиям, которым важно обеспечить соответствие нормативным требованиям, и поможет избежать проблем, связанных с использованием общедоступного облака в качестве платформы для разработки программного обеспечения.

GitHub Enterprise Server также включает в себя дополнительные функции безопасности.

Операционная система, программное обеспечение и исправления

GitHub Enterprise Server запускает настроенную операционную систему Linux, содержащую только необходимые приложения и службы. GitHub распределяет исправления для основной операционной системы экземпляра в рамках стандартного цикла выпуска продукта. Исправления устраняют проблемы с функциональными возможностями, стабильностью и некритичные проблемы с безопасностью для приложений GitHub Enterprise Server. При необходимости GitHub также предоставляет критические исправления для системы безопасности за пределами обычного цикла выпуска.

GitHub Enterprise Server предоставляется в виде устройства, и многие пакеты операционной системы изменяются по сравнению с обычным дистрибутивом Debian. По этой причине мы не поддерживаем изменение базовой операционной системы (включая обновления операционной системы), что соответствует соглашению о лицензиях и поддержке GitHub Enterprise Server (раздел 11.3 "Исключения").

В настоящее время базовой операционной системой для GitHub Enterprise Server является Debian 10 (Buster), которая получает поддержку в рамках программы долгосрочной поддержки Debian.

Регулярные обновления исправлений публикуются на странице выпусков GitHub Enterprise Server, а на странице заметок о выпуске доступны дополнительные сведения. Эти исправления обычно содержат восходящие исправления безопасности для поставщиков и проектов, прошедшие тестирование и контроль качества в нашей команде инженеров. Может возникнуть небольшая задержка с момента выпуска восходящего обновления до момента его тестирования и упаковки в восходящий выпуск исправления GitHub Enterprise Server.

Безопасность сети

Внутренний брандмауэр GitHub Enterprise Server ограничивает сетевой доступ к службам экземпляра. По сети доступны только службы, необходимые для работы устройства. Дополнительные сведения см. в разделе Сетевые порты.

Защита приложений

Команда специалистов по безопасности приложений GitHub посвящает все свое время оценке уязвимостей, тестам на проникновение и проверке кода для продуктов GitHub, включая GitHub Enterprise Server. GitHub также заключает контракты с внешними фирмами, занимающимися вопросами безопасности, для проведения оценки безопасности на определенный момент времени для продуктов GitHub.

Доступ к внешним службам и услугам поддержки

GitHub Enterprise Server может работать без исходящего доступа из вашей сети к внешним службам. При необходимости можно включить интеграцию с внешними службами для доставки электронной почты, внешнего мониторинга и пересылки журналов. Дополнительные сведения см. в разделах "Настройка электронной почты для получения уведомлений", "Настройка внешнего мониторинга" и "Пересылка журналов".

Вы можете вручную собирать данные об устранении неполадок и отправлять их в Поддержка GitHub. Дополнительные сведения см. в разделе Предоставление данных для службы поддержки GitHub.

Зашифрованное взаимодействие

GitHub включает в GitHub Enterprise Server возможность работы за корпоративным брандмауэром. Чтобы защитить обмен данными по проводной сети, рекомендуется включить протокол TLS. GitHub Enterprise Server поддерживает для трафика HTTPS коммерческие сертификаты TLS разрядностью 2048 бит и выше. Дополнительные сведения см. в разделе Настройка TLS.

По умолчанию экземпляр также предоставляет доступ по протоколу Secure Shell (SSH) как для обращения к репозиторию с помощью Git, так и для административных целей. Дополнительные сведения см. в разделах Сведения о протоколе SSH и Доступ к административной оболочке (SSH).

Если вы настроили проверку подлинности SAML для экземпляр GitHub Enterprise Server, можно включить зашифрованные утверждения между экземпляром и поставщиком удостоверений SAML. Дополнительные сведения см. в разделе Использование SAML для корпоративного IAM.

Пользователи и разрешения на доступ

Существует три типа учетных записей GitHub Enterprise Server.

  • Учетная запись пользователя admin в Linux контролирует доступ к базовой операционной системе, включая прямой доступ к файловой системе и базе данных. Небольшая группа доверенных администраторов должна иметь доступ к этой учетной записи, к которой они могут обратиться по протоколу SSH. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).
  • Учетные записи пользователей в веб-приложении экземпляра имеют полный доступ к собственным данным и любым данным, явно предоставленным другими пользователями или организациями.
  • Администраторы сайта в веб-приложении экземпляра — это учетные записи пользователей, которые могут управлять высокоуровневыми параметрами веб-приложения и экземпляра, параметрами учетной записи пользователя и организации и данными репозитория.

Дополнительные сведения о разрешениях пользователя GitHub Enterprise Server см. в разделе Сведения о разрешениях на доступ в GitHub.

Аутентификация

GitHub Enterprise Server предоставляет четыре метода проверки подлинности.

  • Проверка подлинности на основе открытого ключа SSH обеспечивает как доступ к репозиторию с использованием Git, так и доступ к административной оболочке. Дополнительные сведения см. в разделах Сведения о протоколе SSH и Доступ к административной оболочке (SSH).
  • Проверка подлинности на основе имени пользователя и пароля с использованием файлов cookie HTTP обеспечивает доступ к веб-приложениям и управление сеансами с использованием необязательной двухфакторной проверки подлинности (2FA). Дополнительные сведения см. в разделе Настройка встроенной проверки подлинности.
  • Внешняя проверка подлинности LDAP, SAML или CAS с использованием службы LDAP, поставщика удостоверений (IdP) SAML или другой совместимой службы обеспечивает доступ к веб-приложению. Дополнительные сведения см. в разделе Использование SAML для корпоративного IAM.
  • OAuth и personal access tokens предоставляют доступ к данным репозитория Git и API для внешних клиентов и служб. Дополнительные сведения см. в разделе Управление личными маркерами доступа.

Ведение журналов аудита и доступа

GitHub Enterprise Server хранит традиционные журналы операционной системы и приложений. Приложение также записывает подробные журналы аудита и безопасности, которые GitHub Enterprise Serverхранит на постоянной основе. Вы можете в режиме реального времени пересылать оба типа журналов в несколько назначений через протокол syslog-ng. Дополнительные сведения см. в разделах Сведения о журнале аудита для предприятия и Пересылка журналов.

Журналы доступа и аудита содержат указанные ниже сведения.

Журналы доступа

  • Полные журналы веб-сервера для доступа с помощью браузера и API
  • Полные журналы для доступа к данным репозитория по протоколам Git, HTTPS и SSH
  • Журналы административного доступа по протоколам HTTPS и SSH

Журналы аудита

  • Имена входа пользователей, сброс паролей, запросы двухфакторной проверки подлинности, изменения параметров электронной почты, а также изменения авторизованных приложений и API
  • Действия администратора сайта, такие как разблокировка учетных записей пользователя и репозиториев
  • События отправки репозитория, предоставление доступа, передача и переименование
  • Изменение членства в организации, включая создание и уничтожение команд

Зависимости с открытым кодом для GitHub Enterprise Server

Полный список зависимостей приведен в описании версии экземпляра GitHub Enterprise Server, а также в лицензии каждого проекта по адресу http(s)://HOSTNAME/site/credits.

Архивы TAR с полным списком зависимостей и связанных метаданных доступны в экземпляре.

  • Для зависимостей, общих для всех платформ, — по адресу /usr/local/share/enterprise/dependencies-<GHE version>-base.tar.gz
  • Для зависимостей, относящихся к конкретной платформе, — по адресу /usr/local/share/enterprise/dependencies-<GHE version>-<platform>.tar.gz

Кроме того, архивы TAR с полным списком зависимостей и метаданных доступны по адресу https://enterprise.github.com/releases/<version>/download.html.

Дополнительные материалы