Ubuntu 22.04の初期サーバー設定

はじめに

Ubuntu 22.04サーバーを新しく作成した場合、初期設定の一環としていくつかの重要な構成手順を実行する必要があります。これらの手順により、サーバーのセキュリティと使いやすさが向上し、後続の操作のための堅固な基盤が得られます。

DigitalOcean App Platformを使用してGitHubからアプリケーションを展開します。DigitalOceanにアプリのスケーリングを任せましょう。

ステップ1 — rootとしてログインする

サーバーにログインするには、サーバーの公開IPアドレスを知っている必要があります。また、認証のためにSSHキーをインストールした場合は、rootユーザーアカウントのパスワードまたは秘密鍵が必要です。まだサーバーにログインしていない場合は、このプロセスを詳しく説明した当社の「DropletsへのSSH接続方法」ガイドに従うと良いでしょう。

現在サーバーに接続していない場合は、次のコマンドを使用してrootユーザーとしてログインします。コマンドのyour_server_ip部分をサーバーの公開IPアドレスに置き換えてください:

  1. ssh root@your_server_ip

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

rootについて

rootユーザーは、Linux環境で特権を持つ管理ユーザーです。 rootアカウントの特権が高いため、通常は使用を控えるようにしてください。 rootアカウントは、間違っていても非常に破壊的な変更を行うことができます。

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

ステップ2 — 新しいユーザーの作成

rootとしてログインすると、新しいユーザーアカウントを追加できます。今後は、rootではなく、この新しいアカウントでログインします。

この例では、sammyという新しいユーザーを作成しますが、お好みのユーザー名に置き換えてください:

  1. adduser sammy

アカウントのパスワードを始めに含むいくつかの質問が表示されます。

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

ステップ 3 — 管理者権限の付与

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

通常のユーザーとしてログアウトして 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 Cloud Firewallsをオプションで使用できます。競合するルールを避けるために、1度に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以外のすべての接続をブロックしています。追加のサービスをインストールして構成する場合は、ファイアウォール設定を調整して新しいトラフィックをサーバーに許可する必要があります。一般的なUFW操作については、UFW Essentialsガイドでいくつかの操作を学ぶことができます。

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

日常的な使用のための通常のユーザーができたので、そのアカウントに直接SSHできるようにする必要があります。

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

新しいユーザーのSSHアクセスの構成は、サーバーのrootアカウントが認証にパスワードを使用しているかSSHキーを使用しているかに依存します。

ルートアカウントがパスワード認証を使用している場合

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

  1. ssh sammy@your_server_ip

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

  1. sudo command_to_run

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

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

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

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

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

適切な所有権とアクセス権を持つファイルをコピーする最も簡単な方法は、rsyncコマンドを使用することです。このコマンドはrootユーザーの.sshディレクトリをコピーし、権限を保持し、ファイル所有者を変更するため、単一のコマンドで行います。以下のコマンドのハイライトされた部分を通常のユーザー名に変更してください:

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

コマンドに誤ってスラッシュを追加した場合、rsyncrootアカウントの~/.sshディレクトリの内容sudoユーザーのホームディレクトリにコピーし、~/.sshディレクトリ全体をコピーしません。ファイルが間違った場所にあり、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コマンドライン入門をご覧ください。

Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-22-04