Как безопасно установить GitLab (руководство)

Вы решили, что вам нужно начать использовать GitLab для управления проектом, но не уверены, как установить GitLab безопасно? Установка GitLab является сложным процессом, и если она не будет выполнена правильно, ваши данные могут оказаться в опасности. Но не волнуйтесь, вы обратились по адресу!

В этом руководстве вы узнаете весь процесс безопасной установки GitLab, чтобы настроить шифрование SSL и настроить GitLab для оптимальной производительности.

Звучит интересно? Начинайте прямо сейчас!

Предварительные требования

Это руководство будет практическим демонстрационным. Если вы хотите следовать за ним, убедитесь, что у вас есть следующее:

  • 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, установленный на сервере.
  • Минимальные требования – 8 ГБ оперативной памяти, пропускная способность 50-100 Мб/с, процессор 2 ГГц и 20 ГБ свободного места на диске.

Установка GitLab Community Edition

Теперь, когда у вас есть полностью квалифицированное доменное имя (FQDN) и готовый сервер, пришло время установить GitLab. Существует несколько способов установки GitLab, таких как использование пакета Omnibus или сборка из исходного кода. Но это руководство сосредоточено на установке GitLab с использованием репозитория GitLab от его разработчика.

GitLab поставляется в двух распространениях:

  • GitLab Community Edition (CE) – для пользователей, предпочитающих открытый исходный код и поддержку сообщества.
  • GitLab Enterprise Edition (EE) – для пользователей, которым требуются дополнительные функции, предоставляемые в GitLab Enterprise Edition.

Но для этой демонстрации используется Community Edition, чтобы протестировать приложение в вашей среде разработчика.

1. Откройте терминал и выполните нижеуказанную команду apt update, чтобы убедиться, что ваша система имеет доступ ко всем последним обновлениям программного обеспечения.

Команда apt update обновляет файлы индекса пакетов, используемые утилитой apt, чтобы получить информацию о доступных пакетах.

sudo apt update -y
Updating your package index

2. Затем выполните команду apt install ниже, чтобы скачать (curl) и установить следующие необходимые зависимости для установки GitLab:

  • пакет openssh-server – Содержит демон сервера OpenSSH и связанные инструменты, такие как управление ключами хоста и сервер, для предоставления удаленного входа для пользователей.
  • ca-certificates пакет – Содержит список сертификатов CA. Этот пакет предоставляет необходимые файлы для обеспечения поддержки HTTPS на вашем сервере.
sudo apt install curl openssh-server ca-certificates -y
Installing the required dependencies

3. Запустите команду curl ниже, чтобы загрузить (curl) скрипт установки с GitLab (https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce). Команда затем сохраняет скрипт установки как shell скрипт (script.deb.sh) и запускает его с правами суперпользователя (sudo bash).

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

После выполнения команды curl, вы получите следующий вывод.

Adding the GitLab repository to your system

4. Запустите команду apt-cache ниже, чтобы убедиться, что вы успешно добавили репозиторий GitLab.

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

5. Теперь повторно выполните команду apt update, чтобы обновить список доступных пакетов. Эта команда гарантирует, что ваша система будет использовать недавно добавленный репозиторий GitLab при установке GitLab.

sudo apt update -y

6. Наконец, запустите команду apt install ниже, чтобы установить GitLab (gitlab-ce) на вашей системе.

sudo apt install gitlab-ce -y
Installing GitLab

Установка займет некоторое время, но когда установка будет завершена, вы увидите следующий вывод. Этот вывод подтверждает, что теперь у вас успешно установлен GitLab на вашей системе.

Getting the Welcome Page after Installing GitLab

Настройка вашей установки GitLab

Теперь у вас установлен GitLab на вашей системе, но перед использованием GitLab вам нужно внести несколько изменений в конфигурацию. Файл конфигурации GitLab (/etc/gitlab/gitlab.rb) содержит глобальные настройки GitLab, которые не специфичны для окружения вашего сервера GitLab.

Вы измените файл конфигурации GitLab, чтобы задать имя домена FQDN и защищенное соединение с вашим доменом.

1. Откройте файл конфигурации /etc/gitlab/gitlab.rb в вашем любимом текстовом редакторе.

Одним из самых важных элементов в файле конфигурации GitLab является директива external url, как показано ниже. Эта директива позволяет пользователям получить доступ к GitLab через веб-браузер.

Измените значение директивы external url с http://gitlab.example.com на https://gitlab.yourdomain.com, где yourdomain.com – ваше имя домена FQDN.

Setting FQDN domain name in the external URL directive

2. Затем перейдите к разделу Интеграция с Let’s Encrypt, расположенному внизу, и настройте директивы следующим образом:

  • Раскомментируйте директиву letsencrypt['enable'], удалив предшествующий # и измените значение с nil на true. Эта директива указывает GitLab на автоматическую настройку HTTPS на вашем сервере.
  • Раскомментируйте директиву letsencrypt['contact_emails'], удалив предшествующий #, и введите ваш адрес электронной почты в качестве значения. Let’s Encrypt будет использовать этот адрес электронной почты, чтобы связаться с вами, когда вам потребуется обновить ваш сертификат SSL (каждые 90 дней).
  • Сохраните изменения и выйдите из редактора.
Configuring Let’s Encrypt Integration

3. Наконец, выполните нижеприведенную команду для переконфигурации и применения изменений в файле конфигурации GitLab /etc/gitlab/gitlab.rb.

sudo gitlab-ctl reconfigure
Reconfiguring GitLab

Настройка брандмауэра для SSL-соединений

Теперь, когда вы настроили GitLab, вам нужно настроить правила брандмауэра для разрешения SSL и безопасных соединений с вашим сервером. Упрощенный брандмауэр (UFW) является программой по управлению правилами брандмауэра по умолчанию в Ubuntu.

Если вы поместили свой сервер за брандмауэром, вам нужно открыть порт HTTP 80 и порт HTTPS 443 для SSL-соединений.

Выполните следующую команду, чтобы открыть порты OpenSSH, HTTP и HTTPS для вашего сервера GitLab.

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

Теперь выполните следующую команду, чтобы проверить статус вашего брандмауэра.

sudo ufw status 
Checking the status of your firewall

Обеспечение безопасности GitLab через веб-интерфейс

Ваш брандмауэр активен, но это означает ли, что ваш GitLab защищен? Добавление дополнительных слоев защиты никогда не помешает. Поэтому вы дополнительно обеспечите безопасность вашей установки GitLab через веб-интерфейс.

1. Откройте свой любимый веб-браузер и перейдите на ваш сервер GitLab. Например, http://gitlab.example.com, где example.com – ваше полное доменное имя.

CВыберите Chrome или Firefox для доступа к вашему серверу GitLab для лучшей безопасности. Эти веб-браузеры используют собственные протоколы HTTP/HTTPS, которые помогают обеспечивать соблюдение политик безопасности.

Ниже вы можете увидеть страницу входа в GitLab.

Accessing the GitLab Log in screen

2. Затем нажмите на значок замка (вверху слева) рядом с адресной строкой, и вы увидите статус вашего подключения. Эта демонстрация показывает, что Соединение защищено, что указывает на то, что ваше подключение к серверу происходит через HTTPS.

Checking your connection status

Вернитесь в свой терминал и выполните команду cat ниже, чтобы получить свой initial_root_password.

По умолчанию установка GitLab включает в себя автоматически генерируемый первоначальный пароль root.

 cat /etc/gitlab/initial_root_password

Скопируйте и сохраните свой первоначальный пароль root в безопасном месте. Вы будете использовать этот пароль для входа в GitLab (четвертый шаг).

Getting your initial root password

4. Вернитесь в свой веб-браузер, введите root в качестве имени пользователя, и введите свой первоначальный пароль root в качестве пароля. Нажмите на Войти для входа на ваш сервер GitLab.

Logging in to your GitLab server

После входа на ваш сервер GitLab, ваш браузер перенаправит вас на панель управления GitLab, как показано ниже.

Viewing GitLab Dashboard

Добавление SSH-ключа в ваш аккаунт GitLab

Кроме веб-интерфейса, вы также можете получить доступ к GitLab через командную строку безопасным образом. Как? Сначала вам нужно добавить SSH-ключ в ваш аккаунт, чтобы вы могли получить доступ к GitLab, выполнив команду в терминале без необходимости ввода пароля.

1. Запустите команду ssh-keygen, чтобы создать пару ключей SSH, подходящих для использования в соединениях SSH. При запросе нажмите клавишу Enter, чтобы сохранить ключ SSH в расположении по умолчанию (/root/.ssh/id_rsa) и не добавлять пароль.

ssh-keygen
Generating an SSH keypair

2. Запустите команду cat ниже, чтобы отобразить свой открытый ключ на экране, как показано ниже. Скопируйте строку открытого ключа ssh-rsa целиком и сохраните ее в безопасном месте. Позже вы добавите этот открытый ключ в свой GitLab (шаг три).

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

3. Вернитесь на панель инструментов GitLab в вашем браузере, чтобы добавить свой открытый ключ с помощью следующего:

  • Щелкните по меню SSH Keys в левой панели страницы User Settings, чтобы получить доступ к странице SSH Keys.
  • Вставьте открытый ключ, который вы скопировали (шаг два), в поле Key, как показано ниже
  • Укажите предпочтительное имя для ключа в поле Title. Но для этой демонстрации имя установлено как ATAGitHub.
  • Нажмите Add Key, чтобы завершить добавление открытого ключа в вашу учетную запись.
Adding SSH Keys

Отключение публичной регистрации

Для дополнительной безопасности вы можете отключить публичную регистрацию в GitLab. Почему? Функция публичной регистрации в GitLab позволяет любому создавать учетную запись на сервере GitLab. Отключение этой функции позволяет избежать атак перебора на ваш сервер.

1. С панели инструментов GitLab перейдите на Меню —> Администрирование, чтобы получить доступ к панели администратора, затем нажмите Настройки, чтобы перейти на страницу Общие настроек администратора (шаг два).

Viewing the GitLab Admin panel

2. Отключите опцию Разрешить регистрацию в разделе Ограничения регистрации. Это отключит функцию публичной регистрации GitLab.

Disabling GitLab Public Sign-ups

3. Прокрутите вниз и нажмите Сохранить изменения (внизу), чтобы сохранить внесенные изменения в настройки ограничений регистрации.

Saving your changes

4. Наконец, выйдите из своей учетной записи и перейдите на страницу входа в GitLab.

Как видите ниже, ссылка Зарегистрироваться сейчас исчезла.

Verifying if the Register now link is gone

Проверка вашего сервера GitLab

На данный момент вы уже настроили и защитили свой сервер GitLab, и это замечательно! Но как вы узнаете, что ваш сервер GitLab действительно работает? Вы протестируете свой сервер, создав проект GitLab через панель управления GitLab и клонировав проект на свой сервер.

1. На панели инструментов GitLab нажмите на плюс (+) рядом с полем поиска, затем нажмите Новый проект, как показано ниже, чтобы создать новый проект GitLab.

Adding New GitLab Project

2. Затем укажите ваш предпочтительный Название проекта, но для этой демонстрации название проекта установлено как ATA GitLab, а Слаг проекта установлен как (atagitlab).

Нажмите Создать проект, чтобы создать новый проект.

Creating a new project

3. Вернитесь в терминал и выполните следующие команды для настройки вашего глобального имени пользователя (--global user.name) и электронной почты (--global user.email) для Git. Каждое имя пользователя и электронная почта уникальны на глобальном уровне для всех учетных записей на сервере GitLab.

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

4. Теперь выполните команду git clone ниже, чтобы клонировать созданный вами проект GitLab ATA (шаг два) в ваш текущий каталог. Замените yourdomain.com на ваш FQDN.

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

Если все пройдет успешно, вы увидите вывод, аналогичный приведенному ниже. После завершения клонирования у вас будет новый каталог с названием ATA-GitLab.

Cloning the ATA GitLab project

5. Наконец, выполните команду ls для проверки существования каталога ATA-GitLab.

ls

Поскольку вы можете клонировать новый проект GitLab ATA и каталог GitLab ATA существует, вывод ниже подтверждает, что ваш сервер GitLab работает правильно.

Listing new directory ATA-GitLab

Заключение

В этом руководстве вы узнали, как выполнить безопасную установку GitLab на вашу систему Ubuntu Linux. Вы убедились, что ваш сервер GitLab защищен через веб-интерфейс, добавили SSH-ключи в вашу учетную запись GitLab и проверили, работает ли ваш сервер GitLab.

С этим новым знанием, возможно, вам захочется узнать, как настроить автоматизированные системы непрерывной интеграции (CI) с GitLab?

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