0Pricing
Cyber Security Academy · レッスン

SSHの堅牢化と鍵ベース認証

パスワード認証を無効にし、鍵ペアを設定し、AllowUsersでアクセスを制限して、fail2banを使用します。

「SSHの堅牢化と鍵ベース認証」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。

SSHセキュリティが重要な理由

SSHはLinuxサーバーのリモート管理に使われる主要なプロトコルです。設定を誤ったSSHサーバーは、攻撃者が侵入する最も一般的な経路の一つです。インターネットに公開され、常時ブルートフォース攻撃を行うボットの標的になります。

SSHキーペアの生成

鍵ベースの認証は、パスワード認証よりも強固です。キーペアを生成します。

ssh-keygen -t ed25519 -C "your_email"
# Creates ~/.ssh/id_ed25519 (private) and id_ed25519.pub (public)
# Never share the private key

公開鍵のインストール

公開鍵をサーバーにコピーします。

ssh-copy-id user@server
# Or manually:
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

パスワード認証の無効化

鍵ベースの認証が機能することを確認したら、ブルートフォース攻撃のリスクをなくすためにパスワードログインを無効にします。

# In /etc/ssh/sshd_config:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
sudo systemctl restart sshd

SSHのデフォルトポートの変更

SSHをポート22から変更すると、自動スキャンによるノイズを減らせます。これはsecurity through obscurity(隠すことによるセキュリティ)であり、実際の防御策ではありませんが、ログの大量発生を抑えられます。ファイアウォールのルールも必ず合わせて更新してください。

# /etc/ssh/sshd_config
Port 2222
# Then update firewall:
ufw allow 2222/tcp
ufw delete allow 22/tcp

ユーザーやIPによるSSHアクセスの制限

SSH接続を許可するユーザーと接続元を制限します。

# /etc/ssh/sshd_config
AllowUsers alice bob
AllowGroups sshusers
# Or restrict by source IP in /etc/hosts.allow:
sshd: 192.168.1.0/24

SSHのタイムアウトとログイン回数の制限

セッションと試行回数に制限を設けて、攻撃にさらされる範囲を減らします。

# /etc/ssh/sshd_config
ClientAliveInterval 300    # disconnect idle sessions after 5 min
ClientAliveCountMax 2
MaxAuthTries 3             # max password attempts
LoginGraceTime 30          # seconds to authenticate

fail2banの使用

fail2banはログファイルを監視し、悪意のあるパターン(SSHログインの失敗が多すぎる場合など)を示すIPを禁止します。ファイアウォールのルールを動的に更新して、攻撃者をブロックします。

apt install fail2ban
# /etc/fail2ban/jail.local:
[sshd]
enabled = true
maxretry = 3
bantime = 3600

SSHエージェントと鍵転送

SSHエージェントは、復号済みの秘密鍵をメモリに保存するため、ログインするたびにパスフレーズを再入力する必要がありません。エージェント転送(ssh -A)は、複数の接続先を経由して鍵を転送します。侵害された中継サーバーによってエージェントソケットから鍵を盗まれる可能性があるため、慎重に使用してください。

SSHの二要素認証

Google Authenticator PAMモジュールを使ってSSHにTOTPを追加すると、鍵ベースの認証を使用している場合でも保護を強化できます。ログインには、鍵と時間ベースのOTPの両方が必要になります。

SSH設定の監査

次のコマンドでSSH設定を確認します。

sshd -T | grep -E "passwordauth|permitroot|pubkeyauth|port"
# Check who is connected:
ss -tnp | grep :22
who

確認問題: SSHの強化

SSHに対するパスワードのブルートフォース攻撃をなくすには、sshd_configのどの設定をnoにすべきですか?

レッスンのまとめ

SSHを強化するには、Ed25519鍵を使用し、パスワード認証とrootログインを無効にし、ポート22を変更し、AllowUsersで接続元を制限し、アイドルタイムアウトを設定し、fail2banをインストールします。秘密鍵は決して共有しないでください。sshd -Tで監査します。エージェント転送は便利ですが、信頼できないホストでは危険です。

よくある質問

「SSHの堅牢化と鍵ベース認証」レッスンは無料ですか?

はい。「SSHの堅牢化と鍵ベース認証」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。

「SSHの堅牢化と鍵ベース認証」で何を学びますか?

パスワード認証を無効にし、鍵ペアを設定し、AllowUsersでアクセスを制限して、fail2banを使用します。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cyber Security Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「SSHの堅牢化と鍵ベース認証」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCyber Security Academyレッスンでコードを書いて実行できますか?

はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ファイルの権限と所有権
  2. ユーザーとグループの管理
  3. SSHの堅牢化と鍵ベース認証
  4. iptablesとUFWのファイアウォールルール
← Cyber Security Academyに戻る