最初に新しいUbuntu 20.04サーバを作成するときは、基本的なセットアップの一部として、いくつかの重要な設定手順を実行する必要があります。これらの手順を踏むことで、サーバーのセキュリティと使い勝手が向上し、その後のアクションに必要な強固な基盤を手にすることができます。
サーバーにログインするには、サーバーのパブリックIPアドレスを知る必要があります。また、パスワード、あるいは認証用のSSHの鍵をインストールしている場合には、rootユーザーアカウントのプライベートキーが必要になります。まだサーバーにログインしていない場合は、このプロセスを詳細に説明しているSSHとDropletsに接続する方法のガイドを参照してください。
サーバーに接続していない場合は、以下のコマンドを使用してrootユーザーとしてログインしてください(コマンドのハイライト部分をサーバーのパブリックIPアドレスに置き換えてください)。
- ssh root@your_server_ip
ホスト認証に関する警告が表示された場合は承認します。パスワード認証を使用している場合は、ログインするためのrootパスワードを入力します。パスフレーズで保護されたSSHの鍵を使用している場合は、セッションごとにキーを初めて使用するときにパスフレーズの入力を促す画面が表示される場合があります。パスワードを使用してサーバーに初めてログインする場合は、rootパスワードの変更を求められる場合があります。
rootユーザーとは、Linux環境では非常に幅広い権限を持つ管理者ユーザーです。rootアカウントの権限が強化されているため、定期的に使用することはお勧めできません。これは、rootアカウントに固有の機能の一部が、たとえ偶然であっても、非常に壊滅的な変化をもたらす能力があるためです。
次のステップは、日常的に使用するために権限を限定した新しいユーザーアカウントを設定します。後で、必要なときにのみ権限を増やす方法を確認していきましょう。
rootとしてログインすると、新しいユーザーアカウントを追加する準備が整います。これからは、rootではなく、この新しいアカウントでログインします。
この例では、sammyと呼ばれる新しいユーザーを作成しますが、任意のユーザー名に置き換える必要があります。
- adduser sammy
いくつか質問されますが、アカウントのパスワードから始めます。
強力なパスワードを入力し、必要に応じて追加情報を入力します。これは必須ではないので、スキップしたい任意のフィールドでENTER
キーを押すことができます。
これで、通常のアカウント権限を持つ新しいユーザーアカウントができました。ただし、管理作業を行う必要がある場合があります。
通常のユーザーからログアウトしてrootアカウントとしてログインし直す必要を避けるために、通常のアカウントに_スーパーユーザー_またはroot権限として知られているものを設定することができます。これにより、通常のユーザーが各コマンドの前にsudo
という単語を入力して管理権限でコマンドを実行することができます。
新しいユーザーにこれらの権限を追加するには、sudoグループにそのユーザーを追加する必要があります。デフォルトでは、Ubuntu 20.04で、sudoグループのメンバーであるユーザーはsudo
コマンドの使用が許可されています。
rootとして、新しいユーザーをsudoグループに追加するには、このコマンドを実行します(ハイライトされたユーザー名を新しいユーザーに置き換えます)。
- usermod -aG sudo sammy
これで、通常のユーザーとしてログインすると、スーパーユーザー権限でアクションを実行するためにコマンド前にsudo
を入力することができます。
Ubuntu 20.04サーバーは、UFWファイアウォールを使用して、特定のサービスへの接続のみが許可されていることを確認できます。このアプリケーションを使用して、基本的なファイアウォールを非常に簡単に設定することができます。
**注:**サーバーがDigitalOcean上で実行している場合は、UFWファイアウォールの代わりに、DigitalOcean Cloud Firewallsを使用できます。デバッグが困難になる可能性のある矛盾したルールを避けるために、一度に一つのファイアウォールだけを使用することをお勧めします。
アプリケーションはインストール時に、UFWでプロファイルを登録できます。これらのプロファイルにより、UFWはこれらのアプリケーションを名前で管理できます。現在、サーバーへの接続を実現するサービスであるOpenSSHのプロファイルはUFWに登録されています。
次のように入力すれば、これを確認できます。
- ufw app list
OutputAvailable applications:
OpenSSH
次回ログインできるように、ファイアウォールがSSH接続を許可していることを確認する必要があります。次のように入力して、これらの接続を許可できます。
- ufw allow OpenSSH
その後、次のように入力してファイアウォールを有効にすることができます。
- ufw enable
y
と入力してから、ENTER
キーを押して続行します。次のように入力して、SSH接続がまだ許可されていることを確認できます。
- ufw status
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
現在、ファイアウォールがSSH以外のすべての接続をブロックしているため、追加サービスをインストールして設定する場合は、ファイアウォールの設定を調整してトラフィックを許可する必要があります。_UFWエッセンシャル_ガイドで、一般的なUFWの操作を学習することができます。
日常的に利用する通常ユーザーが存在するため、直接アカウントにSSHできるようにする必要があります。
注: 新しいユーザーでログインしてsudo
を使用できることを確認するまでは、rootとしてログインしたままでいることをお勧めします。このようにして、問題が発生した場合、トラブルシューティングしてrootとして必要な変更を行うことができます。DigitalOcean Dropletを使用し、root SSH接続で問題が発生した場合、DigitalOceanコンソールを使用して、Dropletにログインできます。
新しいユーザーにSSHアクセス権を設定するプロセスは、サーバーのrootアカウントが認証にパスワードまたはSSHの鍵を使用しているかどうかによります。
パスワードを使用_してrootアカウントにログインすると、SSHではパスワード認証が_有効になっています。新しいターミナルセッションを開き、新しいユーザー名でSSHを使用して、新しいユーザーアカウントにSSHすることができます。
- ssh sammy@your_server_ip
通常ユーザーのパスワードを入力すると、ログインします。管理者権限でコマンドを実行する必要がある場合は、次のように実行前にsudo
と入力することを覚えておきましょう。
- sudo command_to_run
セッションごとに初めてsudo
を使用する場合、通常ユーザーのパスワードが必要になります(以降は定期的に必要になります)。
サーバーのセキュリティを強化するには、パスワード認証を使用せずに、SSHの鍵をセットアップすることを強くお勧めします。鍵ベースの認証の設定方法については、Ubuntu 20.04でSSHキーを設定するガイドに従ってください。
_SSHの鍵を使用_してrootアカウントにログインすると、SSHのパスワード認証は_無効_になります。ローカル公開鍵のコピーを新しいユーザーの ~/.ssh/authorized_keys
ファイルに追加して正常にログインする必要があります。
公開鍵はすでにrootアカウントのサーバー上~/.ssh/authorized_keys
ファイルに存在するため、ファイルとディレクトリ構造を既存のセッションで新しいユーザーアカウントにコピーできます。
正しい所有権と許可によりファイルをコピーする最も簡単な方法はrsync
コマンドです。これにより、rootユーザーの.ssh
ディレクトリをコピーし、権限を保存し、ファイル所有者をすべて単一のコマンドで変更します。以下のコマンドのハイライト部分を通常のユーザ名と一致するように変更してください。
注: rsync
コマンドは、末尾のスラッシュで終わる同期元と同期先を、末尾のスラッシュのない同期元と同期先とは異なる方法で扱います。以下のrsync
を使用する場合は、ソースディレクトリ (~/.ssh
) に末尾のスラッシュが含まれていないことを確認してください ( ~/.ssh/
を使用していないことを確認してください)。
コマンドに誤って末尾のスラッシュを追加してしまった場合、rsync
はrootアカウントの ~/.ssh
ディレクトリの内容を、 ~/.ssh
ディレクトリ構造全体をコピーするのではなく、sudo
ユーザーのホームディレクトリにコピーします。ファイルが間違った場所になってしまい、SSHでは検索や使用ができなくなってしまいます。
- rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy
これで、ローカルマシンで新しいターミナルセッションを開き、新しいユーザー名でSSHを使用します。
- ssh sammy@your_server_ip
パスワードを使用せずに、新しいユーザーアカウントにログインする必要があります。管理者権限でコマンドを実行する必要がある場合は、次のように実行前にsudo
と入力することを覚えておきましょう。
- sudo command_to_run
セッションごとに初めてsudo
を使用する場合、通常ユーザーのパスワードが必要になります(以降は定期的に必要になります)。
この時点で、サーバーの基盤は強固になっています。これでサーバーに必要なソフトウェアをインストールすることができます。
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!