Вы решили, что вам нужно начать использовать 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
, чтобы получить информацию о доступных пакетах.

2. Затем выполните команду apt install
ниже, чтобы скачать (curl
) и установить
следующие необходимые зависимости для установки GitLab:
пакет openssh-server
– Содержит демон сервера OpenSSH и связанные инструменты, такие как управление ключами хоста и сервер, для предоставления удаленного входа для пользователей.ca-certificates
пакет – Содержит список сертификатов CA. Этот пакет предоставляет необходимые файлы для обеспечения поддержки HTTPS на вашем сервере.

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

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

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

Установка займет некоторое время, но когда установка будет завершена, вы увидите следующий вывод. Этот вывод подтверждает, что теперь у вас успешно установлен 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.

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

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

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

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

Обеспечение безопасности GitLab через веб-интерфейс
Ваш брандмауэр активен, но это означает ли, что ваш GitLab защищен? Добавление дополнительных слоев защиты никогда не помешает. Поэтому вы дополнительно обеспечите безопасность вашей установки GitLab через веб-интерфейс.
1. Откройте свой любимый веб-браузер и перейдите на ваш сервер GitLab. Например, http://gitlab.example.com, где example.com – ваше полное доменное имя.
CВыберите Chrome или Firefox для доступа к вашему серверу GitLab для лучшей безопасности. Эти веб-браузеры используют собственные протоколы HTTP/HTTPS, которые помогают обеспечивать соблюдение политик безопасности.
Ниже вы можете увидеть страницу входа в GitLab.

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

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

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

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

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

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

3. Вернитесь на панель инструментов GitLab в вашем браузере, чтобы добавить свой открытый ключ с помощью следующего:
- Щелкните по меню SSH Keys в левой панели страницы User Settings, чтобы получить доступ к странице SSH Keys.
- Вставьте открытый ключ, который вы скопировали (шаг два), в поле Key, как показано ниже
- Укажите предпочтительное имя для ключа в поле Title. Но для этой демонстрации имя установлено как ATA–GitHub.
- Нажмите Add Key, чтобы завершить добавление открытого ключа в вашу учетную запись.

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

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

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

4. Наконец, выйдите из своей учетной записи и перейдите на страницу входа в GitLab.
Как видите ниже, ссылка Зарегистрироваться сейчас исчезла.

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

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

3. Вернитесь в терминал и выполните следующие команды для настройки вашего глобального имени пользователя (--global user.name
) и электронной почты (--global user.email
) для Git. Каждое имя пользователя и электронная почта уникальны на глобальном уровне для всех учетных записей на сервере GitLab.
4. Теперь выполните команду git clone
ниже, чтобы клонировать созданный вами проект GitLab ATA (шаг два) в ваш текущий каталог. Замените yourdomain.com
на ваш FQDN.
Если все пройдет успешно, вы увидите вывод, аналогичный приведенному ниже. После завершения клонирования у вас будет новый каталог с названием ATA-GitLab.

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

Заключение
В этом руководстве вы узнали, как выполнить безопасную установку GitLab на вашу систему Ubuntu Linux. Вы убедились, что ваш сервер GitLab защищен через веб-интерфейс, добавили SSH-ключи в вашу учетную запись GitLab и проверили, работает ли ваш сервер GitLab.
С этим новым знанием, возможно, вам захочется узнать, как настроить автоматизированные системы непрерывной интеграции (CI) с GitLab?