新しいUbuntu16.04サーバーを初めて作成するときは、基本セットアップの一部として、できるだけ早くいくつかの構成手順を実行する必要があります。これにより、サーバーのセキュリティと可用性が向上し、後続の操作の強固な基盤が築かれます。
サーバーにログインするには、サーバーのパブリックIPアドレスを知っている必要があります。パスワードも必要です。認証用にSSHキーをインストールした場合は、「root」ユーザーアカウントの秘密キーも必要です。
サーバーに接続していない場合は、次のコマンドを使用して「root」ユーザーとしてログインし続けます(強調表示された単語をサーバーのパブリックIPアドレスに置き換えます)。
ssh root@your_server_ip
ホストの信頼性に関する警告(表示されている場合)を受け入れてログインプロセスを完了し、ルート認証(パスワードまたは秘密鍵)を提供します。パスワードを使用してサーバーにログインするのが初めての場合、システムはルートパスワードの変更を求めるプロンプトも表示します。
rootユーザーは、非常に幅広い権限を持つLinux環境の管理ユーザーです。ルートアカウントの権限が増加しているため、実際には定期的に使用することは推奨されていません。これは、ルートアカウントの固有の能力の一部が、偶然でも非常に破壊的な変更を加える機能であるためです。
次のステップは、代替ユーザーアカウントを設定して、日常業務の範囲を縮小することです。必要に応じて、より多くの特権を取得する方法を説明します。
root
ユーザーとしてログインすると、これからログインするために使用する新しいユーザーアカウントを追加する準備が整います。
この例では、「sammy」という名前の新しいユーザーを作成しますが、これをお気に入りのユーザー名に置き換える必要があります。
adduser sammy
アカウントのパスワードから始めて、いくつかの質問があります。
強力なパスワードを入力してください。必要に応じて、その他の情報を入力することもできます。これは必須ではありません。スキップするフィールドをスキップするには、「ENTER」をクリックするだけです。
これで、通常のアカウント権限を持つ新しいユーザーアカウントができました。ただし、管理タスクを実行する必要がある場合があります。
通常のユーザーからログアウトしてrootアカウントとして再度ログインする必要がないように、通常のアカウントにいわゆる「スーパーユーザー」またはroot権限を設定できます。これにより、通常のユーザーは、各コマンドの前に「sudo」という単語を配置することで、管理者権限でコマンドを実行できます。
これらの権限を新しいユーザーに追加するには、新しいユーザーを「sudo」グループに追加する必要があります。デフォルトでは、Ubuntu 16.04では、「sudo」グループに属するユーザーは「sudo」コマンドを使用できます。
root
については、次のコマンドを実行して、新しいユーザーを* sudo *グループに追加します(強調表示された単語を新しいユーザーに置き換えます)。
usermod -aG sudo sammy
これで、ユーザーはスーパーユーザー権限でコマンドを実行できます。
サーバーのセキュリティを向上させたい場合は、このチュートリアルの残りの手順に従ってください。
サーバーを保護するための次のステップは、新しいユーザーの公開鍵認証を設定することです。このオプションを設定すると、秘密鍵SSH鍵ログインが必要になるため、サーバーのセキュリティが向上します。
SSHキーペア(公開キーと秘密キーを含む)がない場合は、キーペアを生成する必要があります。使用するキーがすでにある場合は、公開キーのコピーの手順に進んでください。
新しいキーペアを生成するには、ローカルコンピューター(つまり、コンピューター)の端末で次のコマンドを入力します。
ssh-keygen
ローカルユーザー名が「localuser」であるとすると、次のような出力が表示されます。
Generating public/private rsa key pair.
Enter file in which to save the key(/Users/localuser/.ssh/id_rsa):
[戻る]をクリックして、ファイル名とパスを受け入れます(または新しい名前を入力します)。
次に、キーを保護するためにパスワードを入力するように求められます。パスフレーズを入力するか、パスフレーズを空白のままにすることができます。
**注:**パスワードを空白のままにすると、パスワードを入力しなくても認証に秘密鍵を使用できます。パスフレーズを入力する場合、ログインするには秘密鍵とパスフレーズが必要です。パスフレーズを使用してキーを保護する方が安全ですが、どちらの方法にも用途があり、基本的なパスワード認証よりも安全です。
これにより、* localuser *のホームディレクトリの .ssh
ディレクトリに秘密鍵 id_rsa
と公開鍵 id_rsa.pub
が生成されます。サーバーにアクセスしてはならない人と秘密鍵を共有しないでください。
SSHキーペアを生成した後、公開キーを新しいサーバーにコピーする必要があります。 2つの簡単な方法を紹介します。
注: ssh-copy-id
ドロップレットの作成中にSSHキーが選択された場合、このメソッドはDigitalOceanでは機能しません。これは、SSHキーが存在する場合、DigitalOceanはパスワード検証を無効にし、 ssh-copy-id
はパスワード検証に依存してキーをコピーするためです。
ドロップレットの作成時にDigitalOceanを使用し、SSHキーを選択した場合は、代わりに[オプション2](https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04#option-2-manually-install-the-key)を使用してください。
スクリプト ssh-copy-id
がローカルコンピューターにインストールされている場合は、それを使用して、ログイン資格情報を持っている任意のユーザーに公開キーをインストールできます。
以下に示すように、キーをインストールするサーバーのユーザーとIPアドレスを指定して、 ssh-copy-id
スクリプトを実行します。
ssh-copy-id sammy@your_server_ip
プロンプトでパスワードを入力すると、公開キーがリモートユーザーの .ssh / authorized_keys
ファイルに追加されます。これで、対応する秘密鍵を使用してサーバーにログインできます。
前の手順を使用してSSHキーのペアを生成したとすると、ローカルコンピューターの端末で次のコマンドを使用して公開キー( id_rsa.pub
)を出力してください。
cat ~/.ssh/id_rsa.pub
これにより、公開SSHキーが出力され、次のようになります。
id_rsa.pub contentsssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf [email protected]
公開鍵を選択し、クリップボードにコピーします。
SSHキーを認証用の新しいリモートユーザーとして使用するには、ユーザーのホームディレクトリにある特別なファイルに公開キーを追加する必要があります。
サーバーで、** root **ユーザーとして次のコマンドを入力して、一時的に新しいユーザーに切り替えます(自分のユーザー名を置き換えます)。
su - sammy
ここで、新しいユーザーのホームディレクトリに入ります。
次のコマンドを使用して、 .ssh
という名前の新しいディレクトリを作成し、その権限を制限します。
mkdir ~/.ssh
chmod 700~/.ssh
次に、テキストエディタを使用して、 .ssh
にある authorized_keys
というファイルを開きます。 nano
を使用してファイルを編集します。
nano ~/.ssh/authorized_keys
次に、公開キーをエディターに貼り付けて挿入します(クリップボードにあるはずです)。
「CTRL-x」をクリックしてファイルを終了し、「y」を押して変更を保存してから、「ENTER」を押してファイル名を確認します。
次に、次のコマンドを使用して、* authorized_keys *ファイルのアクセス許可を制限します。
chmod 600~/.ssh/authorized_keys
次のコマンドを** 1回**入力して root
ユーザーに戻ります。
exit
公開キーがインストールされたので、SSHキーを使用してユーザーとしてログインできます。
次に、パスワード認証を無効にしてサーバーのセキュリティを向上させる方法を示します。
新しいユーザーがSSHキーを使用してログインできるようになったので、パスワードのみの認証を無効にすることでサーバーのセキュリティを強化できます。これを行うと、サーバーへのSSHアクセスが公開鍵認証のみに制限されます。つまり、サーバー(コンソールを除く)にログインする唯一の方法は、秘密鍵をインストールされている公開鍵とペアにすることです。
**注:**前のセクションのステップ4で提案されているようにユーザーの公開鍵をインストールすると、パスワード検証のみが無効になります。そうしないと、サーバーがロックされます。
サーバーでパスワード検証を無効にするには、以下の手順に従います。
SSHデーモン構成を** root ****ユーザーまたは新しいsudoユーザー**として開きます。
sudo nano /etc/ssh/sshd_config
PasswordAuthentication
を指定している行を見つけ、前の#
を削除してコメントを解除し、その値を「no」に変更します。変更を加えると、次のようになります。
PasswordAuthentication no
以下は、キーのみの認証に重要な他の2つの設定、デフォルト設定です。以前にこのファイルを変更したことがない場合は、次の設定を変更する必要はありません。
PubkeyAuthentication yes
ChallengeResponseAuthentication no
変更を加えた後、前に確認した方法( CTRL-X
、 Y
、 ENTER
)を使用して、ファイルを保存して閉じます。
SSHデーモンをリロードするために入力します。
sudo systemctl reload sshd
パスワードの確認が無効になりました。これで、SSHキー認証を介してのみサーバーにアクセスできます。
ここで、サーバーからログアウトする前に、新しい構成をテストする必要があります。 SSH経由で正常にログインできるようになるまで、切断しないでください。
ローカルコンピューターの新しい端末で、作成した新しいアカウントを使用してサーバーにログインします。これを行うには、次のコマンドを使用します(ユーザー名とサーバーのIPアドレスを置き換えます)。
ssh sammy@your_server_ip
手順4と手順5で説明したように、公開鍵認証をユーザーに追加すると、秘密鍵が認証に使用されます。それ以外の場合は、ユーザーパスワードの入力を求められます。
**キー認証に関する注意:**パスワードを使用してキーペアを作成すると、キーパスワードの入力を求められます。それ以外の場合、キーペアがパスフレーズでない場合は、パスワードなしでサーバーにログインする必要があります。
サーバーに認証が提供されたら、新しいユーザーとしてログインします。
root権限でコマンドを実行する必要がある場合は、その前に「sudo」と入力することを忘れないでください。
sudo command_to_run
Ubuntu 16.04サーバーは、UFWファイアウォールを使用して、特定のサービスのみが接続を許可されるようにすることができます。このアプリケーションを使用して、基本的なファイアウォールを簡単に設定できます。
さまざまなアプリケーションがUFWを使用して、インストール中に構成ファイルを登録できます。これらの構成ファイルにより、UFWはこれらのアプリケーションを名前で管理できます。 OpenSSHは、サーバーに今すぐ接続できるようにするサービスであり、UFWに構成ファイルを登録します。
次のように入力して表示できます。
sudo ufw app list
Available applications:
OpenSSH
次回再度ログインできるように、ファイアウォールでSSH接続が許可されていることを確認する必要があります。これらの接続を許可するには、次のように入力できます
sudo ufw allow OpenSSH
その後、次のコマンドを入力してファイアウォールを有効にできます。
sudo ufw enable
「y」と入力し、Enterキーを押して続行します。次のように入力すると、SSH接続を表示できます。
sudo ufw status
Status: active
To Action From
------------
OpenSSH ALLOW Anywhere
OpenSSH(v6) ALLOW Anywhere(v6)
他のサービスをインストールして構成する場合は、許容できるトラフィックを許可するようにファイアウォール設定を調整する必要があります。
この時点で、サーバーの基盤はしっかりしています。これで、必要なソフトウェアをサーバーにインストールできます。
その他のUbuntuチュートリアルについては、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細を確認してください。
参照:「Ubuntu16.04を使用したサーバーの初期セットアップ」
Recommended Posts