LinuxサーバーのSSHセキュリティ設定ベストプラクティス
SSHはサーバー管理において欠かせないプロトコルですが、設定が不十分だと 不正アクセスの対象になりやすい箇所でもあります。 本記事ではSSHのセキュリティを高めるための設定を解説します。
公開鍵認証を使う
パスワード認証は辞書攻撃に弱いため、公開鍵認証に切り替えることを強く推奨します。
# 鍵ペアの生成
ssh-keygen -t ed25519 -C "your_email@example.com"
# サーバーに公開鍵を登録
ssh-copy-id user@server_ip
/etc/ssh/sshd_configの設定
# パスワード認証を無効化
PasswordAuthentication no
# rootログインを禁止
PermitRootLogin no
# デフォルトポートを変更(例: 2222)
Port 2222
# 接続試行回数を制限
MaxAuthTries 3
設定反映と確認
sudo systemctl reload sshd
sudo sshd -t # 設定ファイルの構文チェック
fail2banの導入
fail2banは指定回数ログイン失敗したIPアドレスを自動的にブロックするツールです。 ブルートフォース攻撃への対策として有効です。
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
ファイアウォール設定
UFWを使ってSSHポートへのアクセスを許可したうえで、その他の不要なポートを閉じます。
sudo ufw allow 2222/tcp
sudo ufw enable
sudo ufw status
まとめ
公開鍵認証の有効化、rootログインの禁止、fail2banの導入の3点だけで
SSHのセキュリティは大幅に向上します。定期的に auth.log を確認して
不審なアクセスがないか監視する習慣も持ちましょう。