マルチゲームサーバの構築を,自宅でする(3/4 ファイアウォールの設定)

技術
この記事は約4分で読めます。

この記事は 2024 年 04 月 20 日に Qiita に投稿された記事を元に作成しています.
Qiita 側の更新は停止しています.

  1. Debian サーバのセットアップ
  2. ターミナルと外部接続の設定
  3. ファイアウォールの設定 (← この記事の内容)
  4. ゲームサーバの構築

限定的とは言え外部に公開するサーバマシンを構築するため,ファイアウォールの設定を行います.

注意
必ずサーバマシンの実機上で設定を行ってください.
RDP 接続や SSH 接続は,ファイアウォールにより遮断される可能性があります.

初期インストール

ファイアウォールルールの設定には ufw を使用します.
同時に,GUI 上での設定を行うために gufw をインストールします.

$ sudo apt install -y ufw gufw

IPv6 を無効化します.

$ sudo vim /etc/default/ufw
IPV6=no

サービスを有効化し,ファイアウォールを起動します.

$ sudo systemctl enable --now ufw
$ sudo ufw enable

ルール設定

デフォルトポリシー

デフォルトポリシーを設定します.
ファイアウォールの原則は,

  • 全ての受信を拒否
  • 全ての送信を許可

とします.

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

設定を反映します.

$ sudo ufw reload

接続確認
クライアントからの SSH 接続が遮断されることを確認します.

ルール設定

今回設定するネットワークポリシーは,下記の通りです.

ネットワークは 192.168.11.0,サブネットマスクは 255.255.255.0 で表記しています.

  • RDP 接続は特定クライアント({{クライアント IP アドレス}})のみ許可
  • SSH 接続は同一ネットワーク内(192.168.11.0/24)のみ許可
    • その他のクライアントからの接続は制限付き
  • FTP 接続は特定クライアント({{クライアント IP アドレス}})のみ許可
  • その他の接続ポートは同一ネットワーク内のみ許可
  • 特定の外部公開サーバのポートは許可

gufw を起動し,それぞれのルールを設定します.
例えば,RDP 接続のファイアウォールルールは下記の通りです.

gufw

From 側の「ポート」,To 側の「IP」は空欄で設定します.
gufw で設定したルールは,ufw に反映されます.

!:: warning
注意
apt でインストールした gufw 22.04.0-1 では,ufw の再起動で「名前」が消失します.
その後 gufw 上で編集ができなくなるため,変更が必要な場合は ufw で直接設定してください.

Status toggle button wipes out gufw rules from the profile, and reloads them from ufw · Issue #54 · costales/gufw
This is a baffling behavior: turning the firewall off with the toggle button next to Status wipes out all gufw rules fro...

!::

SSH 接続のファイアウォールルールは下記の通りです.
基本的には上記 RDP 接続のルールと同様で,下記の項目を変更します.

  • SSH (LAN)
    • From の「IP」 : 192.168.11.0/24
    • To の「ポート」 : {{SSH ポート}}
  • SSH (Anyware)
    • ポリシー : Limit
    • ログ : すべてログ出力する
    • From の「IP」 : 空欄
    • To の「ポート」 : {{SSH ポート}}

FTP 接続のファイアウォールルールは下記の通りです.

  • FTP
    • From の「IP」 : {{クライアント IP アドレス}}
    • To の「ポート」 : {{FTP ポート}}
  • PASV (TCP)
    • プロトコル : TCP
    • From の「IP」 : 192.168.11.0/24
    • From の「ポート」 : {{最小 PASV ポート}}:{{最大 PASV ポート}}
  • PASV (UDP)
    • プロトコル : UDP
    • From の「IP」 : 192.168.11.0/24
    • From の「ポート」 : {{最小 PASV ポート}}:{{最大 PASV ポート}}

設定を反映します.

$ sudo ufw reload

接続確認
クライアントからサーバマシンへの SSH 接続ができることを確認してください.


ホストするゲームサーバごとのファイアウォールルールは,後述の記事で設定します.

以上で,ファイアウォールの設定が完了しました.
次回はゲームサーバの構築を行います.

コメント