前書き
新しいUbuntu 18.04サーバーを初めて作成するとき、基本的なセットアップの一部として早期に実行する必要があるいくつかの構成手順があります。 これにより、サーバーのセキュリティと使いやすさが向上し、その後のアクションの強固な基盤が得られます。
ステップ1-ルートとしてログインする
サーバーにログインするには、サーバーのパブリックIPアドレス*を知っている必要があります。 パスワード、または認証用のSSHキーをインストールした場合は、 root *ユーザーのアカウントの秘密キーも必要になります。 サーバーにまだログインしていない場合は、https://www.digitalocean.com/community/tutorials/how-to-connect-to-your-droplet-with-ssh [how to SSHを使用してDropletに接続します]。このプロセスについて詳しく説明します。
サーバーにまだ接続していない場合は、次のコマンドを使用して* root *ユーザーとしてログインします(コマンドの強調表示された部分をサーバーのパブリックIPアドレスに置き換えます)。
ssh root@
ホストの信頼性に関する警告が表示された場合は受け入れます。 パスワード認証を使用している場合は、* root パスワードを入力してログインします。 パスフレーズで保護されたSSHキーを使用している場合、各セッションで初めてキーを使用するときにパスフレーズを入力するように求められる場合があります。 パスワードを使用してサーバーに初めてログインする場合は、 root *パスワードを変更するよう求められることもあります。
ルートについて
-
root ユーザーは、非常に幅広い特権を持つLinux環境の管理ユーザーです。 * root *アカウントの特権が高められているため、定期的に使用することはできません。 これは、 root *アカウントに固有の力の一部が、偶然であっても非常に破壊的な変更を加える能力だからです。
次のステップは、日常業務の影響範囲を減らした代替ユーザーアカウントを設定することです。 必要なときに特権を増やす方法を説明します。
ステップ2-新しいユーザーの作成
-
root *としてログインすると、これからログインするために使用する新しいユーザーアカウントを追加する準備が整います。
この例では、* sammy *という新しいユーザーを作成しますが、好きなユーザー名に置き換える必要があります。
adduser
アカウントのパスワードから始めて、いくつか質問があります。
強力なパスワードを入力し、必要に応じて任意の追加情報を入力します。 これは必須ではなく、スキップしたいフィールドで「+ ENTER +」を押すだけです。
ステップ3-管理特権の付与
これで、通常のアカウント特権を持つ新しいユーザーアカウントが作成されました。 ただし、管理タスクを実行する必要がある場合があります。
通常のユーザーからログアウトして* root アカウントとして再度ログインする必要を回避するために、通常のアカウントに「スーパーユーザー」または root *特権として知られるものを設定できます。 これにより、通常のユーザーは、各コマンドの前に「+ sudo +」という単語を追加することにより、管理者権限でコマンドを実行できます。
これらの特権を新しいユーザーに追加するには、新しいユーザーを* sudo グループに追加する必要があります。 デフォルトでは、Ubuntu 18.04では、 sudo *グループに属するユーザーは `+ sudo +`コマンドを使用できます。
-
root として、次のコマンドを実行して、新しいユーザーを sudo *グループに追加します(強調表示された単語を新しいユーザーに置き換えます)。
usermod -aG sudo
これで、通常のユーザーとしてログインすると、コマンドの前に「+ sudo +」と入力して、スーパーユーザー権限でアクションを実行できます。
手順4-基本的なファイアウォールの設定
Ubuntu 18.04サーバーは、UFWファイアウォールを使用して、特定のサービスへの接続のみが許可されていることを確認できます。 このアプリケーションを使用すると、基本的なファイアウォールを非常に簡単に設定できます。
さまざまなアプリケーションが、インストール時にプロファイルをUFWに登録できます。 これらのプロファイルにより、UFWはこれらのアプリケーションを名前で管理できます。 サーバーへの接続を可能にするサービスであるOpenSSHには、UFWに登録されたプロファイルがあります。
これを確認するには、次のように入力します。
ufw app list
OutputAvailable applications:
OpenSSH
次回ログインできるように、ファイアウォールがSSH接続を許可していることを確認する必要があります。 これらの接続を許可するには、次のように入力します。
ufw allow OpenSSH
その後、次のように入力してファイアウォールを有効にできます。
ufw enable
「 + a +
」と入力し、 `+ ENTER`を押して続行します。 次のように入力すると、SSH接続が引き続き許可されていることがわかります。
ufw status
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
*ファイアウォールは現在、SSH *を除くすべての接続をブロックしているため、追加のサービスをインストールして構成する場合は、受け入れ可能なトラフィックを許可するようにファイアウォール設定を調整する必要があります。 https://www.digitalocean.com/community/tutorials/ufw-essentials-common-firewall-rules-and-commands [このガイド]で、いくつかの一般的なUFW操作を学ぶことができます。
ステップ5-通常ユーザーの外部アクセスを有効にする
日常的に使用する通常のユーザーがいるので、アカウントに直接SSHで接続できることを確認する必要があります。
新しいユーザーのSSHアクセスを設定するプロセスは、サーバーの* root *アカウントが認証にパスワードまたはSSHキーを使用するかどうかによって異なります。
ルートアカウントがパスワード認証を使用する場合
パスワードを使用して root *アカウントにログインした場合、SSHのパスワード認証が有効になります。 新しいターミナルセッションを開き、新しいユーザー名でSSHを使用して、新しいユーザーアカウントにSSHで接続できます。
ssh @
通常のユーザーのパスワードを入力すると、ログインします。 管理者権限でコマンドを実行する必要がある場合、次のように「+ sudo」の前に入力してください。
sudo
各セッションで初めて(およびその後定期的に) `+ sudo +`を使用すると、通常のユーザーパスワードの入力を求められます。
サーバーのセキュリティを強化するには、パスワード認証を使用する代わりにSSHキーを設定することを強くお勧めします。 キーの設定方法については、https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys-on-ubuntu-1804 [Ubuntu 18.04でのSSHキーのセットアップ]のガイドに従ってください。ベースの認証。
ルートアカウントがSSHキー認証を使用する場合
_SSHキーを使用して* root *アカウントにログインした場合、SSHのパスワード認証は_disabled_です。 正常にログインするには、新しいユーザーの `+〜/ .ssh / authorized_keys`ファイルにローカル公開キーのコピーを追加する必要があります。
公開鍵は既にサーバー上の* root *アカウントの `+〜/ .ssh / authorized_keys +`ファイルにあるため、既存のセッションでそのファイルとディレクトリ構造を新しいユーザーアカウントにコピーできます。
正しい所有権とパーミッションでファイルをコピーする最も簡単な方法は、 `+ rsync `コマンドを使用することです。 これにより、* root *ユーザーの ` .ssh +`ディレクトリがコピーされ、パーミッションが保持され、ファイル所有者がすべて単一のコマンドで変更されます。 通常のユーザーの名前に合わせて、以下のコマンドの強調表示された部分を必ず変更してください。
rsync --archive --chown=: ~/.ssh /home/
次に、新しいターミナルセッションを開き、新しいユーザー名でSSHを使用します。
ssh @
パスワードを使用せずに、新しいユーザーアカウントにログインする必要があります。 管理者権限でコマンドを実行する必要がある場合、次のように「+ sudo」の前に入力してください。
sudo
各セッションで初めて(およびその後定期的に) `+ sudo +`を使用すると、通常のユーザーパスワードの入力を求められます。
ここからどこへ行く?
この時点で、サーバーの強固な基盤ができました。 サーバーに必要なソフトウェアを今すぐインストールできます。