こんにちは!眠い目を擦りながら、この記事を書いてます!今も引き続き自作Webサーバを公開するためにセキュリティを強固にする活動をしています。また、その備忘録を書こうと思います。
今回やりたいこと
Webサーバを外部からアクセスできるようにするため、武装地帯と非武装地帯に分けたいと思います。今回公開するWebサーバは非武装地帯、その他のアクセスして欲しくないものは武装地帯に置きます。
そのために、まずはDMZで非武装地帯にWebサーバを置く設定します。できたら、他のセキュリティを強固にする設定をします。
環境
- raspberry pi 5
- 楽天ひかり
- BE9300 Tri-Band Wi-Fi 7 Router
TPlinkにDMZの設定をする
自分の家で使用しているルータはTPlinkなので、今回はこれで説明します。まず、TPlinkの管理ページへ行きます。TPlinkはhttp://192.168.0.1 です。
ログインすることができたら、上部の大まかなメニューの詳細設定を選択して、左側のメニューの「NAT転送」→「DMZ」を開き、公開したいPCのIPアドレスを入力して保存すると反映されるはずです。
SSHを22じゃなくて別のポート番号に設定する
WebサーバをいじるのにやっぱSSH使用したいけど、セキュリティ的に少し不安なので、SSH接続するポート番号を変更したいと思います。
まず、sshのデフォルトである22を拒否設定にします。
sudo ufw deny 22
次に、テキトーなポート番号を22の代わりに設定します。
sudo nano /etc/ssh/sshd_config
ここに
Port 49222
を追加で記述します。
そうしたら、このポート番号を許可します。
sudo ufw allow 49222/tcp
sshをリスタートします。
sudo systemctl restart ssh
ここまで設定したら、実際に外部のPCからssh接続をします。
22だとポート番号を打たなくても接続できますが、変更した場合そのポート番号も打つ必要があります。
ssh -p 49222 yourusername@192.168.0.20
何度もSSH試行した輩を爆破する設定をする
ここまでしたら大丈夫かと思いますが、ブルートフォース攻撃を防ぐため、何回のSSH攻撃を試行したIPアドレスに対して破壊するソフトをインストールします。
sudo apt install fail2ban
これは入れとくだけで、あとは放置してOK
今日はここまで!ねむい!寝る!