就職活動をきっかけに、自分の人物像や学習の過程、取り組みをきちんと伝えたいと思い、このサイトを作成しました。このページでは、当サイトでの技術的な取り組みについて公開していきます。
1. 公開基盤(ドメイン / DNS)
- 独自ドメインを取得し、Lightsailの静的IPに向けてDNSを設定しました。
- Aレコード(@ → 固定IP)、CNAME(www → ドメイン) を設定し、第三者がURLで安定してアクセスできる状態にしました。
2. HTTPS化(SSL)
- Bitnami環境の
bncert-toolを使い、Let’s EncryptでSSL証明書を発行して HTTPS化しました。 http → https、www → non-wwwのリダイレクトも設定し、正規URLを統一しました。
3. セキュリティ対策(FW / fail2ban)
- Lightsail側のFWとサーバ側(UFW)の両方で、公開ポートを 22/80/443 のみに制限しました。
- さらにSSHの不正ログイン対策として fail2ban(sshd jail) を導入し、一定回数以上失敗したIPを自動的にBANするようにしました。
苦労したこと:fail2banが動かない
導入時に fail2ban-client が接続できず、ログを確認したところ、sshd jail が参照するログファイルが環境と一致していないことが原因でした。
また、ソケットの参照先が /var/run と /run でズレており、クライアントが正しいソケットに接続できない問題もありました。
解決
sshdが監視するログの場所を環境に合わせて設定(認証ログを参照)- ソケットパスのズレを解消(
/runと/var/runの整合性を取る) - 最終的に
fail2ban-client pingで疎通を確認し、Jail list: sshdが表示される状態まで復旧
学び
「ツールを入れるだけ」ではなく、OS/ディストリビューションやログ管理方式の違いで設定が噛み合わないことがあると学びました。
エラー文→ログ確認→原因特定→修正→再起動→動作確認、の流れを回せたのは大きな収穫でした。