Cómo instalar Gitlab de forma segura (Un tutorial)

Has decidido que necesitas empezar a utilizar GitLab para la gestión de tu proyecto, ¿pero no estás seguro de cómo instalar GitLab de manera segura? La instalación de GitLab no solo es un proceso complejo, sino que si no se realiza correctamente, tus datos podrían estar en riesgo. ¡Pero no te preocupes, has llegado al lugar correcto!

En este tutorial, aprenderás todo el proceso de instalación de GitLab de manera segura, para que puedas configurar el cifrado SSL y configurar GitLab para un rendimiento óptimo.

¿Suena interesante? ¡Vamos allá!

Prerrequisitos

Este tutorial será una demostración práctica. Si quieres seguirlo, asegúrate de tener lo siguiente:

  • A Linux server with root access – This demo uses Ubuntu 20.04 LTS, but any Linux distribution will work.
  • A fully qualified domain name (FQDN) pointing to your server.
  • Let’s Encrypt instalado en el servidor.
  • Requisitos mínimos: 8 GB de RAM, ancho de banda de 50-100 Mb/s, procesador de 2 GHz y 20 GB de espacio en disco.

Instalación de GitLab Community Edition

Ahora que tienes un FQDN y tu servidor preparado, es el momento de instalar GitLab. Hay varias formas de hacerlo, como usar el paquete Omnibus o compilar desde el origen. Pero este tutorial se centra en instalar GitLab utilizando el repositorio de GitLab de su desarrollador.

GitLab viene en dos distribuciones:

  • GitLab Community Edition (CE) – para usuarios que prefieren una versión de GitLab de código abierto y respaldada por la comunidad.
  • GitLab Enterprise Edition (EE) – para usuarios que necesitan las características adicionales que proporciona GitLab Enterprise Edition.

Pero esta demostración utiliza la Community Edition para probar la aplicación en tu entorno de desarrollo.

1. Abre tu terminal y ejecuta el comando apt update a continuación para asegurarte de que tu sistema tenga acceso a todas las últimas actualizaciones de software.

El comando apt update actualiza los archivos de índice de paquetes utilizados por la utilidad apt para recuperar información sobre los paquetes disponibles.

sudo apt update -y
Updating your package index

2. A continuación, ejecuta el comando apt install a continuación para descargar (curl) e instalar las siguientes dependencias requeridas para la instalación de GitLab:

  • Paquete openssh-server – Contiene el demonio del servidor OpenSSH y herramientas relacionadas, como la herramienta de gestión de claves de host y el servidor, para proporcionar acceso de inicio de sesión remoto a los usuarios.
  • paquete de ca-certificates – Contiene una lista de certificados de CA. Este paquete proporciona los archivos necesarios para habilitar el soporte HTTPS en su servidor.
sudo apt install curl openssh-server ca-certificates -y
Installing the required dependencies

3. Ejecute el comando curl a continuación para descargar (curl) el script de instalación desde GitLab ( https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce). El comando luego guarda el script de instalación como un script de shell (script.deb.sh) y lo ejecuta como superusuario (sudo bash).

sudo curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

Una vez que se complete el comando curl, obtendrá la siguiente salida.

Adding the GitLab repository to your system

4. Ejecute el comando apt-cache a continuación para verificar que ha agregado correctamente el repositorio de GitLab.

apt-cache policy docker-ce
Verifying if GitLab Repository Exists

5. Ahora, vuelva a ejecutar el comando apt update para actualizar la lista de paquetes disponibles. Este comando asegura que su sistema utilizará el repositorio de GitLab recién agregado cuando instale GitLab.

sudo apt update -y

6. Finalmente, ejecute el comando apt install a continuación para instalar GitLab (gitlab-ce) en su sistema.

sudo apt install gitlab-ce -y
Installing GitLab

La instalación llevará un tiempo, pero verá la siguiente salida cuando se complete la instalación. Esta salida confirma que ha instalado GitLab con éxito en su sistema.

Getting the Welcome Page after Installing GitLab

Configuración de su instalación de GitLab

Ahora tienes GitLab instalado en tu sistema, pero necesitarás hacer algunos cambios de configuración antes de usar GitLab. El archivo de configuración de GitLab (/etc/gitlab/gitlab.rb) contiene los ajustes globales para GitLab que no son específicos del entorno de tu servidor de GitLab.

Modificarás el archivo de configuración de GitLab para establecer el nombre de dominio FQDN y la conexión segura a tu dominio.

1. Abre el archivo de configuración /etc/gitlab/gitlab.rb en tu editor de texto favorito.

Una de las entradas más importantes en el archivo de configuración de GitLab es la directiva external url, como se muestra a continuación. Esta directiva permite a los usuarios acceder a GitLab a través de un navegador web.

Cambia el valor de la directiva external url de http://gitlab.example.com a https://gitlab.tudominio.com, donde tudominio.com es tu nombre de dominio FQDN.

Setting FQDN domain name in the external URL directive

2. A continuación, ve a la sección de integración de Let’s Encrypt ubicada al final, y configura las directivas de la siguiente manera:

  • Descomenta la directiva letsencrypt['enable'] eliminando el # precedente y cambia el valor de nil a true. Esta directiva indica a GitLab que configure automáticamente HTTPS en tu servidor.
  • Descomenta la directiva letsencrypt['contact_emails'] eliminando el # precedente, y coloca tu dirección de correo electrónico como el valor. Let’s Encrypt usará esta dirección de correo electrónico para contactarte cuando necesites renovar tu certificado SSL (cada 90 días).
  • Guarda los cambios y sal del editor.
Configuring Let’s Encrypt Integration

3. Por último, ejecuta el siguiente comando para reconfigurar y aplicar los cambios en el archivo de configuración de GitLab /etc/gitlab/gitlab.rb a GitLab.

sudo gitlab-ctl reconfigure
Reconfiguring GitLab

Configuración de tu Firewall para Conexiones SSL

Ahora que has configurado GitLab, necesitarás configurar las reglas de tu firewall para permitir conexiones SSL y seguras a tu servidor. Uncomplicated Firewall (UFW) es el programa predeterminado para gestionar las reglas del firewall en Ubuntu.

Si has colocado tu servidor detrás de un firewall, necesitarás abrir el puerto HTTP 80 y el puerto HTTPS 443 para conexiones SSL.

Ejecuta el siguiente comando para abrir los puertos OpenSSH, HTTP y HTTPS para tu servidor GitLab.

sudo ufw allow OpenSSH && sudo ufw allow http && sudo ufw allow http
Adding new firewall rule

Ahora, ejecuta el siguiente comando para verificar el estado de tu firewall.

sudo ufw status 
Checking the status of your firewall

Asegurando GitLab a través de la Interfaz Web

Tu firewall está activo, pero ¿significa que tu GitLab está seguro? Nunca está de más añadir capas de seguridad. Así que asegurarás aún más la instalación de GitLab a través de la interfaz web.

1. Abre tu navegador web favorito y navega hasta tu servidor GitLab. Por ejemplo, http://gitlab.ejemplo.com, donde ejemplo.com es el nombre de dominio FQDN.

Elige Chrome o Firefox cuando accedas a tu servidor GitLab para una mejor seguridad. Estos navegadores web utilizan sus propios protocolos HTTP/HTTPS, que ayudan a aplicar políticas de seguridad.

A continuación, puedes ver la página de inicio de sesión de GitLab.

Accessing the GitLab Log in screen

2. A continuación, haz clic en el icono del candado (arriba a la izquierda) junto a la barra de direcciones y verás el estado de tu conexión. Esta demostración muestra que la Conexión es segura, lo que indica que tu conexión con el servidor es a través de HTTPS.

Checking your connection status

Vuelve a tu terminal y ejecuta el comando cat a continuación para obtener tu initial_root_password.

De forma predeterminada, la instalación de GitLab viene con una contraseña de root inicial generada automáticamente.

 cat /etc/gitlab/initial_root_password

Copia y guarda tu contraseña de root inicial en un lugar seguro. Utilizarás esta contraseña para iniciar sesión en GitLab (paso cuatro).

Getting your initial root password

4. Vuelve a tu navegador web, escribe root como nombre de usuario e introduce tu contraseña de root inicial como contraseña. Haz clic en Iniciar sesión para iniciar sesión en tu servidor GitLab.

Logging in to your GitLab server

Después de iniciar sesión en tu servidor GitLab, tu navegador se redirigirá al tablero de GitLab, como se muestra a continuación.

Viewing GitLab Dashboard

Agregar una clave SSH a tu cuenta de GitLab

Además de la interfaz web, también puedes acceder a GitLab a través de un entorno de línea de comandos de forma segura. ¿Cómo? Primero necesitarás agregar una clave SSH a tu cuenta, para que puedas acceder a GitLab ejecutando un comando en tu terminal sin tener que introducir una contraseña.

1. Ejecute el comando ssh-keygen para generar un par de claves SSH adecuado para usar en conexiones SSH. Cuando se le solicite, presione la tecla Enter para mantener la ubicación de guardado predeterminada para la clave SSH (/root/.ssh/id_rsa) y no agregue una frase de contraseña.

ssh-keygen
Generating an SSH keypair

2. Ejecute el comando cat a continuación para imprimir su clave pública en la pantalla, como se muestra a continuación. Copie la cadena de clave pública completa ssh-rsa y guárdela en un lugar seguro. Agregará esta clave pública a su GitLab más adelante (paso tres).

 cat ~/.ssh/id_rsa.pub
Viewing the entire ssh-rsa public key string

3. Vuelva al panel de control de GitLab en su navegador para agregar su clave pública con lo siguiente:

  • Haga clic en el menú Claves SSH en el panel izquierdo de la página de Configuración de Usuario para acceder a la página de Claves SSH.
  • Pegue la clave pública que copió (paso dos) en el campo Clave, como se muestra a continuación.
  • Proporcione su nombre preferido para la clave en el campo Título. Pero para esta demostración, el nombre se establece como ATAGitHub.
  • Haga clic en Agregar Clave para finalizar la adición de la clave pública a su cuenta.
Adding SSH Keys

Desactivación de Inscripciones Públicas

Para seguridad adicional, puede desactivar las inscripciones públicas en GitLab. ¿Por qué? La función de inscripciones públicas en GitLab permite que cualquier persona cree una cuenta en el servidor de GitLab. Deshabilitar esta función le permite evitar ataques de fuerza bruta en su servidor.

1. Desde el panel de control de GitLab, haz clic en Menú —> Admin para acceder al panel de administración, luego haz clic en Configuración para acceder a la página de configuración General del panel de administración (paso dos).

Viewing the GitLab Admin panel

2. Desactiva la opción Habilitar registro bajo la sección de Restricciones de registro. Al hacerlo, desactivarás la función de registros públicos de GitLab.

Disabling GitLab Public Sign-ups

3. Desplázate hacia abajo y haz clic en Guardar cambios (abajo) para guardar los cambios que hiciste en la configuración de restricciones de registro.

Saving your changes

4. Finalmente, cierra sesión en tu cuenta y navega hasta la pantalla de inicio de sesión de GitLab.

Como puedes ver a continuación, el enlace Registrarse ahora ha desaparecido.

Verifying if the Register now link is gone

Prueba tu Servidor de GitLab

En este punto, ya has configurado y asegurado tu servidor de GitLab, ¡y eso es genial! Pero, ¿cómo sabes si tu servidor de GitLab está realmente funcionando? Probarás tu servidor creando un proyecto de GitLab a través del panel de control de GitLab y clonando el proyecto en tu servidor.

1. En el panel de control de GitLab, haz clic en el icono de más (+) junto al cuadro de búsqueda, luego haz clic en Nuevo proyecto, como se muestra a continuación, para crear un nuevo proyecto de GitLab.

Adding New GitLab Project

2. A continuación, proporciona tu Nombre del proyecto preferido, pero para esta demostración, el nombre del proyecto se establece como ATA GitLab, y el Slug del proyecto se establece como (atagitlab).

Haz clic en Crear proyecto para crear tu nuevo proyecto.

Creating a new project

3. Vuelve a tu terminal y ejecuta los siguientes comandos para configurar tu nombre de usuario global (--global user.name) y correo electrónico (--global user.email) para Git. Cada nombre de usuario y correo electrónico son globalmente únicos en todos los cuentas en el servidor GitLab.

git config --global user.name "ATA"
git config --global user.email "[email protected]"

4. Ahora, ejecuta el comando git clone abajo para clonar el proyecto de GitLab de ATA que creaste (paso dos) en tu directorio actual. Reemplaza yourdomain.com con tu FQDN.

git clone http://gitlab.yourdomain.com/root/ATA-GitLab.git

Si todo va bien, verás una salida similar a la siguiente. Cuando la clonación se complete, tendrás un nuevo directorio llamado ATA-GitLab.

Cloning the ATA GitLab project

5. Finalmente, ejecuta el comando ls para verificar que el directorio ATA-GitLab existe.

ls

Dado que puedes clonar el nuevo proyecto de GitLab de ATA y que el directorio de GitLab de ATA existe, la salida a continuación confirma que tu servidor GitLab está funcionando correctamente.

Listing new directory ATA-GitLab

Conclusión

En este tutorial, aprendiste cómo realizar una instalación segura de GitLab en tu sistema Ubuntu Linux. Te aseguraste de asegurar tu servidor GitLab a través de la interfaz web, agregar claves SSH a tu cuenta de GitLab y probar si tu servidor GitLab funciona.

Con este nuevo conocimiento, ¿quizás te gustaría aprender cómo configurar sistemas automatizados de Integración Continua (CI) con GitLab?

Source:
https://adamtheautomator.com/install-gitlab/