Debian 9でのサーバーの初期セットアップ

前書き

最初に新しいDebian 9サーバーを作成するとき、基本セットアップの一部として早期に実行する必要があるいくつかの構成手順があります。 これにより、サーバーのセキュリティと使いやすさが向上し、その後のアクションの強固な基盤が得られます。

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

サーバーにログインするには、サーバーのパブリックIPアドレス*を知っている必要があります。 パスワード、または認証用のSSHキーをインストールした場合は、 root *ユーザーのアカウントの秘密キーも必要になります。 サーバーにまだログインしていない場合は、https://www.digitalocean.com/community/tutorials/how-to-connect-to-your-droplet-with-ssh [how to SSHを使用してDropletに接続します]。このプロセスについて詳しく説明します。

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

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

ルートについて

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

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

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

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

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

adduser

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

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

ステップ3-管理特権の付与

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

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

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

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

usermod -aG sudo

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

ステップ4-基本的なファイアウォールのセットアップ

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

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

apt update
apt install ufw

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

これを確認するには、次のように入力します。

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-debian-9 [Debian 9でのSSHキーの設定]のガイドに従ってください。ベースの認証。

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

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

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

通常のユーザーの名前に合わせて、以下のコマンドの強調表示された部分を必ず変更してください。

cp -r ~/.ssh /home/
chown -R : /home//.ssh

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

ssh @

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

sudo

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

ステップ6-オプションの構成の完了

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

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

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

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

sudo apt install man-db

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

man

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

man top

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

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

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

お好みのエディターがデフォルトでインストールされていない場合は、最初に `+ apt +`を使用してインストールします:

sudo apt install

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

sudo update-alternatives --config editor

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

OutputThere 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+」を選択します。

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

これからは、 `+ visudo `や ` systemctl edit `などのコマンドによって、または ` editor +`コマンドが呼び出されたときに、好みのエディターが使用されます。

ここからどこへ行く?

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