はじめに
Ubuntu 22.04サーバーを新しく作成した場合、初期設定の一環としていくつかの重要な構成手順を実行する必要があります。これらの手順により、サーバーのセキュリティと使いやすさが向上し、後続の操作のための堅固な基盤が得られます。
DigitalOcean App Platformを使用してGitHubからアプリケーションを展開します。DigitalOceanにアプリのスケーリングを任せましょう。
ステップ1 — rootとしてログインする
サーバーにログインするには、サーバーの公開IPアドレスを知っている必要があります。また、認証のためにSSHキーをインストールした場合は、rootユーザーアカウントのパスワードまたは秘密鍵が必要です。まだサーバーにログインしていない場合は、このプロセスを詳しく説明した当社の「DropletsへのSSH接続方法」ガイドに従うと良いでしょう。
現在サーバーに接続していない場合は、次のコマンドを使用してrootユーザーとしてログインします。コマンドのyour_server_ip
部分をサーバーの公開IPアドレスに置き換えてください:
警告を受け入れて、ホストの信頼性を確認してください。サーバーがパスワード認証を使用している場合は、root パスワードを提供してログインしてください。パスフレーズで保護されたSSHキーを使用している場合は、セッションごとにキーを最初に使用する際にパスフレーズを入力する必要があります。パスワードでサーバーにログインするのが初めての場合は、root パスワードを変更する必要がある場合があります。プロンプトが表示された場合は、指示に従ってパスワードを変更してください。
rootについて
rootユーザーは、Linux環境で特権を持つ管理ユーザーです。 rootアカウントの特権が高いため、通常は使用を控えるようにしてください。 rootアカウントは、間違っていても非常に破壊的な変更を行うことができます。
次のステップは、日常的な使用のために特権が制限された新しいユーザーアカウントを設定することです。後で、必要なときに一時的に特権を増やす方法を示します。
ステップ2 — 新しいユーザーの作成
rootとしてログインすると、新しいユーザーアカウントを追加できます。今後は、rootではなく、この新しいアカウントでログインします。
この例では、sammyという新しいユーザーを作成しますが、お好みのユーザー名に置き換えてください:
アカウントのパスワードを始めに含むいくつかの質問が表示されます。
強力なパスワードを入力し、任意で追加情報を入力してください。この情報は必須ではなく、スキップしたいフィールドでは ENTER
を押すことができます。
ステップ 3 — 管理者権限の付与
これで、通常のアカウント権限を持つ新しいユーザーアカウントが作成されました。ただし、時々 root ユーザーとして管理タスクを実行する必要があります。
通常のユーザーとしてログアウトして root アカウントに再度ログインする手間を避けるために、ユーザーの通常のアカウントに スーパーユーザー または root 権限を設定することができます。これらの権限により、通常のユーザーはコマンドの前に sudo
を置くことで管理者権限でコマンドを実行できます。
これらの権限を新しいユーザーに追加するには、ユーザーを sudo システムグループに追加する必要があります。デフォルトでは、Ubuntu 22.04 では、sudo グループのメンバーは sudo
コマンドを使用できます。
rootとして、このコマンドを実行して、新しいユーザーをsudoグループに追加します(ハイライトされたsammy
ユーザー名を新しいユーザーに置き換えてください):
通常のユーザーとしてログインしているときに、コマンドの前にsudo
を入力して、スーパーユーザー権限で実行できるようになります。
ステップ4 — ファイアウォールの設定
Ubuntu 22.04サーバーでは、UFWファイアウォールを使用して、特定のサービスへの接続のみを許可できます。このアプリケーションを使用して基本的なファイアウォールを設定できます。
注意:サーバーがDigitalOceanで実行されている場合は、UFWファイアウォールの代わりにDigitalOcean Cloud Firewallsをオプションで使用できます。競合するルールを避けるために、1度に1つのファイアウォールのみを使用することをお勧めします。
アプリケーションは、インストール時にUFWにプロファイルを登録できます。これらのプロファイルにより、UFWがこれらのアプリケーションを名前で管理できます。サーバーに接続するためのサービスであるOpenSSHには、UFWに登録されたプロファイルがあります。
インストールされているUFWプロファイルのリストを調べるには、次のように入力します:
OutputAvailable applications:
OpenSSH
次回サーバーにログインできるように、ファイアウォールがSSH接続を許可することを確認する必要があります。これらの接続を許可するには、次のように入力します:
そしてファイアウォールを有効にするには、次のように入力します:
タイプy
、そしてENTER
を押してください。SSH接続がまだ許可されていることがわかります:
OutputStatus: 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を実行します:
通常のユーザーのパスワードを入力した後、ログインされます。注意:管理者権限でコマンドを実行する必要がある場合は、次のようにそれを入力する前にsudo
を入力してください:
セッションごとに(そしてその後定期的に)、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/
を使用していないか確認してください)。
コマンドに誤ってスラッシュを追加した場合、rsync
はrootアカウントの~/.ssh
ディレクトリの内容をsudo
ユーザーのホームディレクトリにコピーし、~/.ssh
ディレクトリ全体をコピーしません。ファイルが間違った場所にあり、SSHがそれらを見つけて使用できなくなります。
今、ローカルマシンで新しい端末セッションを開き、新しいユーザー名を使用してSSHを使用します:
パスワードを使用せずに新しいユーザーアカウントでサーバーに接続されるはずです。注意してください。管理者権限でコマンドを実行する必要がある場合は、コマンドの前にsudo
を入力してください。次のように:
セッションごと(そしてその後定期的に)、sudo
を使用するときには、通常のユーザーのパスワードが要求されます。
次はどうするか?
この時点で、サーバーの堅固な基盤ができました。今すぐ必要なソフトウェアをサーバーにインストールできます。
Linuxコマンドにより詳細になりたい場合は、Linuxコマンドライン入門をご覧ください。
Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-22-04