序章

新しいUbuntu22.04サーバーを最初に作成するときは、初期セットアップの一部としていくつかの重要な構成手順を実行する必要があります。 これらの手順により、サーバーのセキュリティと使いやすさが向上し、後続のアクションの強固な基盤が得られます。

ステップ1—ルートとしてログインする

サーバーにログインするには、サーバーのパブリックIPアドレスを知っている必要があります。 認証用のSSHキーをインストールした場合は、rootユーザーのアカウントのパスワードまたは秘密キーも必要になります。 サーバーにまだログインしていない場合は、 SSHを使用してドロップレットに接続する方法に関するガイドに従ってください。このガイドでは、このプロセスについて詳しく説明しています。

現在サーバーに接続していない場合は、次のコマンドを使用してrootユーザーとしてログインします。 コマンドの強調表示されたyour_server_ip部分を、サーバーのパブリックIPアドレスに置き換えます。

  1. ssh [email protected]your_server_ip

ホストの信頼性に関する警告が表示された場合は、それを受け入れます。 サーバーがパスワード認証を使用している場合は、rootパスワードを入力してログインします。 パスフレーズで保護されたSSHキーを使用する場合は、セッションごとに初めてキーを使用するときにパスフレーズを入力する必要がある場合があります。 パスワードを使用してサーバーに初めてログインする場合は、rootパスワードも変更する必要がある場合があります。 プロンプトが表示されたら、指示に従ってパスワードを変更します。

ルートについて

root ユーザーは、昇格された特権を持つLinux環境の管理ユーザーです。 root アカウントの特権が強化されているため、は定期的に使用することをお勧めしません root アカウントは、偶然であっても、非常に破壊的な変更を加える可能性があります。

次のステップは、日常的に使用する権限を減らした新しいユーザーアカウントを設定することです。 後で、必要なときに一時的に特権を増やす方法を説明します。

ステップ2—新しいユーザーを作成する

root としてログインすると、新しいユーザーアカウントを追加できるようになります。 将来的には、rootの代わりにこの新しいアカウントでログインする予定です。

この例では、 sammy という名前の新しいユーザーを作成しますが、これを任意のユーザー名に置き換える必要があります。

  1. adduser sammy

アカウントのパスワードから始めて、いくつかの質問があります。

強力なパスワードを入力し、必要に応じて、追加情報のいずれかを入力します。 この情報は必須ではなく、スキップしたい任意のフィールドでENTERを押すことができます。

ステップ3—管理者権限を付与する

これで、通常のアカウント権限を持つ新しいユーザーアカウントができました。 ただし、rootユーザーとして管理タスクを実行する必要がある場合があります。

通常のユーザーからログアウトしてrootアカウントとして再度ログインすることを回避するために、ユーザーのスーパーユーザーまたはルート特権と呼ばれる権限を設定できます。通常のアカウント。 これらの権限により、通常のユーザーは、コマンドの前にsudoという単語を置くことにより、管理者権限でコマンドを実行できます。

これらの権限を新しいユーザーに追加するには、ユーザーをsudoシステムグループに追加する必要があります。 Ubuntu 22.04のデフォルトでは、sudoグループのメンバーであるユーザーはsudoコマンドを使用できます。

root として、次のコマンドを実行して、新しいユーザーを sudo グループに追加します(強調表示されたsammyユーザー名を新しいユーザーに置き換えます)。

  1. usermod -aG sudo sammy

コマンドの前にsudoと入力して、通常のユーザーとしてログインしたときにスーパーユーザー権限でコマンドを実行できるようになりました。

ステップ4—ファイアウォールを設定する

Ubuntu 22.04サーバーは、UFWファイアウォールを使用して、特定のサービスへの接続のみが許可されるようにすることができます。 このアプリケーションを使用して、基本的なファイアウォールを設定できます。

注:サーバーがDigitalOceanで実行されている場合は、UFWファイアウォールの代わりに DigitalOcean CloudFirewallsをオプションで使用できます。 デバッグが困難な可能性のあるルールの競合を回避するために、一度に1つのファイアウォールのみを使用することをお勧めします。

アプリケーションは、インストール時にプロファイルをUFWに登録できます。 これらのプロファイルにより、UFWはこれらのアプリケーションを名前で管理できます。 サーバーへの接続を可能にするサービスであるOpenSSHには、UFWに登録されたプロファイルがあります。

次のように入力すると、インストールされているUFWプロファイルのリストを確認できます。

  1. ufw app list
Output
Available applications: OpenSSH

次回サーバーにログインできるように、ファイアウォールがSSH接続を許可していることを確認する必要があります。 次のように入力して、これらの接続を許可します。

  1. ufw allow OpenSSH

次に、次のように入力してファイアウォールを有効にします。

  1. ufw enable

yと入力し、ENTERを押して続行します。 次のように入力すると、SSH接続が引き続き許可されていることがわかります。

  1. ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)

ファイアウォールは現在SSHを除くすべての接続をブロックしています。 追加のサービスをインストールして構成する場合は、サーバーへの新しいトラフィックを許可するようにファイアウォール設定を調整する必要があります。 UFWEssentialsガイドでいくつかの一般的なUFW操作を学ぶことができます。

ステップ5—通常のユーザーの外部アクセスを有効にする

日常的に使用する通常のユーザーがいるので、アカウントに直接SSHで接続できることを確認する必要があります。

注:ログインして新しいユーザーでsudoを使用できることを確認するまで、rootとしてログインしたままにすることをお勧めします。 接続に問題がある場合は、トラブルシューティングを行い、rootとして必要な変更を加えることができます。 DigitalOceanドロップレットを使用していて、 root SSH接続で問題が発生した場合は、回復コンソールを使用してドロップレットへのアクセスを回復できます。

新しいユーザーのSSHアクセスの構成は、サーバーのrootアカウントが認証にパスワードまたはSSHキーのどちらを使用するかによって異なります。

rootアカウントがパスワード認証を使用する場合

パスワードを使用してrootアカウントにログインした場合、SSHのパスワード認証は有効になります。 新しいターミナルセッションを開き、新しいユーザー名でSSHを使用することにより、新しいユーザーアカウントにSSHで接続できます。

  1. ssh sammy@your_server_ip

通常のユーザーのパスワードを入力すると、ログインします。 管理者権限でコマンドを実行する必要がある場合は、次のように入力する前にsudoと入力してください。

  1. sudo command_to_run

sudoを各セッションで初めて(およびその後定期的に)使用すると、通常のユーザーのパスワードの入力を求めるプロンプトが表示されます。

サーバーのセキュリティを強化するために、パスワード認証を使用する代わりにSSHキーを設定することを強くお勧めします。 キーベースの認証を構成する方法については、 Ubuntu22.04でのSSHキーの設定に関するガイドに従ってください。

ルートアカウントがSSHキー認証を使用する場合

SSHキーを使用してrootアカウントにログインした場合、SSHのパスワード認証は無効になります。 SSHキーを使用して通常のユーザーとしてログインするには、ローカル公開キーのコピーを新しいユーザーの~/.ssh/authorized_keysファイルに追加する必要があります。

公開鍵はすでにサーバー上のrootアカウントの~/.ssh/authorized_keysファイルにあるため、現在のセッションを使用して、そのファイルとディレクトリ構造を新しいユーザーアカウントにコピーできます。

正しい所有権と権限でファイルをコピーする最も簡単な方法は、rsyncコマンドを使用することです。 このコマンドは、 rootユーザーの.sshディレクトリをコピーし、権限を保持し、ファイル所有者を変更するすべてを1つのコマンドで実行します。 以下のコマンドの強調表示された部分を、通常のユーザーの名前と一致するように変更してください。

注: rsyncコマンドは、末尾のスラッシュで終わるソースと宛先を、末尾のスラッシュがない場合とは異なる方法で処理します。 以下のrsyncを使用する場合は、ソースディレクトリ(~/.sshに末尾のスラッシュが含まれていないことを確認してください~/.ssh/を使用していないことを確認してください)。

コマンドに誤って末尾のスラッシュを追加した場合、rsyncrootアカウントの~/.sshディレクトリのcontents[にコピーします。 ~/.sshディレクトリ構造全体をコピーする代わりに、X161X]ユーザーのホームディレクトリ。 ファイルは間違った場所にあり、SSHはそれらを見つけて使用することができません。

  1. rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

次に、ローカルマシンで新しいターミナルセッションを開き、新しいユーザー名でSSHを使用します。

  1. ssh sammy@your_server_ip

パスワードを使用せずに、新しいユーザーアカウントでサーバーに接続する必要があります。 管理者権限でコマンドを実行する必要がある場合は、次のようなコマンドの前にsudoと入力してください。

  1. sudo command_to_run

sudoを各セッションで初めて使用するとき(およびその後定期的に)、通常のユーザーのパスワードの入力を求められます。

ここからどこへ行くの?

この時点で、サーバーの強固な基盤ができています。 今すぐサーバーに必要なソフトウェアをインストールできます。

Linuxコマンドについて詳しく知りたい場合は、Linuxコマンドライン入門書を確認してください。