Skip to main content

組み込みファイアウォールのルール設定

既定のファイアウォール規則を表示し、 お使いの GitHub Enterprise Server インスタンスの規則をカスタマイズできます。

お使いの GitHub Enterprise Server インスタンスのファイアウォールについて

GitHub Enterprise Server は、仮想アプライアンス上の Ubuntu の未コンパイルファイアウォール (UFW) を使用します。 詳細については、Ubuntu ドキュメントの「Firewall」(ファイアウォール) を参照してください。 GitHub Enterprise Server は、許可されたサービスのファイアウォール許可リストをリリースごとに自動的に更新します。

GitHub Enterprise Serverをインストールすると、接続を受け入れるために必要なすべてのネットワーク ポートが自動的に開かれます。 すべての不必要なポートは自動的に deny に構成され、既定の送信ポリシーは allow に構成されます。 すべての新しい接続について、ステートフルな追跡が有効になります。これらは、通常、SYN ビットがセットされているネットワーク パケットです。 詳しくは、「ネットワーク ポート」をご覧ください。

UFW ファイアウォールは、 GitHub Enterprise Server が正常に動作するために必要な他のいくつかのポートも開きます。 UFW のルール セットについて詳しくは、UFW の README をご覧ください。

トラブルシューティングの問題が複雑になることがあるため、UFW のカスタマイズはお勧めしません。

デフォルトのファイアウォールルールの表示

  1. お使いの GitHub Enterprise Server インスタンス に SSH で接続します。 インスタンスが複数のノードで構成されている場合は (高可用性や geo レプリケーションが構成されている場合など)、プライマリ ノードに SSH 接続します。 クラスターを使用する場合は、任意のノードに SSH 接続できます。 HOSTNAME をインスタンスのホスト名、またはノードのホスト名または IP アドレスに置き換えます。 詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. 既定のファイアウォール ルールを表示するには、sudo ufw status コマンドを使います。 次のような出力が表示されます。

    $ sudo ufw status
    > Status: active
    > To                         Action      From
    > --                         ------      ----
    > ghe-1194                   ALLOW       Anywhere
    > ghe-122                    ALLOW       Anywhere
    > ghe-161                    ALLOW       Anywhere
    > ghe-22                     ALLOW       Anywhere
    > ghe-25                     ALLOW       Anywhere
    > ghe-443                    ALLOW       Anywhere
    > ghe-80                     ALLOW       Anywhere
    > ghe-8080                   ALLOW       Anywhere
    > ghe-8443                   ALLOW       Anywhere
    > ghe-9418                   ALLOW       Anywhere
    > ghe-1194 (v6)              ALLOW       Anywhere (v6)
    > ghe-122 (v6)               ALLOW       Anywhere (v6)
    > ghe-161 (v6)               ALLOW       Anywhere (v6)
    > ghe-22 (v6)                ALLOW       Anywhere (v6)
    > ghe-25 (v6)                ALLOW       Anywhere (v6)
    > ghe-443 (v6)               ALLOW       Anywhere (v6)
    > ghe-80 (v6)                ALLOW       Anywhere (v6)
    > ghe-8080 (v6)              ALLOW       Anywhere (v6)
    > ghe-8443 (v6)              ALLOW       Anywhere (v6)
    > ghe-9418 (v6)              ALLOW       Anywhere (v6)
    

カスタムのファイアウォールルールの追加

警告

既知の動作状態にリセットすることが必要になったときのため、カスタム ファイアウォール ルールを追加する前に、現在のルールをバックアップしてください。 サーバーからロックアウトされている場合は、 GitHub Enterprise サポート にアクセスし、元のファイアウォール規則を再構成するためにお問い合わせください。 元のファイアウォールルールを復元すると、サーバーでダウンタイムが発生します。

  1. カスタムのファイアウォールルールを設定する。

  2. status numbered コマンドを使って、新しい各ルールの状態を確認します。

    sudo ufw status numbered
    
  3. カスタム ファイアウォール ルールをバックアップするには、cp コマンドを使ってルールを新しいファイルに移動します。

    sudo cp -r /etc/ufw ~/ufw.backup
    

警告

アップグレード パッケージを使ってサーバーをアップグレードする場合は、アップグレードをインストールする前に、ファイアウォール規則をリモートの場所にバックアップする必要があります。 アップグレード パッケージを使うと、ルート パーティションが置き換えられ、作成されたカスタム ファイルはすべて失われます。 このようなことは、ホットパッチを使ってサーバーをアップグレードする場合は起こりません。

お使いの GitHub Enterprise Server インスタンスアップグレードした後、カスタム ファイアウォール規則を再適用する必要があります。 ファイアウォールのカスタムルールを再適用するためのスクリプトを作成することをお勧めします。

デフォルトのファイアウォールルールのリストア

ファイアウォールルールの変更後に何か問題が生じたなら、オリジナルのバックアップからルールをリセットできます。

警告

ファイアウォールに変更を加える前に元のルールをバックアップしなかった場合は、 GitHub Enterprise サポート にアクセスし、詳細についてはお問い合わせください。

アップグレード前に元の規則をリモートの場所にバックアップした場合は、復元する前に規則をサーバーに転送し直す必要があります。

  1. お使いの GitHub Enterprise Server インスタンス に SSH で接続します。 インスタンスが複数のノードで構成されている場合は (高可用性や geo レプリケーションが構成されている場合など)、プライマリ ノードに SSH 接続します。 クラスターを使用する場合は、任意のノードに SSH 接続できます。 HOSTNAME をインスタンスのホスト名、またはノードのホスト名または IP アドレスに置き換えます。 詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. 前にバックアップしたルールを復元するには、cp コマンドでそれらをファイアウォールにコピーして戻します。

    sudo cp -f ~/ufw.backup/*rules /etc/ufw
    
  3. systemctl コマンドを使ってファイアウォールを再起動します。

    sudo systemctl restart ufw
    
  4. ufw status コマンドで、ルールが既定の状態に戻っていることを確認します。

    $ sudo ufw status
    > Status: active
    > To                         Action      From
    > --                         ------      ----
    > ghe-1194                   ALLOW       Anywhere
    > ghe-122                    ALLOW       Anywhere
    > ghe-161                    ALLOW       Anywhere
    > ghe-22                     ALLOW       Anywhere
    > ghe-25                     ALLOW       Anywhere
    > ghe-443                    ALLOW       Anywhere
    > ghe-80                     ALLOW       Anywhere
    > ghe-8080                   ALLOW       Anywhere
    > ghe-8443                   ALLOW       Anywhere
    > ghe-9418                   ALLOW       Anywhere
    > ghe-1194 (v6)              ALLOW       Anywhere (v6)
    > ghe-122 (v6)               ALLOW       Anywhere (v6)
    > ghe-161 (v6)               ALLOW       Anywhere (v6)
    > ghe-22 (v6)                ALLOW       Anywhere (v6)
    > ghe-25 (v6)                ALLOW       Anywhere (v6)
    > ghe-443 (v6)               ALLOW       Anywhere (v6)
    > ghe-80 (v6)                ALLOW       Anywhere (v6)
    > ghe-8080 (v6)              ALLOW       Anywhere (v6)
    > ghe-8443 (v6)              ALLOW       Anywhere (v6)
    > ghe-9418 (v6)              ALLOW       Anywhere (v6)