お使いの 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 のカスタマイズはお勧めしません。
デフォルトのファイアウォールルールの表示
-
お使いの GitHub Enterprise Server インスタンス に SSH で接続します。 インスタンスが複数のノードで構成されている場合は (高可用性や geo レプリケーションが構成されている場合など)、プライマリ ノードに SSH 接続します。 クラスターを使用する場合は、任意のノードに SSH 接続できます。 HOSTNAME をインスタンスのホスト名、またはノードのホスト名または IP アドレスに置き換えます。 詳しくは、「管理シェル (SSH) にアクセスする」を参照してください。
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME
-
既定のファイアウォール ルールを表示するには、
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 サポート にアクセスして、元のファイアウォールルールを再構成する旨をご連絡ください。 元のファイアウォールルールを復元すると、サーバーでダウンタイムが発生します。
-
カスタムのファイアウォールルールを設定する。
-
status numbered
コマンドを使って、新しい各ルールの状態を確認します。sudo ufw status numbered
-
カスタム ファイアウォール ルールをバックアップするには、
cp
コマンドを使ってルールを新しいファイルに移動します。sudo cp -r /etc/ufw ~/ufw.backup
お使いの GitHub Enterprise Server インスタンス をアップグレードした後で、カスタム ファイアウォール ルールを適用し直す必要があります。 ファイアウォールのカスタムルールを再適用するためのスクリプトを作成することをお勧めします。
デフォルトのファイアウォールルールのリストア
ファイアウォールルールの変更後に何か問題が生じたなら、オリジナルのバックアップからルールをリセットできます。
警告: 元のルールをバックアップしないでファイアウォールを変更した場合は、GitHub Enterprise サポート にアクセスしてサポートを求めてください。
-
お使いの GitHub Enterprise Server インスタンス に SSH で接続します。 インスタンスが複数のノードで構成されている場合は (高可用性や geo レプリケーションが構成されている場合など)、プライマリ ノードに SSH 接続します。 クラスターを使用する場合は、任意のノードに SSH 接続できます。 HOSTNAME をインスタンスのホスト名、またはノードのホスト名または IP アドレスに置き換えます。 詳しくは、「管理シェル (SSH) にアクセスする」を参照してください。
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME
-
前にバックアップしたルールを復元するには、
cp
コマンドでそれらをファイアウォールにコピーして戻します。sudo cp -f ~/ufw.backup/*rules /etc/ufw
-
systemctl
コマンドを使ってファイアウォールを再起動します。sudo systemctl restart ufw
-
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)