編集済み 5 数日前 によって ExtremeHow 編集チーム
ディストリビューション型オペレーティングシステムSSHネットワーキングセキュリティリモートアクセスリナックスサーバーオープンソースシステム管理コマンドラインインターフェース
翻訳が更新されました 5 数日前
Secure Shell (SSH) は、未暗号化のネットワーク上で安全な接続を可能にする人気のあるネットワークプロトコルです。SSHはリモートコンピュータへの安全なアクセスを提供し、システム管理者にとって欠かせないものです。DebianでのSSHサーバーのセットアップはシンプルなプロセスであり、この包括的なガイドでは効果的にSSHサーバーを構成するためのステップについて説明します。インストール、構成、安全な手法、トラブルシューティングについてカバーし、例や説明も提供します。このガイドでは、Debianシステムにおけるターミナルおよびスーパーユーザー(ルート)特権について基本的な理解があることを前提としています。
SSHはSecure Shellの略称で、安全な方法でリモートマシンに接続するために使用されます。TelnetやFTPなどの古いプロトコルを置き換え、これら古いプロトコルはパスワードを含むデータを未暗号化で送信するため安全ではありません。SSHはセッションを暗号化し、干渉するエンティティに対して読めない状態にします。この暗号化により、クライアントとサーバー間のデータ伝送の安全性と機密性が保証されます。SSHはデフォルトでポート22で動作し、認証とコマンドラインインターフェースの両方を提供して安全な通信を可能にしています。
SSHサーバーを設定する前に、インストール中に競合や問題を避けるため、Debianシステムが最新かどうかを確認することが重要です。スーパーユーザー権限でDebianサーバーにログインし、次の手順に従ってください:
sudo apt update
sudo apt upgrade
上記のコマンドは使用可能なパッケージに関する最新情報を取得し、パッケージを最新バージョンにアップグレードします。これにより、SSHサーバーインストールのためのすべての前提条件が整います。
Debianでは、OpenSSHパッケージがSSHサーバーとクライアントを提供します。OpenSSHサーバーパッケージをインストールするには、次のコマンドを実行します:
sudo apt install -y openssh-server
-y
オプションはすべてのプロンプトに自動的に 'yes' と答え、非対話型インストールを可能にします。OpenSSHサーバーのインストールは自動的に開始され、完了時に有効化されます。
インストール後、SSHサービスが期待通りに稼働していることを確認することが重要です。SSHサービスのステータスを確認するには、次のコマンドを使用します:
sudo systemctl status ssh
出力はサービスがアクティブで稼働していることを示すはずです。もしそうでなければ、次のようにしてSSHサービスを開始できます:
sudo systemctl start ssh
また、再起動後にSSHサービスが開始するようにするために、次のようにして有効化します:
sudo systemctl enable ssh
SSHサーバーの構成ファイルは /etc/ssh/sshd_config
にあります。変更を加える前に元のファイルをバックアップすることをお勧めします:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
お気に入りのテキストエディタで構成ファイルを編集します(たとえばnanoやvim):
sudo nano /etc/ssh/sshd_config
推奨される構成は次のとおりです:
Port 22
行を探し、良く知られたポートとの競合を避けるために1024以上の番号に変更します。PermitRootLogin
ディレクティブをno
に設定します。PasswordAuthentication
をno
に設定します。変更を終えたら、ファイルを保存しエディタを終了します。変更を適用するためには、SSHサービスを再起動します:
sudo systemctl restart ssh
SSHキーは、パスワードを使用するよりも安全にSSHサーバーにログインする方法を提供します。SSHキーは本質的に2つのファイル:公開鍵と秘密鍵です。秘密鍵はあなたのマシンにあり、セキュリティを保たなければならず、公開鍵はサーバーに保管されます。以下はSSHキーによる認証を設定する方法です:
クライアントマシン(あなたのローカルマシン)で、次を使用してSSHキーを生成します:
ssh-keygen -t rsa -b 4096
このコマンドは4096ビットのRSAキーを生成します。キーを保存するファイル名を尋ねられます。デフォルトの場所(秘密鍵用~/.ssh/id_rsa
、公開鍵用~/.ssh/id_rsa.pub
)にそれらを保存するにはenter
を押します。
ssh-copy-id
コマンドを使用して、公開鍵をDebianサーバーにアップロードします。user
とserver_ip
をあなたのユーザー名とサーバーのIPアドレスに置き換えてください:
ssh-copy-id user@server_ip
サーバーのパスワードを尋ねられます。入力後、公開鍵はサーバーの~/.ssh/authorized_keys
にコピーされ、適切な権限が設定されます。
SSH接続をテストしてキーによる認証が機能することを確認します。次を実行します:
ssh user@server_ip
成功すれば、パスワードのプロンプトなしにログインでき、正しいキーによる認証が示されます。キーによる認証が機能していると確信したら、/etc/ssh/sshd_config
でパスワード認証を次のようにして無効化できます:PasswordAuthentication no
。
SSHサーバーのセキュリティ強化には、潜在的なリスクを軽減する設定を構成することが含まれます。SSHサーバーをさらに安全にするためのいくつかの手順を以下に示します:
sshd_config
でAllowUsers
またはAllowGroups
ディレクティブを使用して、SSHでログインできるユーザーを決定します。たとえば、user1
とuser2
のみSSHでログインを許可するには、次を追加します:
AllowUsers user1 user2
SSHプロトコル1は古く、脆弱性があります。常にプロトコル2を使用します:
Protocol 2
信頼できるIPアドレスからのみSSHアクセスを許可するようファイアウォールルールを設定します。ufw
を使用して次のようにルールを追加します:
sudo ufw allow from trusted_ip to any port ssh
Fail2Banはブルートフォース攻撃からサーバーを保護する侵入防止ソフトウェアです。次のようにインストールします:
sudo apt install fail2ban
デフォルトでは、SSHを保護するように自動的に構成されます。実行中で有効化されていることを確認します:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
SSHで問題が発生するのは珍しいことではありません。以下に一般的な問題とその可能な解決策を示します。
'Connection refused' エラーを受け取った場合、SSHサービスが稼働していないか、ファイアウォールが接続を遮断している可能性があります。SSHが有効になっていることを確認します:
sudo systemctl status ssh
ファイアウォールがSSHポート22または構成したポートでの接続を許可するように設定されていることを確認します。
認証できない場合、権限を再確認してください。authorized_keys
が存在し、読み取り可能であり、かつユーザーによって所有されていることを確認します。
chmod 600 ~/.ssh/authorized_keys
chown user:user ~/.ssh/authorized_keys
SSHサーバーログは詳細な情報を/var/log/auth.log
に記録します。このファイルを調査することが問題の診断に役立つことが多いです。
DebianでSSHサーバーを設定することは、システムのリモート管理を安全に行うための重要なタスクです。このガイドでは、SSHのセットアップにおける重要な側面をカバーし、インストール、設定、そしてSSHサーバーの不正アクセスからの保護に焦点を当てています。常にサーバーを最新の状態に保ち、ユーザー特権を制限し、ファイアウォールや侵入防止システムのようなセキュリティ対策を実施してサーバーのセキュリティを強化してください。適切なSSHセキュリティの実践は、安全で効率的、かつ信頼性の高いサーバー環境を維持するために重要です。
記事の内容に誤りがある場合, あなたは