お使いの 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 のカスタマイズはお勧めしません。
デフォルトのファイアウォールルールの表示
-
お使いの 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)