Skip to main content

Esta versión de GitHub Enterprise se discontinuará el 2022-10-12. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener rendimiento mejorado, seguridad mejorada y nuevas características, actualice a la versión más reciente de GitHub Enterprise. Para obtener ayuda con la actualización, póngase en contacto con el soporte técnico de GitHub Enterprise.

Información general del sistema

Obtén más información sobre la seguridad, la funcionalidad y los elementos internos del sistema de GitHub Enterprise Server.

Acerca de GitHub Enterprise Server

GitHub Enterprise Server es una plataforma autohospedada para el desarrollo de software dentro de tu empresa. 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 más información, consulta "Acerca de GitHub Enterprise Server".

Arquitectura de almacenamiento

En GitHub Enterprise Server, se necesitan dos volúmenes de almacenamiento: uno montado en la ruta de acceso del sistema de archivos raíz (/) y el otro, en la ruta de acceso 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. Se reemplazará cualquier dato en el sistema de archivos raíz cuando se actualice con lanzamientos futuros de 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 200GB, 100GB se asignarán al sistema de archivos raíz y otros 100GB se reservarán para las mejoras y reversiones.

El sistema de archivos raíz contiene archivos que almacenan la información siguiente. Esta lista no es exhaustiva.

  • Certificados de entidad de certificación (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

Puedes implementar GitHub Enterprise Server en diversas topologías, como un par de alta disponibilidad. Para más información, consulta "Acerca de GitHub Enterprise Server".

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 instantáneas incrementales sobre un enlace de red seguro (el puerto administrativo SSH) sobre grandes distancias para el almacenamiento externo 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 de volumen regulares pueden usarse como una alternativa de bajo costo y baja complejidad para las copias de seguridad de red con GitHub Enterprise Server Backup Utilities si tus requisitos de nivel de servicio permiten un mantenimiento fuera de línea regular.

Para más información, vea "Configuración de copias de seguridad en el dispositivo".

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.

GitHub Enterprise Server también incluye características de seguridad adicionales.

Sistema operativo, software y parches

GitHub Enterprise Server ejecuta un sistema operativo Linux personalizado con solo las aplicaciones y los servicios necesarios. GitHub distribuye las revisiones del sistema operativo central de la instancia como parte de su ciclo estándar de lanzamiento 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 sistema operativo se modifican en comparación con la distribución habitual de Debian. 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 Debian 9 (Stretch), que recibe soporte técnico bajo el programa de Soporte técnico a largo plazo de Debian. Existen planes para migrarse a un sistema operativo base nuevo antes del final del periodo de Debian LTS para Stretch.

Las actualizaciones de revisiones periódicas se publican en la página de versiones de GitHub Enterprise Server. Además, la página de notas de la versión proporciona más información. Estos parches a menudo contienen un proveedor de nivel superior y parches de seguridad de proyecto después de que se prueban y que nuestro equipo de ingeniería aprueba su calidad. 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, vea "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

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, vea "Configuración del correo electrónico para notificaciones", "Configuración de la supervisión externa" y "Reenvío de registros".

Puedes recopilar y enviar manualmente datos de resolución de problemas a Soporte de GitHub. Para más información, vea "Suministro de datos a Soporte de GitHub".

Comunicación encriptada

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). GitHub Enterprise Server admite certificados TLS comerciales de 2048 bits y superiores para el tráfico HTTPS. Para más información, vea "Configuración de 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, vea "Acerca de SSH" y "Acceso al shell administrativo (SSH)".

Usuarios y permisos de acceso

GitHub Enterprise Server proporciona tres tipos de cuentas.

  • La cuenta de usuario de Linux admin ha 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, vea "Acceso 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 más información sobre los permisos de usuario de GitHub Enterprise Server, consulta "Permisos de acceso en GitHub".

Authentication

GitHub Enterprise Server proporciona cuatro métodos de autenticación.

  • La autenticación de claves públicas SSH proporciona acceso del repositorio usando Git y el shell administrativo. Para más información, vea "Acerca de SSH" y "Acceso 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, vea "Uso de 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 "Administración de IAM de la empresa".
  • OAuth y los token de acceso personal proporcionan acceso a los datos del repositorio de Git y a API para clientes externos y servicios. Para más información, vea "Creación de un token de acceso personal".

Auditoría y registro de acceso

GitHub Enterprise Server almacena registros tradicionales tanto de aplicaciones como de sistemas operativos. La aplicación también escribe registros de auditoría y seguridad detallados, que GitHub Enterprise Server almacena de manera 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 "Acerca del registro de auditoría para la empresa" y "Reenvío de registros".

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 las dependencias en la versión de GitHub Enterprise Server de la instancia, así como a la licencia de cada proyecto, en http(s)://HOSTNAME/site/credits.

En la instancia, están disponibles los tarballs con una lista completa de las dependencias y los metadatos asociados.

  • 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, en /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