Tutorial

Ubuntu 20.04を使用するための初期サーバーセットアップ

Published on October 8, 2020
日本語
Ubuntu 20.04を使用するための初期サーバーセットアップ

はじめに

最初に新しいUbuntu 20.04サーバを作成するときは、基本的なセットアップの一部として、いくつかの重要な設定手順を実行する必要があります。これらの手順を踏むことで、サーバーのセキュリティと使い勝手が向上し、その後のアクションに必要な強固な基盤を手にすることができます。

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

サーバーにログインするには、サーバーのパブリックIPアドレスを知る必要があります。また、パスワード、あるいは認証用のSSHの鍵をインストールしている場合には、rootユーザーアカウントのプライベートキーが必要になります。まだサーバーにログインしていない場合は、このプロセスを詳細に説明しているSSHとDropletsに接続する方法のガイドを参照してください。

サーバーに接続していない場合は、以下のコマンドを使用してrootユーザーとしてログインしてください(コマンドのハイライト部分をサーバーのパブリック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権限として知られているものを設定することができます。これにより、通常のユーザーが各コマンドの前にsudoという単語を入力して管理権限でコマンドを実行することができます。

新しいユーザーにこれらの権限を追加するには、sudoグループにそのユーザーを追加する必要があります。デフォルトでは、Ubuntu 20.04で、sudoグループのメンバーであるユーザーはsudoコマンドの使用が許可されています。

rootとして、新しいユーザーをsudoグループに追加するには、このコマンドを実行します(ハイライトされたユーザー名を新しいユーザーに置き換えます)。

  1. usermod -aG sudo sammy

これで、通常のユーザーとしてログインすると、スーパーユーザー権限でアクションを実行するためにコマンド前にsudoを入力することができます。

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

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

**注:**サーバーがDigitalOcean上で実行している場合は、UFWファイアウォールの代わりに、DigitalOcean Cloud Firewallsを使用できます。デバッグが困難になる可能性のある矛盾したルールを避けるために、一度に一つのファイアウォールだけを使用することをお勧めします。

アプリケーションはインストール時に、UFWでプロファイルを登録できます。これらのプロファイルにより、UFWはこれらのアプリケーションを名前で管理できます。現在、サーバーへの接続を実現するサービスであるOpenSSHのプロファイルは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の操作を学習することができます。

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

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

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

新しいユーザーにSSHアクセス権を設定するプロセスは、サーバーのrootアカウントが認証にパスワードまたはSSHの鍵を使用しているかどうかによります。

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

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

  1. ssh sammy@your_server_ip

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

  1. sudo command_to_run

セッションごとに初めてsudoを使用する場合、通常ユーザーのパスワードが必要になります(以降は定期的に必要になります)。

サーバーのセキュリティを強化するには、パスワード認証を使用せずに、SSHの鍵をセットアップすることを強くお勧めします。鍵ベースの認証の設定方法については、Ubuntu 20.04でSSHキーを設定するガイドに従ってください。

rootアカウントがSSHの鍵認証を使用している場合

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

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

正しい所有権と許可によりファイルをコピーする最も簡単な方法はrsyncコマンドです。これにより、rootユーザーの.sshディレクトリをコピーし、権限を保存し、ファイル所有者をすべて単一のコマンドで変更します。以下のコマンドのハイライト部分を通常のユーザ名と一致するように変更してください。

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

コマンドに誤って末尾のスラッシュを追加してしまった場合、rsyncrootアカウントの ~/.ssh ディレクトリの内容を、 ~/.ssh ディレクトリ構造全体をコピーするのではなく、sudoユーザーのホームディレクトリにコピーします。ファイルが間違った場所になってしまい、SSHでは検索や使用ができなくなってしまいます。

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

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

  1. ssh sammy@your_server_ip

パスワードを使用せずに、新しいユーザーアカウントにログインする必要があります。管理者権限でコマンドを実行する必要がある場合は、次のように実行前にsudoと入力することを覚えておきましょう。

  1. sudo command_to_run

セッションごとに初めてsudoを使用する場合、通常ユーザーのパスワードが必要になります(以降は定期的に必要になります)。

この次はどうすればよいのでしょうか?

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

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


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!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.