編集済み 2 数週間前 によって ExtremeHow 編集チーム
SSHサーバーウブントゥリナックスネットワーキングセキュリティセットアップオペレーティングシステムリモートアクセスシステム
翻訳が更新されました 4 数週間前
UbuntuでSSHサーバーを設定することは、リモート管理やファイル転送タスクにとって重要なステップです。SSH(Secure Shell)は、暗号化されたネットワークプロトコルで、未保護のネットワーク上での安全なデータ通信を可能にします。SSHは、リモートマシンにログインしてコマンドを実行したり、ネットワーク上のコンピュータ間でファイルを転送したりするために使用されます。このガイドでは、UbuntuシステムにSSHサーバーを設定する手順を説明します。
ソフトウェアをインストールする前に、システムのパッケージマネージャーが利用可能なソフトウェアパッケージとその依存関係について最新の情報を持っていることを確認することが重要です。これを達成するために、次のコマンドを実行してください:
sudo apt update
sudo
コマンドは、通常システム管理タスクに必要な昇格された権限でコマンドを実行するために使用されます。apt update
コマンドは、パッケージリポジトリから利用可能なパッケージのリストを更新し、最新のバージョンにアクセスできるようにします。
UbuntuのSSHサーバーパッケージはOpenSSHサーバーと呼ばれています。そのシンプルさ、安全性、および堅牢性から、Linuxエコシステムで最も使用されているSSHサーバーパッケージの1つです。OpenSSHサーバーをインストールするには、ターミナルで次のコマンドを実行してください:
sudo apt install openssh-server
このコマンドは、UbuntuパッケージリポジトリからOpenSSHサーバーパッケージを取得し、システムにインストールします。インストール中に、パッケージマネージャーが自動的にSSHサービスを開始します。
OpenSSHサーバーがインストールされたら、SSHサービスが正しく動作しているかどうかを確認したくなります。SSHサービスのステータスを確認するために、次のコマンドを使用してください:
sudo systemctl status ssh
systemctl
コマンドは、サービスを含むシステムユニットのステータスを確認するために使用されます。SSHサービスのステータスを確認すると、「active(running)」と表示されているはずです。稼働していない場合は、次のコマンドで開始できます:
sudo systemctl start ssh
SSHサービスを起動時に自動的に起動させたい場合は、次のコマンドを使用してください:
sudo systemctl enable ssh
SSHサーバーの設定ファイルは/etc/ssh/sshd_config
にあります。このファイルは、ポート番号、鍵交換アルゴリズム、認証方法など、SSHサーバーのさまざまなパラメーターを制御します。このファイルを適切に設定して、セキュリティとアクセスのニーズに合わせることが重要です。
デフォルトでは、SSHサーバーはポート22
で待ち受けますが、デフォルトポートを非標準ポートに変更することで、もう一つのセキュリティ層を提供できます。ポートを変更するには、テキストエディタでSSH設定ファイルを開きます。例えば、次のようにします:
sudo nano /etc/ssh/sshd_config
#Port 22
という行を見つけて、次のように変更します:
Port 2222
行の先頭から#
を取り除いてコメントを解除します。選択したポートが他のサービスで使用されていないことを確認してください。
SSH経由でのルートログインを許可すると、セキュリティリスクを引き起こす可能性があります。次の行を探して無効にすることをお勧めします:
PermitRootLogin yes
これを次のように変更します:
PermitRootLogin no
これを実行することで、ユーザーは非ルートユーザーとしてログインし、必要に応じてルートに切り替えることが保証されます。
公開鍵認証は、パスワード認証よりも安全です。有効にするには、sshd_config
ファイルに次の行が設定されていることを確認してください:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
この設定により、ユーザーアカウントの~/.ssh/authorized_keys
ファイルに保存されたSSHキーを使用してクライアントが認証できるようになります。
SSH設定ファイルに変更を加えた後、変更を有効にするためにSSHサービスを再起動する必要があります:
sudo systemctl restart ssh
ポートを変更した場合は、新しいポートを指定してSSH接続する必要があります。例えば、SSHポートを2222
に変更した場合は、ssh user@hostname -p 2222
を使用します。
Ubuntuサーバーでファイアウォールが有効になっている場合、SSH接続を許可する必要があります。UFW(Uncomplicated Firewall)を使用している前提で、次のコマンドでファイアウォールを有効にし、SSHトラフィックを許可します:
sudo ufw allow ssh
sudo ufw enable
デフォルトのSSHポートを変更した場合は、ssh
ポート番号に置き換えてください。例:
sudo ufw allow 2222
このコマンドは、指定されたポートでSSHトラフィックを許可するようにファイアウォールルールを調整します。
SSHサーバーが正しく設定されていることを確認するために、別のマシン(別のコンピュータまたは仮想マシン)から接続を試みます。次のコマンドを使用してください:
ssh username@server_ip
username
をサーバー上の実際のユーザー名に置き換え、server_ip
をサーバーのIPアドレスまたはホスト名で置き換えます。ポートを変更した場合は、-p
オプションを使用して指定する必要があります。例:
ssh username@server_ip -p 2222
接続が成功すると、ログインプロンプトが表示され、SSH経由でサーバーにログインできます。
SSHのセットアップのセキュリティをさらに強化して、不正アクセスを防ぐことが重要です。いくつかのヒントを紹介します:
Fail2Banは、不正アクセス攻撃を防ぐために失敗したログイン試行を監視するプログラムです。次のコマンドでインストールできます:
sudo apt install fail2ban
デフォルトでは、Fail2Banは3回のログイン失敗後にIPアドレスを10分間禁止します。これらの設定は、/etc/fail2ban/jail.local
にある設定ファイルを編集してカスタマイズできます。
特定のユーザーにのみSSHアクセスを許可することを検討してください。これを行うには、sshd_config
ファイルに次の行を追加します:
AllowUsers user1 user2
user1
とuser2
をSSHアクセスを許可したい実際のユーザー名に置き換えます。
これらの手順に従って、UbuntuシステムでSSHサーバーを効率的に設定し、セキュリティを強化することができます。このセットアップは、リモートシステム管理と安全なファイル転送のための堅牢で安全な環境を提供します。脆弱性を防ぐために、常にシステムとSSHサーバーを最新の状態に保つことを忘れないでください。
記事の内容に誤りがある場合, あなたは