プロジェクト

全般

プロフィール

セキュリティ対策について

雑記帳
2025-03-24

2025年度前に下記チェックし対策を実施

1. サーバー・インフラレベルのセキュリティ対策

  1. SSHアクセスの保護
  • パスワード認証を無効化し、公開鍵認証に限定
  • デフォルトのSSHポート(22)を変更
  • Fail2Banの導入(SSHブルートフォース攻撃対策)
  • AWS LightsailのファイアウォールでIP制限(管理用端末のIPのみ許可)
  1. OS・ミドルウェアのアップデート
  • 定期的なapt update && apt upgradeの実行
  • 自動アップデートの設定 (unattended-upgrades の導入を検討)
  • Bitnami Redmineを使用しているなら、公式のアップデート手順を確認
  1. 不要なサービスの無効化
  • デフォルトで動作している不要なサービスを停止(systemctl list-units --type=serviceで確認)
  • 外部に公開する必要のないポートは閉じる(Lightsailのファイアウォールとufwで制御)
  1. バックアップの設定
  • 定期的なスナップショットの取得(Lightsailのスナップショット機能)
  • Redmineのデータベース(MySQL)を定期的にダンプ
mysqldump -u redmine -p redmine_production > /backup/redmine_backup.sql
  • バックアップファイルを外部ストレージ(AWS S3など)へ定期的に転送

2. Redmineアプリケーションレベルのセキュリティ対策

  1. Webアクセスの保護
  • HTTPSの強制 (Let's Encryptで無料SSL証明書を設定)
  • 不要なHTTPメソッド(PUT, DELETEなど)の無効化
  • Clickjacking対策 (X-Frame-Options: SAMEORIGIN を設定)
  • CSP (Content Security Policy)の設定(XSS対策)
  1. Redmineの設定
  • 管理者ユーザーのデフォルトパスワード変更
  • 不要なプラグインの削除
  • 管理画面のアクセス制限
  • ログイン試行回数の制限 (max_invalid_login_attempts の設定)
  1. RedmineのDBセキュリティ
  • データベースユーザーの権限を最小限にする
  • データベースのリモートアクセスを無効化 (bind-address = 127.0.0.1 in my.cnf)
  • 強固なDBパスワードを設定 (openssl rand -base64 32 などで生成)

ネットワーク・外部攻撃対策

  1. DDoS・不正アクセス対策
  • AWS Lightsailのファイアウォールで必要なポートのみ開放
  • AWS WAF(Web Application Firewall)の導入
  • Fail2BanでRedmineのログイン試行回数制限を強化
  • リバースプロキシ (Nginx) の導入とRate Limitingの設定
  1. ログ監視・異常検知
  • Redmineのログを監視 (tail -f /opt/bitnami/redmine/log/production.log)
  • Linuxのシステムログ (/var/log/auth.log, /var/log/syslog) の定期確認
  • AWS CloudWatch Logsを利用した監視
  • ファイル改ざん検知ツール(Tripwire, AIDE)の導入

4. その他のセキュリティ対策

  1. ユーザーアカウント・認証強化
  • 多要素認証(MFA)を導入
  • セッションの有効期限を短く設定
  • Redmineの管理者アカウントを複雑なパスワードに変更

まとめ

  • まずはSSH・Webアクセス・DBの基本的なセキュリティ対策を実施
  • AWS LightsailのファイアウォールとHTTPS強制設定を最優先
  • 定期的なアップデートとバックアップの実施
  • Redmineプラグインの管理に注意
  • 異常検知・ログ監視を仕組み化
    **「手間を減らしつつ、安全に運用する」**というバランスを考えるなら、
    まずは 「SSHの公開鍵認証化」「HTTPSの強制」「Redmineの設定見直し」 から始めるのが良い。

ファイル