業務用エアコン関連の技術情報、エラーコード、環境問題対策に関する別サイト「エアコンの安全な修理・適切なフロン回収」

Debian12.14 : SSH , UFW(ファイアウォール)

1. SSHサービスのセキュリティ設定

SSHサービスはデフォルトでrootユーザーのログインを許可しています。rootユーザーはユーザー名が既に判明しているためパスワードが判明すると、管理者権限でサーバーへログイン出来るため、これを拒否する設定を行います

SSHサービスの設定ファイル変更

SSHサービスの設定を変更するために設定ファイルを変更します。SSHサービスの設定ファイは"/etc/ssh/sshd_config"になります。
今回はデフォルトのSSHポート22から2244に変更して進めます。

# vi /etc/ssh/sshd_config
14行目 : コメントを解除しssh接続ポートを2244に変更
Port 2244

16行目 : コメント解除
ListenAddress 0.0.0.0

33行目 : コメント解除(rootについてはパスワード認証を無効にする)
PermitRootLogin prohibit-password

SSHサービスの再起動

# systemctl restart sshd

2. ファイヤーウォールの設定

Debianでは「ufw」というソフトウェアを使ってファイアウォールを設定することが多いので、ufwを利用したファイアウォール設定を行います。
ufwはOSの導入時にはインストールされていませんので、設定を行う前にufwパッケージのインストールを行います。インストール後に最低限のフィルタ設定を行う手順を紹介します。
ufwで設定するフィルタルール
• サーバーに転送されるパケットは全て拒否
• サーバーから外部へ送信されるパケットは全て許可
• 最初に許可するポートはSSH用のポート
• サーバーに入ってくるパケットを制限

2.1 ufwパッケージのインストール

①インストール

# apt install -y ufw

➁ufwの動作状況を確認

# systemctl status ufw
○ ufw.service - Uncomplicated firewall                                                                       
     Loaded: loaded (/lib/systemd/system/ufw.service; enabled; preset: enabled)
     Active: inactive (dead)
       Docs: man:ufw(8)

「Active: inactive (dead)」と表示され、ufwサービスが停止してます

➂ufwを有効にする

# systemctl enable ufw
Synchronizing state of ufw.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable ufw

# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

④ufwを起動する

# systemctl start ufw

# systemctl status ufw
● ufw.service - Uncomplicated firewall
     Loaded: loaded (/lib/systemd/system/ufw.service; enabled; preset: enabled)
     Active: active (exited) since Wed 2026-05-27 12:43:03 JST; 6s ago
       Docs: man:ufw(8)
    Process: 1551 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SUCCESS)
   Main PID: 1551 (code=exited, status=0/SUCCESS)
        CPU: 5ms

May 27 12:43:03 Lepard systemd[1]: Starting ufw.service - Uncomplicated firewall...
May 27 12:43:03 Lepard ufw-init[1555]: Firewall already started, use 'force-reload'
May 27 12:43:03 Lepard systemd[1]: Finished ufw.service - Uncomplicated firewall.

ufwが起動していることがわかります(active (exited))

2.2 基本的なファイアウォールルールの設定

ufwを有効にするとデフォルトのファイアウォールルールが適用されます。このまま有効にするとサーバーと通信ができなくなる可能性がありますので、ufwを有効にする前に基本的なルールを設定しておきます。

2.2.1 受信パケット デフォルトルールの設定

まず受信パケットに対するルールを設定します。受信パケットは特定の通信以外、全てを拒否する形が一般的なルールになります。全ての受信パケットを基本的に拒否するように"ufw default deny incoming"を実行します。

# ufw default deny incoming
Default incoming policy changed to 'deny'
(be sure to update your rules accordingly)

2.2.2 送信パケット デフォルトルールの設定

送信パケットは全てを許可する形が一般的なルールになります。送信パケットを基本的に許可するように"ufw default allow outgoing"を実行します。

# ufw default allow outgoing
Default outgoing policy changed to 'allow'
(be sure to update your rules accordingly)

2.3 SSHポートの許可

ufwの自動起動を有効にします。が、SSHリモート接続できなくなる可能性がありますので、先にSSH接続の許可を設定します。デフォルトのSSHポートは22です。次のコマンドで許可設定

# ufw allow ssh
Rule added
Rule added (v6)
# ufw reload
Firewall reloaded

独自に2244ポート(例)に設定している場合は

# ufw allow 2244/tcp
Rule added
Rule added (v6)
# ufw reload
Firewall reloaded

2.4 ufwの設定確認

有効後にファイアウォールに設定したルールの確認を行います。"ufw status verbose"を実行します。

# ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
2244/tcp                   ALLOW IN    Anywhere
22/tcp (v6)                ALLOW IN    Anywhere (v6)
2244/tcp (v6)              ALLOW IN    Anywhere (v6)

2.5 web等その他サービスの許可

ポート番号を指定して接続を許可する方法と、アプリケーションを指定しての設定も行えます。
以下のコマンドでアプリケーションの一覧が見れます。

# vi /etc/services

たとえばWEBサービスのhttpとhttpsを有効にするには

# ufw allow http
Rule added
Rule added (v6)
# ufw allow https
Rule added
Rule added (v6)
# ufw reload

2.6 ipv6のufwを無効

# vi /etc/default/ufw
7行目 書き換える
IPV6=yes → IPV6=no 書き換える

すべての作業の後ファイアウオールを再起動

# systemctl restart ufw