Skip to main content

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

お使いの GitHub Enterprise Server インスタンス の既定のファイアウォール規則とカスタマイズされたルールを見ることができます。

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

GitHub Enterprise Server は、仮想アプライアンスで Ubuntu の Uncomplicated Firewall (UFW) を使用します。 詳しくは、Ubuntu のドキュメントの「UFW」をご覧ください。 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)
    

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

Warning

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

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

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

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

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

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

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

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

Warning

元のルールをバックアップしないでファイアウォールを変更した場合は、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)