サーバーの初期設定にはUbuntu16.04を使用します

前書き ##

新しいUbuntu16.04サーバーを初めて作成するときは、基本セットアップの一部として、できるだけ早くいくつかの構成手順を実行する必要があります。これにより、サーバーのセキュリティと可用性が向上し、後続の操作の強固な基盤が築かれます。

ステップ1-ルートログイン

サーバーにログインするには、サーバーのパブリックIPアドレスを知っている必要があります。パスワードも必要です。認証用にSSHキーをインストールした場合は、「root」ユーザーアカウントの秘密キーも必要です。

サーバーに接続していない場合は、次のコマンドを使用して「root」ユーザーとしてログインし続けます(強調表示された単語をサーバーのパブリックIPアドレスに置き換えます)。

ssh root@your_server_ip

ホストの信頼性に関する警告(表示されている場合)を受け入れてログインプロセスを完了し、ルート認証(パスワードまたは秘密鍵)を提供します。パスワードを使用してサーバーにログインするのが初めての場合、システムはルートパスワードの変更を求めるプロンプトも表示します。

ルートについて

rootユーザーは、非常に幅広い権限を持つLinux環境の管理ユーザーです。ルートアカウントの権限が増加しているため、実際には定期的に使用することは推奨されていません。これは、ルートアカウントの固有の能力の一部が、偶然でも非常に破壊的な変更を加える機能であるためです。

次のステップは、代替ユーザーアカウントを設定して、日常業務の範囲を縮小することです。必要に応じて、より多くの特権を取得する方法を説明します。

ステップ2-新しいユーザーを作成する

rootユーザーとしてログインすると、これからログインするために使用する新しいユーザーアカウントを追加する準備が整います。

この例では、「sammy」という名前の新しいユーザーを作成しますが、これをお気に入りのユーザー名に置き換える必要があります。

adduser sammy

アカウントのパスワードから始めて、いくつかの質問があります。

強力なパスワードを入力してください。必要に応じて、その他の情報を入力することもできます。これは必須ではありません。スキップするフィールドをスキップするには、「ENTER」をクリックするだけです。

ステップ3-ルート権限

これで、通常のアカウント権限を持つ新しいユーザーアカウントができました。ただし、管理タスクを実行する必要がある場合があります。

通常のユーザーからログアウトしてrootアカウントとして再度ログインする必要がないように、通常のアカウントにいわゆる「スーパーユーザー」またはroot権限を設定できます。これにより、通常のユーザーは、各コマンドの前に「sudo」という単語を配置することで、管理者権限でコマンドを実行できます。

これらの権限を新しいユーザーに追加するには、新しいユーザーを「sudo」グループに追加する必要があります。デフォルトでは、Ubuntu 16.04では、「sudo」グループに属するユーザーは「sudo」コマンドを使用できます。

rootについては、次のコマンドを実行して、新しいユーザーを* sudo *グループに追加します(強調表示された単語を新しいユーザーに置き換えます)。

usermod -aG sudo sammy

これで、ユーザーはスーパーユーザー権限でコマンドを実行できます。

サーバーのセキュリティを向上させたい場合は、このチュートリアルの残りの手順に従ってください。

ステップ4-公開鍵認証を追加する(推奨)

サーバーを保護するための次のステップは、新しいユーザーの公開鍵認証を設定することです。このオプションを設定すると、秘密鍵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)を使用してください。

**オプション1:ssh-copy-id **を使用する####

スクリプト ssh-copy-idがローカルコンピューターにインストールされている場合は、それを使用して、ログイン資格情報を持っている任意のユーザーに公開キーをインストールできます。

以下に示すように、キーをインストールするサーバーのユーザーとIPアドレスを指定して、 ssh-copy-idスクリプトを実行します。

ssh-copy-id sammy@your_server_ip

プロンプトでパスワードを入力すると、公開キーがリモートユーザーの .ssh / authorized_keysファイルに追加されます。これで、対応する秘密鍵を使用してサーバーにログインできます。

オプション2:キーを手動でインストールする

前の手順を使用して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キーを使用してユーザーとしてログインできます。

次に、パスワード認証を無効にしてサーバーのセキュリティを向上させる方法を示します。

手順5-パスワード検証を無効にする(推奨)

新しいユーザーがSSHキーを使用してログインできるようになったので、パスワードのみの認証を無効にすることでサーバーのセキュリティを強化できます。これを行うと、サーバーへのSSHアクセスが公開鍵認証のみに制限されます。つまり、サーバー(コンソールを除く)にログインする唯一の方法は、秘密鍵をインストールされている公開鍵とペアにすることです。

**注:**前のセクションのステップ4で提案されているようにユーザーの公開鍵をインストールすると、パスワード検証のみが無効になります。そうしないと、サーバーがロックされます。

サーバーでパスワード検証を無効にするには、以下の手順に従います。

SSHデーモン構成を** root ****ユーザーまたは新しいsudoユーザー**として開きます。

sudo nano /etc/ssh/sshd_config

PasswordAuthenticationを指定している行を見つけ、前のを削除してコメントを解除し、その値を「no」に変更します。変更を加えると、次のようになります。

PasswordAuthentication no

以下は、キーのみの認証に重要な他の2つの設定、デフォルト設定です。以前にこのファイルを変更したことがない場合は、次の設定を変更する必要はありません。

PubkeyAuthentication yes
ChallengeResponseAuthentication no

変更を加えた後、前に確認した方法( CTRL-X YENTER)を使用して、ファイルを保存して閉じます。

SSHデーモンをリロードするために入力します。

sudo systemctl reload sshd

パスワードの確認が無効になりました。これで、SSHキー認証を介してのみサーバーにアクセスできます。

ステップ6-ログインのテスト

ここで、サーバーからログアウトする前に、新しい構成をテストする必要があります。 SSH経由で正常にログインできるようになるまで、切断しないでください。

ローカルコンピューターの新しい端末で、作成した新しいアカウントを使用してサーバーにログインします。これを行うには、次のコマンドを使用します(ユーザー名とサーバーのIPアドレスを置き換えます)。

ssh sammy@your_server_ip

手順4と手順5で説明したように、公開鍵認証をユーザーに追加すると、秘密鍵が認証に使用されます。それ以外の場合は、ユーザーパスワードの入力を求められます。

**キー認証に関する注意:**パスワードを使用してキーペアを作成すると、キーパスワードの入力を求められます。それ以外の場合、キーペアがパスフレーズでない場合は、パスワードなしでサーバーにログインする必要があります。

サーバーに認証が提供されたら、新しいユーザーとしてログインします。

root権限でコマンドを実行する必要がある場合は、その前に「sudo」と入力することを忘れないでください。

sudo command_to_run

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

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

サーバーの初期設定にはUbuntu16.04を使用します
14.10に適用可能なUbuntu13.10でQQを使用する
Ubuntu18.04サーバーバージョンのインストールと使用(グラフィック)
Ubuntu16.04でSambaサーバーを使用する方法
Ubuntuの使用上の注意
ubuntu zip / unzipの使用
Prometheusを使用してUbuntu14.04サーバーを監視する方法
ubuntuのスケジュールされたタスクにcrontabを使用する
Azure上のUbuntuサーバーの自動更新を構成する
Ubuntuインストールのマニュアル
ubuntuでスーパーバイザーを使用する
ubuntuでiptablesを使用する
UbuntuTouch環境のセットアップ
Ubuntu16.04環境でFTPサーバーをセットアップするためのチュートリアル
ubuntuの下にFTPサーバーをデプロイします
[Linux] Sambaサーバーのビルド(ubuntu16.04)
Ubuntu Server14.04にOpenSSL1.0.2をインストールします
Ubuntuサーバー第8章DNSサービス
ubuntu16.04ビルドpptpdV **サーバー
Ubuntuサーバー第3章パッケージ管理
UbuntuでのAnacondaの使用
ubuntuの下で崇高なtexを使用する
Ubuntuサーバー第7章リモート管理
サーバーアップグレードUbuntu20.04LTSレコード
Ubuntu12.04クロスコンパイルサーバーを構築する
ubuntuでのmediawikiの使用
サーバーアップグレードUbuntu20.04LTSレコード
UbuntuサーバーはJavaWebサーバーを構築します
Ubuntuはsquidプロキシサーバーを展開します
ubuntuルートのデフォルトパスワード(初期パスワード)
Ubuntu16.04ビルドGitLabサーバーチュートリアル