GNU/Linux >> Linux の 問題 >  >> Linux

Gitlab を安全にインストールする方法 (チュートリアル)

プロジェクト管理に GitLab の使用を開始する必要があると判断しましたが、GitLab を安全にインストールする方法がわかりませんか? GitLab のインストールは複雑なプロセスであるだけでなく、正しく行わないとデータが危険にさらされる可能性があります。しかし、心配しないでください。あなたは正しい場所に来ました!

読者ではありませんか?この関連するビデオ チュートリアルをご覧ください。 ビデオが表示されない場合広告ブロッカーが無効になっていることを確認してください。

このチュートリアルでは、GitLab を安全にインストールするプロセス全体を学習するため、SSL 暗号化をセットアップし、最適なパフォーマンスを得るために GitLab を構成できます。

興味深いですね?すぐに飛び込め!

前提条件

このチュートリアルは実践的なデモンストレーションです。フォローしたい場合は、次のものが揃っていることを確認してください:

  • ルート アクセス権のある Linux サーバー – このデモでは Ubuntu 20.04 LTS を使用していますが、どの Linux ディストリビューションでも動作します。
  • サーバーを指す完全修飾ドメイン名 (FQDN)。
  • Let's Encrypt をサーバーにインストールしました。
  • 最小要件 – 8 GB の RAM、50~100 Mb/秒の帯域幅、2 GHz のプロセッサ、20 GB のディスク容量

GitLab Community Edition のインストール

FQDN とサーバーの準備が整ったので、GitLab をインストールします。 Omnibus パッケージの使用やソースからのコンパイルなど、GitLab をインストールする方法はいくつかあります。ただし、このチュートリアルでは、開発者の GitLab リポジトリを使用して GitLab をインストールすることに焦点を当てています。

GitLab には 2 つのディストリビューションがあります:

  • GitLab コミュニティ エディション (CE) – GitLab のオープンソースでコミュニティがサポートするバージョンを好むユーザー向け。
  • GitLab エンタープライズ エディション (EE) – GitLab Enterprise Edition が提供する追加機能を必要とするユーザー向け。

ただし、このデモでは Community Edition を使用して、開発者環境でアプリケーションをテストします。

1. 端末を開いて apt update を実行します 以下のコマンドを実行して、システムがすべての最新のソフトウェア アップデートにアクセスできるようにします。

apt update コマンドは、apt で使用されるパッケージ インデックス ファイルを更新します。 利用可能なパッケージに関する情報を取得するユーティリティ。

sudo apt update -y

2. 次に、apt install を実行します。 以下のコマンドでダウンロードします (curl ) と install GitLab のインストールに必要な次の依存関係:

  • openssh-server パッケージ – OpenSSH サーバー デーモンと関連ツール (ホスト鍵管理ツールやサーバーなど) が含まれており、ユーザーにリモート ログイン アクセスを提供します。
  • ca-certificates パッケージ – CA 証明書のリストが含まれています。このパッケージは、サーバーで HTTPS サポートを有効にするために必要なファイルを提供します。
sudo apt install curl openssh-server ca-certificates -y

3. curl を実行します 以下のコマンドでダウンロード (curl ) GitLab のインストール スクリプト ( https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce )。このコマンドは、インストール スクリプトをシェル スクリプト (script.deb.sh) として保存します。 ) を実行し、スーパーユーザー (sudo bash) として実行します。 )。

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

一度 curl コマンドが完了すると、次の出力が得られます。

4. apt-cache を実行します 以下のコマンドを実行して、GitLab リポジトリが正常に追加されたことを確認します。

apt-cache policy docker-ce

5. apt update を再実行します。 コマンドを使用して、利用可能なパッケージのリストを更新します。このコマンドは、GitLab をインストールするときに、システムが新しく追加された GitLab リポジトリを使用することを保証します。

sudo apt update -y

6. 最後に、apt install を実行します。 以下のコマンドで GitLab をインストールします (gitlab-ce ) をシステムに追加します。

sudo apt install gitlab-ce -y

インストールにはしばらく時間がかかりますが、インストールが完了すると次の出力が表示されます。この出力は、GitLab がシステムに正常にインストールされたことを示しています。

GitLab インストールの構成

これで GitLab がシステムにインストールされましたが、GitLab を使用する前にいくつかの構成変更を行う必要があります。 GitLab の構成ファイル (/etc/gitlab/gitlab.rb ) には、GitLab サーバーの環境に固有ではない GitLab のグローバル設定が含まれています。

GitLab の構成ファイルを変更して、FQDN ドメイン名を設定し、ドメインへの接続を保護します。

1. /etc/gitlab/gitlab.rb を開きます 設定ファイルをお気に入りのテキスト エディタで開きます。

GitLab 構成ファイルで最も重要なエントリの 1 つは、外部 URL です。 以下に示すように、ディレクティブ。このディレクティブにより、ユーザーは Web ブラウザーを介して GitLab にアクセスできます。

外部 URL を変更する http://gitlab.example.com からのディレクティブの値 https://gitlab.yourdomain.com へ 、ここで yourdomain.com は FQDN ドメイン名です。

2. 次に、Let's Encrypt 統合に移動します セクションを開き、次のようにディレクティブを構成します:

  • letsencrypt['enable'] のコメントを外します 前の # を削除することによるディレクティブ 値を nil から変更します true へ .このディレクティブは、サーバーで HTTPS を自動的に構成するよう GitLab に指示します。
  • letsencrypt['contact_emails'] のコメントを外します 前の # を削除することにより、ディレクティブ 、メールアドレスを値として入力します。 Let’s Encrypt は、SSL 証明書を更新する必要がある場合 (90 日ごと) に、このメール アドレスを使用して連絡します。
  • 変更を保存してエディターを終了します。

3. 最後に、以下のコマンドを reconfigure に対して実行します。 /etc/gitlab/gitlab.rb に変更を適用します 設定ファイルを GitLab に。

sudo gitlab-ctl reconfigure

SSL 接続用にファイアウォールを構成する

GitLab を構成したので、ファイアウォール ルールを構成して、SSL を許可し、サーバーへの接続を保護する必要があります。 Uncomplicited Firewall (UFW) は、Ubuntu でファイアウォール ルールを管理するためのデフォルトのプログラムです。

サーバーをファイアウォールの内側に配置する場合は、HTTP ポート 80 を開く必要があります。 SSL 接続用の HTTPS ポート 443。

次のコマンドを実行して OpenSSH を開きます 、 HTTP 、および HTTPS GitLab サーバーのポート

sudo ufw allow OpenSSH && sudo ufw allow http && sudo ufw allow http

次のコマンドを実行して、ファイアウォールのステータスを確認してください。

sudo ufw status 

ウェブ インターフェース経由で GitLab を保護する

ファイアウォールは稼働していますが、それは GitLab が安全であることを意味しますか?セキュリティのレイヤーを追加することは、決してやり過ぎではありません。そのため、Web インターフェースを介して GitLab のインストールをさらに保護できます。

1. お気に入りの Web ブラウザーを開き、GitLab サーバーに移動します。例:http://gitlab.example.com 、ここで example.com は FQDN ドメイン名です。

セキュリティを強化するために、GitLab サーバーにアクセスするときは、Chrome または Firefox を選択してください。これらの Web ブラウザは独自の HTTP/HTTPS プロトコルを使用しており、セキュリティ ポリシーの適用に役立ちます。

以下に、GitLab のログイン ページが表示されます。

2. 次に、アドレスバーの横にある南京錠アイコン (左上) をクリックすると、接続ステータスが表示されます。このデモは、接続が安全であることを示しています 、サーバーへの接続が HTTPS 経由であることを示します。

端末に戻り、cat を実行します 以下のコマンドで initial_root_password を取得します .

デフォルトでは、GitLab のインストールには、自動生成された初期 root パスワードが付属しています。

 cat /etc/gitlab/initial_root_password

root の初期パスワードをコピーして、安全な場所に保存します。このパスワードを使用して GitLab にログインします (ステップ 4)。

4. Web ブラウザに戻り、root と入力します。 をユーザー名として入力し、パスワードとして初期 root パスワードを入力します。 [サインイン] をクリックします GitLab サーバーにログインします。

GitLab サーバーにログインすると、以下に示すように、ブラウザーが GitLab ダッシュボードにリダイレクトされます。

SSH キーを GitLab アカウントに追加する

Web インターフェイスとは別に、コマンドライン環境を介して安全な方法で GitLab にアクセスすることもできます。どのように?最初にアカウントに SSH キーを追加する必要があります。これにより、パスワードを入力せずに端末でコマンドを実行して GitLab にアクセスできるようになります。

1. ssh-keygen を実行します コマンドを使用して、SSH 接続での使用に適した SSH キー ペアを生成します。プロンプトが表示されたら、Enter キーを押して、SSH キーのデフォルトの保存場所を保持します (/root/.ssh/id_rsa )、パスフレーズを追加しないでください。

ssh-keygen

2. cat を実行します 以下のコマンドを実行して、以下に示すように公開鍵を画面に出力します。 ssh-rsa 公開鍵文字列全体をコピーして、安全な場所に保存します。後でこの公開鍵を GitLab に追加します (ステップ 3)。

 cat ~/.ssh/id_rsa.pub

3. ブラウザーで GitLab ダッシュボードに戻り、以下を使用して公開鍵を追加します。

  • SSH キーをクリックします ユーザー設定の左側のパネルにあるメニュー SSH キーにアクセスするためのページ ページ。
  • コピーした公開鍵 (手順 2) を Key に貼り付けます 以下に示すように、フィールド
  • タイトルにキーの好きな名前を入力してください 分野。ただし、このデモでは、名前は ATA として設定されています –GitHub。
  • [キーを追加] をクリックします アカウントへの公開鍵の追加を完了します。

パブリック サインアップの無効化

セキュリティを強化するために、GitLab でのパブリック サインアップを無効にすることができます。なんで? GitLab のパブリック サインアップ機能により、誰でも GitLab サーバーでアカウントを作成できます。この機能を無効にすると、サーバーへのブルート フォース攻撃を回避できます。

1. GitLab ダッシュボードから、[メニュー] をクリックします。 —> 管理者 管理パネルにアクセスするには、[設定] をクリックします。 管理パネルの一般にアクセスするには 設定ページ (ステップ 2)。

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 サーバー上のすべてのアカウントでグローバルに一意です。

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

4. git clone を実行します。 以下のコマンドを実行して、作成した ATA GitLab プロジェクト (手順 2) を現在のディレクトリに複製します。 yourdomain.com を置き換えます あなたのFQDNで。

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

すべてがうまくいけば、以下のような出力が表示されます。クローン作成が完了すると、ATA-GitLab という名前の新しいディレクトリが作成されます。 .

5. 最後に、ls を実行します。 コマンドを使用して、ATA-GitLab ディレクトリが存在することを確認します。

ls

新しい ATA GitLab プロジェクトを複製でき、ATA GitLab ディレクトリが存在するため、以下の出力で GitLab サーバーが正常に動作していることを確認できます。

結論

このチュートリアルでは、Ubuntu Linux システムで安全な GitLab インストールを実行する方法を学びました。ウェブ インターフェースを介して GitLab サーバーを保護し、GitLab アカウントに SSH キーを追加し、GitLab サーバーが機能するかどうかをテストしました。

この新たな知識を基に、GitLab を使用して自動化された継続的インテグレーション (CI) システムをセットアップする方法を学びたいと思われますか?


Linux
  1. WindowsにDigをインストールする方法

  2. Ubuntu20.04にGitLabをインストールする方法

  3. LocateをFedoraサーバーにインストールする方法

  1. CentOS8にGitlabをインストールする方法

  2. Linuxでfdコマンドをインストールして使用する方法

  3. ubuntu20.04にgitlabをインストールする方法

  1. Debian8にGitlabをインストールする方法

  2. Debian11にGitlabをインストールする方法

  3. Centos7にGitlabをインストールする方法