Acerca de GitHub Enterprise Server
GitHub Enterprise Server es una versión autohospedada de la plataforma GitHub. GitHub distribuye GitHub Enterprise Server como una aplicación virtual independiente. Después de aprovisionar una máquina virtual e instalar el dispositivo, la instancia ejecuta un sistema operativo Linux con una pila de aplicaciones personalizada. Para obtener más información, consulte Acerca de GitHub Enterprise Server.
Arquitectura de almacenamiento
En GitHub Enterprise Server se necesitan dos volúmenes de almacenamiento, uno montado en la ruta del sistema de archivos raíz (/) y otro en la ruta del sistema de archivos del usuario (/data/user). Esta arquitectura simplifica los procedimientos de actualización, reversión y recuperación al separar el entorno del software que se ejecuta de los datos de aplicación persistentes.
El sistema de archivos raíz está incluido en la imagen de máquina distribuida. Contiene el sistema operativo base y el entorno de aplicación GitHub Enterprise Server. El sistema de archivos raíz debería tratarse como efímero. Cualquier dato en el sistema de archivos raíz se reemplazará cuando se actualice con futuros lanzamientos del GitHub Enterprise Server.
El volumen de almacenamiento raíz se divide en dos particiones del mismo tamaño. Una de las particiones se montará como el sistema de archivos raíz (/). La otra partición solo se montará durante actualizaciones y reversiones de actualizaciones como /mnt/upgrade, para facilitar esas reversiones en caso de que sea necesario. Por ejemplo, si se asigna un volumen raíz de 400 GB, habrá 200 GB asignados al sistema de archivos raíz y 200 GB reservados para las actualizaciones y las reversiones.
En las nuevas instalaciones de la versión 3.14 y posteriores, el volumen de almacenamiento raíz se divide en cuatro particiones. Dos particiones pequeñas son para los modos de arranque admitidos (BIOS y UEFI), y las otras dos particiones igualmente grandes son para la instancia principal de GitHub Enterprise Server, y para actualizaciones y reversiones.
El sistema de archivos raíz contiene archivos que almacenan la información siguiente. Esta lista no es exhaustiva.
- Certificados de autoridad certificadora (CA) personalizada (en
/usr/local/share/ca-certificates*) - Las configuraciones de red personalizadas
- Las configuraciones de firewall personalizadas
- El estado de replicación
El sistema de archivos del usuario contiene archivos que almacenan los datos y la configuración siguientes. Esta lista no es exhaustiva.
- Repositorios Git
- Bases de datos
- Índices de búsqueda
- Contenido publicado en los sitios GitHub Pages
- Archivos grandes de Almacenamiento de archivos de gran tamaño de Git
- Entornos de enlaces de pre-recepción
Topologías de implementación
De manera predeterminada, GitHub Enterprise Server se ejecuta como una instancia independiente. Puedes aumentar la fiabilidad y el rendimiento de GitHub Enterprise Server mediante una topología diferente para la implementación.
- Para mitigar el impacto de los errores del sistema o de la red, puedes implementar una instancia de réplica pasiva. Durante una interrupción que afecte a la instancia principal, tienes la opción de realizar manualmente una conmutación a la instancia de réplica. Para más información, consulta Acerca de la configuración de alta disponibilidad.
- Puedes configurar varias réplicas activas para mejorar el rendimiento de los desarrolladores que están geográficamente alejados de la instancia principal. Para más información, consulta Acerca de la Replicación geográfica.
- Algunas empresas con decenas de miles de desarrolladores pueden beneficiarse de una configuración de clúster que se escala horizontalmente en lugar de verticalmente. Para más información, consulta Acerca de las agrupaciones.
Retención de datos y redundancia de centro de datos
Advertencia
Antes de usar GitHub Enterprise Server en un entorno de producción, recomendamos firmemente que configures copias de seguridad y un plan de recuperación ante desastres.
GitHub Enterprise Server incluye compatibilidad con copias de seguridad incrementales y en línea con las GitHub Enterprise Server Backup Utilities. Puedes tomar capturas incrementales a través de un enlace de red seguro (el puerto administrativo SSH) a largas distancias para el almacenamiento fuera del sitio o geográficamente disperso. Puedes restaurar instantáneas a través de la red en una instancia recientemente aprovisionada al momento de la recuperación en el caso de un desastre en el centro de datos principal.
Además de las copias de seguridad de red, se admiten las instantáneas de disco AWS (EBS) y VMware de los volúmenes de almacenamiento del usuario mientras que la instancia está sin conexión o en modo de mantenimiento. Las instantáneas regulares de volúmenes pueden usarse como una alternativa de bajo coste y baja complejidad para las copias de seguridad en red con GitHub Enterprise Server Backup Utilities si tus requisitos de nivel de servicio permiten realizar mantenimientos fuera de línea con regularidad.
Para más información, consulta Configuración de copias de seguridad en la instancia mediante utilidades de copia de seguridad.
Seguridad
GitHub Enterprise Server se ejecuta en la infraestructura y está regulado por controles de acceso y seguridad que tú defines, como firewall, políticas de red, IAM, supervisión y VPN. GitHub Enterprise Server es adecuado para las empresas que están sujetas al cumplimiento normativo, lo que ayuda a evitar problemas que surgen de plataformas de desarrollo de software en la nube pública.
El GitHub Enterprise Server también incluye características de seguridad adicionales.
-
[Sistema operativo, software y revisiones](#operating-system-software-and-patches) -
[Seguridad de red](#network-security) -
[Seguridad de las aplicaciones](#application-security) -
[Servicios externos y acceso de soporte](#external-services-and-support-access) -
[Comunicación cifrada](#encrypted-communication) -
[Usuarios y permisos de acceso](#users-and-access-permissions) -
[Autenticación](#authentication) -
[Registro de auditoría y de accesos](#audit-and-access-logging)
Sistema operativo, software y revisiones
El GitHub Enterprise Server ejecuta un sistema operativo Linux personalizado con las aplicaciones y los servicios necesarios únicamente. GitHub distribuye parches para el sistema operativo central de la instancia como parte de su ciclo de lanzamiento estándar de productos. Las revisiones abordan problemas de funcionalidad, estabilidad y de seguridad no críticos para GitHub Enterprise Server. GitHub también proporciona revisiones críticas de seguridad según se necesiten fuera del ciclo de lanzamiento regular.
GitHub Enterprise Server se proporciona como un dispositivo y muchos de los paquetes de los sistemas operativos se modifican en comparación con la distribución común de Ubuntu. Por esta razón no se admite la modificación del sistema operativo subyacente (incluidas las actualizaciones del sistema operativo), lo que se alinea con el contrato de licencia y soporte técnico de GitHub Enterprise Server, bajo las exclusiones de la sección 11.3.
Actualmente, el sistema operativo base para GitHub Enterprise Server es Ubuntu 20 (Focal Fossa). Aunque Ubuntu 20 (Focal Fossa) llegará al final del soporte estándar en mayo de 2025, podremos usar el mantenimiento de seguridad extendido y obtener soporte técnico de seguridad más allá de 2025.
Las actualizaciones de revisión periódicas se publican en la página versiones de GitHub Enterprise Server y en la página notas de la versión se proporciona más información. Estos parches a menudo contienen parches de seguridad de proveedores y proyectos upstream después de que han sido probados y su calidad ha sido aprobada por nuestro equipo de ingeniería. Puede haber una demora de tiempo pequeña desde el momento en que se lanza la actualización ascendente hasta el momento en que se prueba y se empaqueta en el lanzamiento de una revisión futura de GitHub Enterprise Server.
Seguridad de las redes
El firewall interno de GitHub Enterprise Server restringe el acceso de la red a los servicios de la instancia. Están disponibles en la red únicamente los servicios necesarios para que el aparato funcione. Para más información, consulta Puertos de red.
Seguridad de las aplicaciones
El equipo de seguridad de la aplicación de GitHub se centra completamente en la evaluación de vulnerabilidades, la prueba de penetración y la revisión del código para los productos de GitHub, incluido GitHub Enterprise Server. GitHub también contrata firmas de seguridad externas para proporcionar valoraciones de seguridad puntuales de los productos de GitHub.
Servicios externos y acceso de soporte
El GitHub Enterprise Server puede funcionar sin ningún acceso de salida de tu red a servicios externos. De forma opcional, puedes habilitar la integración con servicios externos para la entrega de correo electrónico, el monitoreo externo y el reenvío de bitácoras. Para más información, consulta Configurar el correo electrónico para notificaciones, Configuración de la monitorización externa con collectd y Reenvío de logs.
Puedes recopilar y enviar manualmente datos de resolución de problemas a Soporte de GitHub. Para más información, consulta Proporcionar datos al soporte técnico de GitHub.
Comunicación cifrada
GitHub diseña GitHub Enterprise Server para que se ejecute detrás de tu firewall corporativo. Para asegurar la comunicación a través del cable, te alentamos a habilitar la seguridad de la capa de transporte (TLS). El GitHub Enterprise Server admite certificados TLS comerciales de 2048 bits y superiores para el tráfico HTTPS. Para más información, consulta Configurar TLS.
De manera predeterminada, la instancia también ofrece acceso Secure Shell (SSH) con fines administrativos y para el acceso al repositorio utilizando Git. Para más información, consulta Acerca de SSH y Acceder al shell administrativo (SSH).
Si configuras la autenticación de SAML para tu instancia de GitHub Enterprise Server, puedes habilitar las aserciones cifradas entre la instancia y tu IdP de SAML. Para más información, consulta Uso de SAML para IAM empresarial.
Usuarios y permisos de acceso
El GitHub Enterprise Server proporciona tres tipos de cuentas.
- La cuenta de usuario de Linux
adminha controlado el acceso al sistema operativo subyacente, incluido el acceso directo al sistema de archivos y la base de datos. Un pequeño conjunto de administradores de confianza debería tener acceso a esta cuenta, a la que pueden acceder por medio de SSH. Para más información, consulta Acceder al shell administrativo (SSH). - Las cuentas de usuario en la aplicación web de la instancia tienen acceso completo a sus propios datos y a cualquier dato que otros usuarios u organizaciones concedan de manera explícita.
- Los administradores del sitio en la aplicación web de la instancia son cuentas de usuario que pueden administrar los ajustes de instancia y aplicación web de alto nivel, la configuración de las cuentas de usuario y organización, y los datos del repositorio.
Para obtener más información sobre permisos de usuario de GitHub Enterprise Server, consulta Permisos de acceso en GitHub.
Autenticación
El GitHub Enterprise Server proporciona cuatro métodos de autenticación.
- La autenticación mediante claves públicas SSH proporciona acceso al repositorio utilizando Git y acceso al shell administrativo. Para más información, consulta Acerca de SSH y Acceder al shell administrativo (SSH).
- El nombre de usuario y la autenticación de contraseña con cookies HTTP proporciona acceso a la aplicación web y la gestión de sesiones, con autenticación opcional de dos factores (2FA). Para más información, consulta Configurar la autenticación integrada.
- La autenticación externa LDAP, SAML o CAS mediante un servicio LDAP, SAML Identity Provider (IdP) u otro servicio compatible proporciona acceso a la aplicación web. Para más información, consulta Uso de SAML para IAM empresarial.
- OAuth y los personal access token proporcionan acceso a los datos del repositorio de Git y a API para servicios y clientes externos. Para más información, consulta Administración de tokens de acceso personal.
Registro de auditoría y de acceso
El GitHub Enterprise Server almacena tanto registros tradicionales de sistema operativo como de aplicación. La aplicación también escribe registros de auditoría y de seguridad detallados, que el GitHub Enterprise Server almacena de forma permanente. Puede reenviar ambos tipos de registros en tiempo real a varios destinos por medio del protocolo syslog-ng. Para más información, consulta Registro de auditoría de una empresa y Reenvío de logs.
Los registros de acceso y de auditoría incluyen información como la siguiente.
Registros de acceso
- Registros completos de servidor web tanto para el navegador como para el acceso a la API
- Registros completos para acceder a los datos del repositorio por medio de protocolos Git, HTTPS y SSH
- Registros de acceso administrativo por medio de HTTPS y SSH
Registros de auditoría
- Inicios de sesión del usuario, restablecimientos de contraseña, solicitudes 2FA, cambios en la configuración del correo electrónico y cambios en aplicaciones autorizadas y API
- Acciones de administrador del sitio, como desbloquear cuentas de usuario y repositorios
- Eventos push de repositorio, permisos de acceso, transferencias y renombres
- Cambios de membresía de la organización, incluida la creación y la destrucción de equipo
Dependencias de código abierto para GitHub Enterprise Server
Puedes ver una lista completa de dependencias en la versión de tu instancia de GitHub Enterprise Server, así como la licencia de cada proyecto en http(s)://HOSTNAME/site/credits.
Los tarballs, que incluyen una lista completa de dependencias y los metadatos asociados, están disponibles en su instancia.
- Para las dependencias comunes a todas las plataformas, en
/usr/local/share/enterprise/dependencies-<GHE version>-base.tar.gz - Para las dependencias específicas de una plataforma, consulte
/usr/local/share/enterprise/dependencies-<GHE version>-<platform>.tar.gz
"También hay archivos tar disponibles, con una lista completa de dependencias y metadatos, en https://enterprise.github.com/releases/<version>/download.html."
Información adicional
-
[AUTOTITLE](/admin/overview/setting-up-a-trial-of-github-enterprise-server) -
[AUTOTITLE](/admin/installation/setting-up-a-github-enterprise-server-instance)