UbuntuでSSHのログインをセキュリティ強化する方法

UbuntuでSSHのログインをセキュリティ強化する方法

SSH(Secure Shell)はリモートサーバーへの安全なアクセスを提供しますが、セキュリティ強化が必要です。本記事では、UbuntuでSSHのログインをより安全にするための方法について説明します。これにより、リモートアクセスを保護し、不正アクセスのリスクを軽減することができます。

SSHの設定ファイルを編集する

SSHの設定ファイルでセキュリティ設定を強化することができます。設定ファイルは /etc/ssh/sshd_config にあります。以下のコマンドで編集します。

sudo nano /etc/ssh/sshd_config

以下の設定を行うことで、セキュリティを強化できます。

PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes

これにより、ルートログインを禁止し、パスワード認証を無効にすることができます。

SSHキー認証の設定

SSHキー認証を使用すると、パスワードよりも安全にログインできます。まず、ローカルマシンでキーを生成します。

ssh-keygen -t rsa -b 4096

次に、公開キーをサーバーにコピーします。

ssh-copy-id user@remote_host

公開キーがサーバーの ~/.ssh/authorized_keys に追加されると、SSHキー認証が使用されるようになります。

ポート番号の変更

デフォルトのポート番号22は攻撃の標的になりやすいです。/etc/ssh/sshd_config ファイルでポート番号を変更することで、セキュリティを向上させることができます。

Port 2222

新しいポート番号に変更したら、SSHサービスを再起動します。

sudo systemctl restart ssh

ファイアウォールの設定

UFW(Uncomplicated Firewall)を使ってSSHポートへのアクセスを制限することができます。特定のIPアドレスのみアクセスを許可する設定が可能です。

sudo ufw allow from your_ip_address to any port 2222
sudo ufw enable

これにより、指定したIPアドレスからの接続のみが許可されます。

SSHログの監視

ログイン試行やエラーを監視することで、セキュリティの脅威を早期に検出できます。以下のコマンドでログファイルを確認します。

sudo tail -f /var/log/auth.log

ログファイルを定期的に確認し、不審な活動がないかをチェックすることが重要です。

Fail2Banの導入

Fail2Banは、不正ログイン試行を検出し、自動的にIPアドレスをブロックするツールです。以下のコマンドでインストールし、設定します。

sudo apt-get install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Fail2Banの設定ファイルを編集し、SSHの保護を強化します。

sudo nano /etc/fail2ban/jail.local

次の設定を追加します。

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
bantime = 3600
maxretry = 5

これにより、設定したポートで不正な試行があった場合に、自動的にIPがブロックされます。