序章

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

ステップ1—ルートとしてログインする

サーバーにログインするには、サーバーのパブリックIPアドレスを知っている必要があります。 パスワード、または認証用にSSHキーをインストールした場合は、rootユーザーのアカウントの秘密キーも必要になります。 サーバーにまだログインしていない場合は、 SSH を使用してDropletに接続する方法に関するガイドに従ってください。このガイドでは、このプロセスについて詳しく説明しています。

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

  1. ssh root@your_server_ip

ホストの信頼性に関する警告が表示された場合は、それを受け入れます。 パスワード認証を使用している場合は、rootパスワードを入力してログインします。 パスフレーズで保護されたSSHキーを使用している場合、セッションごとに初めてキーを使用するときにパスフレーズの入力を求められる場合があります。 パスワードを使用してサーバーに初めてログインする場合は、rootパスワードを変更するように求められることもあります。

ルートについて

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

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

ステップ2—新しいユーザーの作成

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

:一部の環境では、LDAPなどのネームサーバーへの要求を高速化するために、unscdというパッケージがデフォルトでインストールされる場合があります。 Debianで現在利用可能な最新バージョンには、バグが含まれており、特定のコマンド(以下のadduserコマンドなど)が次のような追加の出力を生成します。

sent invalidate(passwd) request, exiting
sent invalidate(group) request, exiting

これらのメッセージは無害ですが、回避したい場合は、ユーザー情報にLDAPなどのシステムを使用する予定がない場合は、unscdパッケージを削除しても安全です。

  1. apt remove unscd

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

  1. adduser sammy

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

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

ステップ3—管理者権限の付与

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

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

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

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

  1. usermod -aG sudo sammy

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

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

Debianサーバーはファイアウォールを使用して、特定のサービスへの接続のみが許可されていることを確認できます。 iptablesファイアウォールはデフォルトでインストールされていますが、Debianは特定のファイアウォールを強く推奨していません。 このガイドでは、UFWファイアウォールをインストールして使用し、ポリシーの設定と例外の管理を支援します。

aptパッケージマネージャーを使用してUFWをインストールできます。 ローカルインデックスを更新して利用可能なパッケージに関する最新情報を取得し、次のように入力してファイアウォールをインストールします。

  1. apt update
  2. apt install ufw

注:サーバーがDigitalOceanで実行されている場合は、UFWファイアウォールの代わりに DigitalOcean CloudFirewallsをオプションで使用できます。 デバッグが困難な可能性のあるルールの競合を回避するために、一度に1つのファイアウォールのみを使用することをお勧めします。

ファイアウォールプロファイルにより、UFWはアプリケーションのファイアウォールルールのセットを名前で管理できます。 一部の一般的なソフトウェアのプロファイルはデフォルトでUFWにバンドルされており、パッケージはインストールプロセス中に追加のプロファイルをUFWに登録できます。 現在サーバーに接続できるサービスであるOpenSSHには、使用できるファイアウォールプロファイルがあります。

次のように入力すると、これを確認できます。

  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操作を学ぶことができます。

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

日常的に使用する通常のユーザーがいるので、アカウントに直接SSHで接続できることを確認する必要があります。

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

新しいユーザーのSSHアクセスを構成するプロセスは、サーバーのrootアカウントが認証にパスワードまたはSSHキーのどちらを使用するかによって異なります。

ルートアカウントがパスワード認証を使用する場合

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

  1. ssh sammy@your_server_ip

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

  1. sudo command_to_run

sudoを各セッションで初めて使用するとき(およびその後定期的に)、通常のユーザーパスワードの入力を求められます。

サーバーのセキュリティを強化するために、パスワード認証を使用する代わりにSSHキーを設定することを強くお勧めします。 Debian 9 でのSSHキーの設定に関するガイドに従って、キーベースの認証を構成する方法を学習してください。

ルートアカウントがSSHキー認証を使用する場合

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

公開鍵はすでにサーバー上のrootアカウントの~/.ssh/authorized_keysファイルにあるため、 [を使用した既存のセッションで、そのファイルとディレクトリ構造を新しいユーザーアカウントにコピーできます。 X201X]コマンド。 その後、chownコマンドを使用してファイルの所有権を調整できます。

以下のコマンドの強調表示された部分を、通常のユーザーの名前と一致するように変更してください。

  1. cp -r ~/.ssh /home/sammy
  2. chown -R sammy:sammy /home/sammy/.ssh

次に、新しいターミナルセッションを開き、新しいユーザー名でSSHを使用します。

  1. ssh sammy@your_server_ip

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

  1. sudo command_to_run

sudoを各セッションで初めて使用するとき(およびその後定期的に)、通常のユーザーパスワードの入力を求められます。

ステップ6—オプションの構成を完了する

強力なベースライン構成ができたので、システムをよりアクセスしやすくするためのいくつかのオプションの手順を検討できます。 次のセクションでは、使いやすさに焦点を当てたいくつかの追加の調整について説明します。

マニュアルページのインストール

Debianは、ほとんどのソフトウェアの広範なマニュアルをmanページの形式で提供しています。 ただし、manコマンドは、最小限のインストールではデフォルトで常に含まれているとは限りません。

man-dbパッケージをインストールして、manコマンドと手動データベースをインストールします。

  1. sudo apt install man-db

ここで、コンポーネントのマニュアルを表示するには、次のように入力します。

  1. man command

たとえば、topコマンドのマニュアルを表示するには、次のように入力します。

  1. man top

Debianリポジトリのほとんどのパッケージには、インストールの一部としてマニュアルページが含まれています。

デフォルトエディタの変更

Debianは多種多様なテキストエディタを提供しており、そのうちのいくつかはベースシステムに含まれています。 visudosystemctl editなど、エディターをサポートする統合コマンドは、システムのデフォルトエディターにマップされているeditorコマンドにテキストを渡します。 好みに応じてデフォルトのエディターを設定すると、システムをより簡単に構成し、フラストレーションを回避するのに役立ちます。

ご希望のエディタがデフォルトでインストールされていない場合は、aptを使用して最初にインストールしてください。

  1. sudo apt install your_preferred_editor

次に、update-alternativesコマンドを使用して、現在のデフォルトを表示し、選択を変更できます。

  1. sudo update-alternatives --config editor

このコマンドは、デフォルトを変更するためのプロンプトとともに、知っているエディターのテーブルを表示します。

Output
There are 8 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/joe 70 auto mode 1 /bin/nano 40 manual mode 2 /usr/bin/jmacs 50 manual mode 3 /usr/bin/joe 70 manual mode 4 /usr/bin/jpico 50 manual mode 5 /usr/bin/jstar 50 manual mode 6 /usr/bin/rjoe 25 manual mode 7 /usr/bin/vim.basic 30 manual mode 8 /usr/bin/vim.tiny 15 manual mode Press <enter> to keep the current choice[*], or type selection number:

左端の列のアスタリスクは、現在の選択を示します。 デフォルトを変更するには、ご希望のエディターの「選択」番号を入力して、Enterを押します。 たとえば、上記の表でnanoをデフォルトのエディターとして使用するには、1を選択します。

Output
Press <enter> to keep the current choice[*], or type selection number: 1 update-alternatives: using /bin/nano to provide /usr/bin/editor (editor) in manual mode

今後は、visudosystemctl editなどのコマンド、またはeditorコマンドが呼び出されたときにお好みのエディターが使用されます。

ここからどこへ行くの?

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