導入
新しいUbuntuサーバーを初めて作成する際は、初期セットアップの一環としていくつかの重要な設定手順を実行する必要があります。これらの手順により、サーバーのセキュリティと使いやすさが向上し、次のステップのための強固な基盤が築かれます。.
ステップ1 – ルートとしてログイン
サーバーにログインするには、サーバーのパブリックIPアドレスが必要です。また、認証用にSSHキーをインストールした場合は、ルートユーザーアカウントのパスワードまたは秘密鍵も必要です。サーバーにログインしたことがない場合は、SSHを使用してドロップに接続する方法に関するガイドをご覧ください。この手順について詳しく説明しています。.
サーバーに接続していない場合は、以下のコマンドを使用してrootとしてログインしてください。コマンドのハイライト表示されている your_server_ip 部分を、サーバーのパブリックIPアドレスに置き換えてください。
ssh root@your_server_ipホスト認証に関する警告が表示された場合は、同意してください。サーバーがパスワード認証を使用している場合は、rootパスワードを入力してログインしてください。パスフレーズで保護されたSSHキーを使用している場合は、各セッションで初めてキーを使用する際にパスフレーズの入力が必要になる場合があります。パスワードを使用してサーバーにログインするのが初めての場合は、rootパスワードの変更も必要になる場合があります。プロンプトが表示されたら、指示に従ってパスワードを変更してください。.
ルートについて
rootユーザーは、Linux環境における高い権限を持つ管理ユーザーです。rootアカウントは権限が強化されているため、日常的に使用することは推奨されません。rootアカウントは、たとえ誤っても、非常に破壊的な変更を加える可能性があります。.
次のステップは、日常的に使えるポイントを減らした新しいアカウントを作成することです。後ほど、必要なときに一時的にポイントを増やす方法をご紹介します。.
ステップ2 – 新しいユーザーを作成する
rootとしてログインした後、新しいユーザーアカウントを追加できます。今後は、rootではなくこの新しいアカウントでログインします。.
この例では、Sammy という名前の新しいユーザーが作成されますが、任意のユーザー名に置き換える必要があります。
adduser sammyアカウントのパスワードから始めて、いくつかの質問が表示されます。.
強力なパスワードを入力し、必要に応じて追加情報を入力してください。この情報は必須ではありませんので、スキップしたい箇所でいつでもEnterキーを押してください。.
ステップ3 – 管理者権限の付与
これで、通常のアカウント権限を持つ新しいユーザーアカウントが作成されました。ただし、場合によっては、rootユーザーとして管理タスクを実行する必要がある場合があります。.
通常ユーザーがログアウトしてrootアカウントでログインし直すことを防ぐには、通常ユーザーアカウントにスーパーユーザー権限またはroot権限と呼ばれる権限を設定することができます。これらの権限により、通常ユーザーはコマンドの前にsudoを付けることで、管理者権限でコマンドを実行できます。.
これらの権限を新しいユーザーに追加するには、ユーザーをsudoシステムグループに追加する必要があります。Ubuntuでは、デフォルトでsudoグループのメンバーであるユーザーはsudoコマンドを使用できます。.
root として次のコマンドを実行し、新しいユーザーを sudo グループに追加します (強調表示されたユーザー名を新しいユーザーに置き換えます)。
usermod -aG sudo sammy通常のユーザーとしてログインしているときに、コマンドの前に sudo と入力して、コマンドをスーパーユーザー権限で実行できるようになりました。.
ステップ4 – ファイアウォールを設定する
UbuntuサーバーはUFWファイアウォールを使用して、特定のサービスへの接続のみを許可することができます。このプログラムを使用して、基本的なファイアウォールを設定できます。.
アプリケーションはインストール後、UFWに独自のプロファイルを登録できます。これらのプロファイルにより、UFWはアプリケーションを名前で管理できます。サーバーへの接続を可能にするサービスであるOpenSSHにも、UFWにプロファイルが登録されています。.
次のように入力すると、インストールされている UFW プロファイルのリストを確認できます。
ufw app listOutput
Available applications:
OpenSSH次回サーバーにログインできるように、ファイアウォールがSSH接続を許可していることを確認する必要があります。次のコマンドを入力して、SSH接続を許可してください。
ufw allow OpenSSH次のように入力してファイアウォールを有効にします。
ufw enableyと入力してEnterキーを押して続行します。以下を入力すると、SSH接続がまだ許可されていることがわかります。
ufw statusOutput
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)現在、ファイアウォールはSSHを除くすべての接続をブロックしています。追加のサービスをインストールして設定する場合は、新しいトラフィックがサーバーに流入できるようにファイアウォールの設定を調整する必要があります。UFWの一般的な操作については、UFW Essentialsガイドをご覧ください。.
ステップ5 – 通常ユーザーの外部アクセスを有効にする
日常的に使用する通常のユーザーができたので、SSH アカウントに直接ログインできることを確認する必要があります。.
新しいユーザーの SSH アクセスの構成は、サーバーのルート アカウントが認証にパスワードを使用するか SSH キーを使用するかによって異なります。.
メインアカウントがパスワード認証を使用している場合
メインアカウントにパスワードを使ってログインした場合、SSHのパスワード認証が有効になります。新しいターミナルセッションを開き、新しいユーザー名でSSHを使用すると、新しいアカウントにSSH接続できます。
ssh sammy@your_server_ip通常のユーザーのパスワードを入力すると、ログインします。管理者権限でコマンドを実行する必要がある場合は、次のように、その前に sudo と入力することを忘れないでください。
sudo command_to_run各セッションで初めて sudo を使用するときに (およびその後定期的に)、通常のユーザー パスワードの入力を求めるプロンプトが表示されます。.
サーバーのセキュリティを強化するために、パスワード認証ではなくSSHキーを設定することを強くお勧めします。UbuntuでSSHキーを設定する方法については、こちらのガイドをご覧ください。.
ルートアカウントがSSHキー認証を使用する場合
SSHキーを使用してメインアカウントにログインしている場合、SSHのパスワード認証は無効になっています。SSHキーを使用して通常ユーザーとしてログインするには、ローカルの公開鍵のコピーを新しいユーザーの~/.ssh/authorized_keysファイルに追加する必要があります。.
公開キーはすでにサーバー上のルート アカウントの ~/.ssh/authorized_keys ファイルにあるため、現在のセッションを使用してそのファイルとディレクトリ構造を新しいユーザー アカウントにコピーできます。.
正しい所有権と権限でファイルをコピーする最も簡単な方法は、rsyncコマンドを使用することです。このコマンドは、rootユーザーの.sshディレクトリをコピーし、権限を維持しながら、ファイルの所有者を1つのコマンドで変更します。以下のコマンドのハイライト部分を、通常のユーザー名に合わせて変更してください。
rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy次に、ローカル マシンで新しいターミナル セッションを開き、新しいユーザー名で SSH を使用します。
ssh sammy@your_server_ip新しいユーザーアカウントでパスワードなしでサーバーに接続できるはずです。管理者権限でコマンドを実行する必要がある場合は、以下のコマンドの前にsudoと入力してください。
sudo command_to_runどのセッションでも sudo を初めて使用する場合 (およびその後定期的に使用する場合)、通常のユーザー パスワードの入力を求められます。.
結果
この時点で、サーバーの強固な基盤が構築されました。必要なソフトウェアをサーバーにインストールできます。.









