Tech Blog

プログラミングと技術の情報サイト

LinuxサーバーのSSHセキュリティ設定ベストプラクティス

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 を確認して 不審なアクセスがないか監視する習慣も持ちましょう。

← 記事一覧に戻る