ウィンドウズマックソフトウェア設定セキュリティ生産性リナックスAndroidパフォーマンス設定Apple すべて

DebianでSSHサーバーを設定する方法

編集済み 5 数日前 によって ExtremeHow 編集チーム

ディストリビューション型オペレーティングシステムSSHネットワーキングセキュリティリモートアクセスリナックスサーバーオープンソースシステム管理コマンドラインインターフェース

DebianでSSHサーバーを設定する方法

翻訳が更新されました 5 数日前

Secure Shell (SSH) は、未暗号化のネットワーク上で安全な接続を可能にする人気のあるネットワークプロトコルです。SSHはリモートコンピュータへの安全なアクセスを提供し、システム管理者にとって欠かせないものです。DebianでのSSHサーバーのセットアップはシンプルなプロセスであり、この包括的なガイドでは効果的にSSHサーバーを構成するためのステップについて説明します。インストール、構成、安全な手法、トラブルシューティングについてカバーし、例や説明も提供します。このガイドでは、Debianシステムにおけるターミナルおよびスーパーユーザー(ルート)特権について基本的な理解があることを前提としています。

1. SSHの理解とその重要性

SSHはSecure Shellの略称で、安全な方法でリモートマシンに接続するために使用されます。TelnetやFTPなどの古いプロトコルを置き換え、これら古いプロトコルはパスワードを含むデータを未暗号化で送信するため安全ではありません。SSHはセッションを暗号化し、干渉するエンティティに対して読めない状態にします。この暗号化により、クライアントとサーバー間のデータ伝送の安全性と機密性が保証されます。SSHはデフォルトでポート22で動作し、認証とコマンドラインインターフェースの両方を提供して安全な通信を可能にしています。

2. Debianシステムの準備

SSHサーバーを設定する前に、インストール中に競合や問題を避けるため、Debianシステムが最新かどうかを確認することが重要です。スーパーユーザー権限でDebianサーバーにログインし、次の手順に従ってください:

sudo apt update
sudo apt upgrade

上記のコマンドは使用可能なパッケージに関する最新情報を取得し、パッケージを最新バージョンにアップグレードします。これにより、SSHサーバーインストールのためのすべての前提条件が整います。

3. OpenSSHサーバーのインストール

Debianでは、OpenSSHパッケージがSSHサーバーとクライアントを提供します。OpenSSHサーバーパッケージをインストールするには、次のコマンドを実行します:

sudo apt install -y openssh-server

-y オプションはすべてのプロンプトに自動的に 'yes' と答え、非対話型インストールを可能にします。OpenSSHサーバーのインストールは自動的に開始され、完了時に有効化されます。

4. SSHサービスの確認

インストール後、SSHサービスが期待通りに稼働していることを確認することが重要です。SSHサービスのステータスを確認するには、次のコマンドを使用します:

sudo systemctl status ssh

出力はサービスがアクティブで稼働していることを示すはずです。もしそうでなければ、次のようにしてSSHサービスを開始できます:

sudo systemctl start ssh

また、再起動後にSSHサービスが開始するようにするために、次のようにして有効化します:

sudo systemctl enable ssh

5. 基本的な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

推奨される構成は次のとおりです:

変更を終えたら、ファイルを保存しエディタを終了します。変更を適用するためには、SSHサービスを再起動します:

sudo systemctl restart ssh

6. SSHキーによる認証の設定

SSHキーは、パスワードを使用するよりも安全にSSHサーバーにログインする方法を提供します。SSHキーは本質的に2つのファイル:公開鍵と秘密鍵です。秘密鍵はあなたのマシンにあり、セキュリティを保たなければならず、公開鍵はサーバーに保管されます。以下はSSHキーによる認証を設定する方法です:

6.1. SSHキーのペア生成

クライアントマシン(あなたのローカルマシン)で、次を使用してSSHキーを生成します:

ssh-keygen -t rsa -b 4096

このコマンドは4096ビットのRSAキーを生成します。キーを保存するファイル名を尋ねられます。デフォルトの場所(秘密鍵用~/.ssh/id_rsa、公開鍵用~/.ssh/id_rsa.pub)にそれらを保存するにはenterを押します。

6.2. 公開鍵のサーバーへのコピー

ssh-copy-id コマンドを使用して、公開鍵をDebianサーバーにアップロードします。userserver_ipをあなたのユーザー名とサーバーのIPアドレスに置き換えてください:

ssh-copy-id user@server_ip

サーバーのパスワードを尋ねられます。入力後、公開鍵はサーバーの~/.ssh/authorized_keysにコピーされ、適切な権限が設定されます。

6.3. SSHキーによる認証の確認

SSH接続をテストしてキーによる認証が機能することを確認します。次を実行します:

ssh user@server_ip

成功すれば、パスワードのプロンプトなしにログインでき、正しいキーによる認証が示されます。キーによる認証が機能していると確信したら、/etc/ssh/sshd_config でパスワード認証を次のようにして無効化できます:PasswordAuthentication no

7. SSHセキュリティの強化

SSHサーバーのセキュリティ強化には、潜在的なリスクを軽減する設定を構成することが含まれます。SSHサーバーをさらに安全にするためのいくつかの手順を以下に示します:

7.1. ユーザーアクセスの制限

sshd_configAllowUsersまたはAllowGroupsディレクティブを使用して、SSHでログインできるユーザーを決定します。たとえば、user1user2のみSSHでログインを許可するには、次を追加します:

AllowUsers user1 user2

7.2. SSHプロトコル1の無効化

SSHプロトコル1は古く、脆弱性があります。常にプロトコル2を使用します:

Protocol 2

7.3. ファイアウォールでのSSHアクセス制御

信頼できるIPアドレスからのみSSHアクセスを許可するようファイアウォールルールを設定します。ufwを使用して次のようにルールを追加します:

sudo ufw allow from trusted_ip to any port ssh

7.4. Fail2Banの設定

Fail2Banはブルートフォース攻撃からサーバーを保護する侵入防止ソフトウェアです。次のようにインストールします:

sudo apt install fail2ban

デフォルトでは、SSHを保護するように自動的に構成されます。実行中で有効化されていることを確認します:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

8. よくあるSSHの問題のトラブルシューティング

SSHで問題が発生するのは珍しいことではありません。以下に一般的な問題とその可能な解決策を示します。

8.1. SSH接続拒否

'Connection refused' エラーを受け取った場合、SSHサービスが稼働していないか、ファイアウォールが接続を遮断している可能性があります。SSHが有効になっていることを確認します:

sudo systemctl status ssh

ファイアウォールがSSHポート22または構成したポートでの接続を許可するように設定されていることを確認します。

8.2. 認証の失敗

認証できない場合、権限を再確認してください。authorized_keysが存在し、読み取り可能であり、かつユーザーによって所有されていることを確認します。

chmod 600 ~/.ssh/authorized_keys
chown user:user ~/.ssh/authorized_keys

SSHサーバーログは詳細な情報を/var/log/auth.logに記録します。このファイルを調査することが問題の診断に役立つことが多いです。

結論

DebianでSSHサーバーを設定することは、システムのリモート管理を安全に行うための重要なタスクです。このガイドでは、SSHのセットアップにおける重要な側面をカバーし、インストール、設定、そしてSSHサーバーの不正アクセスからの保護に焦点を当てています。常にサーバーを最新の状態に保ち、ユーザー特権を制限し、ファイアウォールや侵入防止システムのようなセキュリティ対策を実施してサーバーのセキュリティを強化してください。適切なSSHセキュリティの実践は、安全で効率的、かつ信頼性の高いサーバー環境を維持するために重要です。

記事の内容に誤りがある場合, あなたは


コメント