Raspberry Pi Trixie Webサーバー用 セキュリティ設定

Raspberry Pi セットアップ
Raspberry Pi OS Trixie
Webサーバー用 セキュリティ設定
 
Raspberry Pi 「Trixie」をWebサーバーとして、インターネットに公開・運用するに必要な「SSHのセキュリティ強化」 と「ファイアウォールの設定」を行う。
 
SSHのセキュリティ強化
 
以下、Webサーバー用「セキュリティ設定」の手順を記録。
 
 

 

スポンサー リンク

 

 
 
 
 
以下の作業は、「パスワード認証」のSSH接続で行うが、全ての作業がうまくゆくまでこの接続を閉じないことが肝要。
 
 
1. SSHのセキュリティ強化
 
🔹 ssh設定ファイルのバックアップ。
 sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
 
🔹 ssh設定ファイルの編集。
 sudo nano /etc/ssh/sshd_config
 
ssh設定ファイルのバックアップと編集
 
編集内容。
14行目:Port 22 → nnnnn ← # ポート番号をデフォルト22から変更
32行目:LoginGraceTime 20 ← # クライアントが接続してから認証を完了するまでの制限時間 秒
33行目:PermitRootLogin no ← # root でのログインを禁止
35行目:MaxAuthTries 3 ← # 認証試行回数の上限を「3回」に設定
38行目:PubkeyAuthentication yes ← # 公開鍵認証を有効にする
41行目:AuthorizedKeysFile %h/.ssh/authorized_keys ← # 公開鍵の場所を指定する
57行目:PasswordAuthentication no ← # パスワード認証を無効化(鍵認証のみにする)
92行目:X11Forwarding no ← # リモートサーバー上のGUIアプリケーション画面を、ローカルPCへ転送(表示)する機能(X11転送)を無効化

- - - - - 最下行に下記を追記
125行目:AllowUsers xxxxx  ← # 特定ユーザーのみ許可
 
ssh設定ファイルの編集
ssh設定ファイルの編集
 
🔹 sshサーバを再起動する。
 sudo systemctl restart ssh
 
sshサーバを再起動する
 
 
 
2. SSH接続の公開鍵の配置
 
パスワード認証のままだと毎回パスワード入力を求められるが、SSH公開鍵認証を設定すれば、パスワードなしでログインできるようになる。
 
公開鍵の保存場所。
 • id_rsa (秘密鍵:PCに保存)
 • id_rsa.pub (公開鍵:ラズパイへ転送)
 
🔹 ラズパイに【id_rsa.pub】を作成:
ユーザ名のフォルダに、「id_rsa.pub」ファイルを作成し、元の【id_rsa.pub】の内容を貼り付ける。
 sudo nano /home/xxxxx/id_rsa.pub
 
ユーザ名のフォルダに、「id_rsa.pub」ファイルを作成し、元の【id_rsa.pub】の内容を貼り付ける
 
🔹 /.sshディレクトリーに公開鍵を配置する。
 mkdir -p ~/.ssh
 cat id_id_rsa.pub >> ~/.ssh/authorized_keys
 chmod 700 ~/.ssh
 chmod 600 ~/.ssh/authorized_keys
 rm id_rsa.pub.pub
 
/.sshディレクトリーに公開鍵を配置する
 
🔹 SSH サービスを再起動する。
sudo systemctl restart ssh
 
sshサーバを再起動する
 
📌 ここで、SSHを公開鍵でログインして、接続できるか確認する。
 
 
 
3. ファイヤーウォールの設定
 
🔹 UFW(Uncomplicated Firewall):ファイアウォール管理ツールの導入。
 sudo apt install ufw -y
 
ファイアウォール管理ツールの導入
 
🔹 外部からの接続を全て拒否(incoming)。
 sudo ufw default deny incoming
 
🔹 内部からの通信は全て許可(outgoing)。
 sudo ufw default allow outgoing
 
🔹 必要なポートのみ開放。
 sudo ufw allow 51158/tcp # SSH(変更後のポート番号)
 sudo ufw allow 80/tcp # HTTP
 sudo ufw allow 443/tcp # HTTPS
 
🔹 ルールを適用してファイアウォールを有効化。
 sudo ufw enable
 
🔹 状態を表示(ポリシー含む)。
 sudo ufw status verbose
 
ファイヤーウォールの設定
 
🔹 UFWで IPv6 を無効にする。
 sudo nano /etc/default/ufw
 
🔹 7行目を IPV6=no に変更する。
 
7行目を IPV6=no に変更する
 
🔹 一時的に無効化。
 sudo ufw disable
 
🔹 ルールを適用してファイアウォールを有効化。
 sudo ufw enable
 
🔹 状態を再確認。
 sudo ufw status verbose
 
UFWで IPv6 を無効にする
 
 
 
4. 不正アクセス対策「Fail2ban」について
 
🛡️ fail2ban とは?
ログを監視して、怪しいIPを自動でBAN(遮断)する仕組みで、
 • ログ(nginx / ssh / mail など)を監視
 • 一定回数以上の異常アクセスを検知
 • IPアドレスをファイアウォールでブロック
という流れで動作し、SSH やウェブへのブルートフォース攻撃を自動的にブロックしてくれる。
 
🧰 「Fail2ban」の導入には、nginx の設定と連携させることが必要。
 
 
以上。
(2026.03.26)
 

 

スポンサー リンク

 

             

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください