開発者ドキュメント

Debian8でのサーバーの初期設定

序章

新しいDebian8サーバーを最初に作成するとき、基本的なセットアップの一部として早い段階で実行する必要のあるいくつかの設定手順があります。 これにより、サーバーのセキュリティと使いやすさが向上し、後続のアクションの強固な基盤が提供されます。

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

サーバーにログインするには、サーバーのパブリックIPアドレスと「root」ユーザーのアカウントのパスワードを知っている必要があります。 サーバーにまだログインしていない場合は、このシリーズの最初のチュートリアルである SSHを使用してドロップレットに接続する方法に従ってください。このチュートリアルでは、このプロセスについて詳しく説明しています。

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

  1. ssh root@SERVER_IP_ADDRESS

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

ルートについて

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

次のステップは、日常業務への影響範囲を減らした代替ユーザーアカウントを設定することです。 必要なときに特権を増やす方法を説明します。

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

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

この例では、「デモ」という新しいユーザーを作成しますが、次のようなユーザー名に置き換える必要があります。

  1. adduser demo

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

強力なパスワードを入力し、必要に応じて、追加情報のいずれかを入力します。 これは必須ではなく、スキップしたい任意のフィールドで「ENTER」を押すだけです。

ステップ3—ルート権限

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

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

Sudoをインストールする

Debian8にはsudoがインストールされていないので、apt-getを使ってインストールしましょう。

まず、aptパッケージインデックスを更新します。

  1. apt-get update

次に、次のコマンドを使用してsudoをインストールします。

  1. apt-get install sudo

これで、sudoおよびvisudoコマンドを使用できるようになりました。

Sudo特権を付与する

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

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

  1. usermod -a -G sudo demo

これで、ユーザーはスーパーユーザー権限でコマンドを実行できます。 これがどのように機能するかについての詳細は、このsudoersチュートリアルをチェックしてください。

サーバーを保護するための次のステップは、新しいユーザーの公開鍵認証を設定することです。 これを設定すると、ログインに秘密のSSHキーが必要になるため、サーバーのセキュリティが向上します。

キーペアを生成する

公開鍵と秘密鍵で構成されるSSH鍵ペアをまだ持っていない場合は、生成する必要があります。 使用する鍵がすでにある場合は、公開鍵のコピーの手順に進んでください。

新しいキーペアを生成するには、ローカルマシンの端末で次のコマンドを入力します(つまり、 お使いのコンピューター):

  1. ssh-keygen

ローカルユーザーが「localuser」と呼ばれるとすると、次のような出力が表示されます。

ssh-keygen output
Generating public/private rsa key pair. Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):

Returnキーを押して、このファイル名とパスを受け入れます(または新しい名前を入力します)。

次に、キーを保護するためのパスフレーズの入力を求められます。 パスフレーズを入力するか、パスフレーズを空白のままにすることができます。

注:パスフレーズを空白のままにすると、パスフレーズを入力しなくても、認証に秘密鍵を使用できるようになります。 パスフレーズを入力する場合、ログインするには秘密鍵の両方のパスフレーズが必要になります。 パスフレーズを使用してキーを保護する方が安全ですが、どちらの方法にも用途があり、基本的なパスワード認証よりも安全です。

これにより、localuserのホームディレクトリの.sshディレクトリに秘密鍵id_rsaと公開鍵id_rsa.pubが生成されます。 サーバーにアクセスできない人と秘密鍵を共有しないでください。

公開鍵をコピーする

SSHキーペアを生成した後、公開キーを新しいサーバーにコピーする必要があります。 これを行う2つの簡単な方法について説明します。

:ドロップレットの作成中にSSHキーが選択された場合、ssh-copy-idメソッドはDigitalOceanでは機能しません。 これは、SSHキーが存在する場合、DigitalOceanがパスワード認証を無効にし、ssh-copy-idがパスワード認証に依存してキーをコピーするためです。

DigitalOceanを使用していて、ドロップレットの作成中にSSHキーを選択した場合は、代わりにオプション2を使用してください。

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

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

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

  1. ssh-copy-id demo@SERVER_IP_ADDRESS

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

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

前の手順を使用してSSHキーペアを生成したとすると、ローカルマシンのターミナルで次のコマンドを使用して公開キー(id_rsa.pub)を出力します。

  1. cat ~/.ssh/id_rsa.pub

これにより、公開SSHキーが出力されます。これは次のようになります。

id_rsa.pub contents
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf localuser@machine.local

公開鍵を選択し、クリップボードにコピーします。

新しいリモートユーザーに公開鍵を追加する

SSHキーを使用して新しいリモートユーザーとして認証できるようにするには、ユーザーのホームディレクトリにある特別なファイルに公開キーを追加する必要があります。

サーバーで、rootユーザーとして、次のコマンドを入力して、新しいユーザーに切り替えます(独自のユーザー名に置き換えてください)。

  1. su - demo

これで、新しいユーザーのホームディレクトリに移動します。

.sshという名前の新しいディレクトリを作成し、次のコマンドを使用してそのアクセス許可を制限します。

  1. mkdir .ssh
  2. chmod 700 .ssh

次に、.sshauthorized_keysというファイルをテキストエディタで開きます。 nanoを使用してファイルを編集します。

  1. nano .ssh/authorized_keys

次に、公開鍵(クリップボードにあるはずです)をエディターに貼り付けて挿入します。

CTRL-Xを押してファイルを終了し、Yを押して変更を保存し、ENTERを押してファイル名を確認します。

次に、次のコマンドを使用して、authorized_keysファイルのアクセス許可を制限します。

  1. chmod 600 .ssh/authorized_keys

次のコマンドonceを入力して、rootユーザーに戻ります。

  1. exit

これで、認証として秘密鍵を使用して、新しいユーザーとしてSSHログインできます。

キー認証の仕組みの詳細については、次のチュートリアルをお読みください:LinuxサーバーでSSHキーベースの認証を構成する方法

ステップ5—SSHを構成する

新しいアカウントができたので、SSHデーモン構成(リモートログインを可能にするプログラム)を変更して、 root アカウントへのリモートSSHアクセスを禁止することにより、サーバーを少し保護できます。

ルートとしてテキストエディタを使用して構成ファイルを開くことから始めます。

  1. nano /etc/ssh/sshd_config

ここでは、SSHを介したrootログインを無効にするオプションがあります。 通常のユーザーアカウントを介してサーバーにアクセスし、必要に応じて権限を昇格できるようになったため、これは通常、より安全な設定です。

リモートルートログインを無効にするには、次のような行を見つける必要があります。

/ etc / ssh / sshd_config(前)
#PermitRootLogin yes

rootログインを無効にする場合は、次のようにこの行を「no」に変更できます。

/ etc / ssh / sshd_config(後)
PermitRootLogin no

すべてのサーバーでリモートルートログインを無効にすることを強くお勧めします。

変更が完了したら、前に説明した方法(CTRL-XYENTER)を使用して、ファイルを保存して閉じます。

SSHをリロード

変更を加えたので、SSHサービスを再起動して、新しい構成を使用できるようにする必要があります。

SSHを再起動するには、次のように入力します。

  1. systemctl restart ssh

ここで、サーバーからログアウトする前に、新しい構成をテストする必要があります。 新しい接続が正常に確立できることを確認できるまで、切断したくありません。

newターミナルウィンドウを開きます。 新しいウィンドウで、サーバーへの新しい接続を開始する必要があります。 今回は、rootアカウントを使用する代わりに、作成した新しいアカウントを使用します。

  1. ssh demo@SERVER_IP_ADDRESS

構成した新しいユーザーのパスワードの入力を求められます。 その後、新しいユーザーとしてログインします。

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

  1. sudo command_to_run

すべてが順調な場合は、次のように入力してセッションを終了できます。

  1. exit

ここからどこへ行くの?

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

モバイルバージョンを終了