前書き
最初に新しいDebian 8サーバーを作成するとき、基本セットアップの一部として早期に実行する必要があるいくつかの構成手順があります。 これにより、サーバーのセキュリティと使いやすさが向上し、その後のアクションの強固な基盤が得られます。
ステップ1-ルートログイン
サーバーにログインするには、サーバーのパブリックIPアドレスと「root」ユーザーのアカウントのパスワードを知っている必要があります。 サーバーにまだログインしていない場合は、このシリーズの最初のチュートリアル(https://www.digitalocean.com/community/tutorials/how-to-connect-to-your-droplet-with-)に従うことをお勧めします。 ssh [SSHでドロップレットに接続する方法]。このプロセスについて詳しく説明しています。
サーバーにまだ接続していない場合は、次のコマンドを使用して「+ root +」ユーザーとしてログインします(強調表示された単語をサーバーのパブリックIPアドレスに置き換えます)。
ssh root@
ホスト認証に関する警告が表示された場合はそれを受け入れ、ルート認証(パスワードまたは秘密キー)を提供して、ログインプロセスを完了します。 パスワードを使用してサーバーに初めてログインする場合は、rootパスワードを変更するように求められます。
ルートについて
rootユーザーは、非常に幅広い特権を持つLinux環境の管理ユーザーです。 ルートアカウントの特権が高められているため、実際には定期的に使用することはできません。 これは、ルートアカウントに固有のパワーの一部が、偶然であっても非常に破壊的な変更を加えることができるためです。
次のステップは、日常業務の影響範囲を減らした代替ユーザーアカウントを設定することです。 必要なときに特権を増やす方法を説明します。
ステップ2-新しいユーザーを作成する
`+ root`としてログインすると、これからログインするために使用する新しいユーザーアカウントを追加する準備が整います。
この例では、「demo」という名前の新しいユーザーを作成しますが、好きなユーザー名に置き換える必要があります。
adduser
アカウントのパスワードから始めて、いくつか質問があります。
強力なパスワードを入力し、必要に応じて任意の追加情報を入力します。 これは必須ではなく、スキップしたいフィールドで「ENTER」を押すだけです。
ステップ3-ルート権限
これで、通常のアカウント特権を持つ新しいユーザーアカウントが作成されました。 ただし、管理タスクを実行する必要がある場合があります。
通常のユーザーからログアウトしてルートアカウントとして再度ログインする必要を回避するために、通常のアカウントに「スーパーユーザー」またはルート権限と呼ばれるものを設定できます。 これにより、通常のユーザーは、各コマンドの前に「+ sudo +」という単語を追加することにより、管理者権限でコマンドを実行できます。
Sudoをインストールする
Debian 8には `+ sudo +`がインストールされていないため、apt-getでインストールしてみましょう。
まず、aptパッケージインデックスを更新します。
apt-get update
次に、このコマンドを使用してsudoをインストールします。
apt-get install sudo
これで、 `+ sudo `および ` visudo +`コマンドを使用できるようになりました。
Sudo特権の付与
これらの特権を新しいユーザーに追加するには、新しいユーザーを「sudo」グループに追加する必要があります。 デフォルトでは、Debian 8では、「sudo」グループに属するユーザーは `+ sudo +`コマンドを使用できます。
`+ root +`として、次のコマンドを実行して新しいユーザーを_sudo_グループに追加します(強調表示された単語を新しいユーザーに置き換えます)。
usermod -a -G sudo
これで、ユーザーはスーパーユーザー権限でコマンドを実行できます! この仕組みの詳細については、https://www.digitalocean.com/community/tutorials/how-to-edit-the-sudoers-file-on-ubuntu-and-centos [このsudoersチュートリアル]をご覧ください。
ステップ4-公開キー認証を追加する(推奨)
サーバーを保護するための次の手順は、新しいユーザーの公開キー認証を設定することです。 これを設定すると、ログインにプライベートSSHキーが必要になるため、サーバーのセキュリティが向上します。
キーペアを生成する
公開キーと秘密キーで構成されるSSHキーペアがまだない場合は、生成する必要があります。 使用するキーが既にある場合は、_公開キーのコピー_ステップに進んでください。
新しいキーペアを生成するには、*ローカルマシン*のターミナルで次のコマンドを入力します(つまり、 お使いのコンピューター):
ssh-keygen
ローカルユーザーの名前が「localuser」であると仮定すると、次のような出力が表示されます。
ssh-keygen outputGenerating public/private rsa key pair.
Enter file in which to save the key (/Users//.ssh/id_rsa):
Returnキーを押して、このファイル名とパスを受け入れます(または新しい名前を入力します)。
次に、キーを保護するためのパスフレーズの入力を求められます。 パスフレーズを入力するか、パスフレーズを空白のままにすることができます。
*注意:*パスフレーズを空白のままにすると、パスフレーズを入力せずに認証に秘密キーを使用できます。 パスフレーズを入力する場合、ログインするには秘密鍵とパスフレーズの両方が必要です。 パスフレーズを使用してキーを保護する方が安全ですが、どちらの方法も用途があり、基本的なパスワード認証よりも安全です。
これにより、_localuser_のホームディレクトリの「+ .ssh 」ディレクトリに、秘密キー「 id_rsa 」と公開キー「 id_rsa.pub +」が生成されます。 秘密鍵は、サーバーにアクセスするべきではない人と共有しないでください。
公開鍵をコピーする
SSHキーペアを生成したら、公開キーを新しいサーバーにコピーします。 これを行う2つの簡単な方法について説明します。
オプション1:ssh-copy-idを使用する
ローカルマシンに `+ ssh-copy-id +`スクリプトがインストールされている場合、それを使用して、ログイン資格情報を持っているユーザーに公開鍵をインストールできます。
次のように、キーをインストールするサーバーのユーザーとIPアドレスを指定して、 `+ ssh-copy-id +`スクリプトを実行します。
ssh-copy-id @
プロンプトでパスワードを入力すると、公開キーがリモートユーザーの `+ .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 -
これで、新しいユーザーのホームディレクトリに移動します。
次のコマンドを使用して、 `+ .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
次のコマンド_once_を入力して、 `+ root +`ユーザーに戻ります。
exit
これで、認証として秘密鍵を使用して、新しいユーザーとしてSSHログインできます。
キー認証の仕組みの詳細については、https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a-linux-server [How LinuxサーバーでSSHキーベース認証を構成するには]。
ステップ5-SSHの構成
新しいアカウントを取得したので、SSHデーモン構成(リモートでログインできるプログラム)を変更してサーバーを少し保護し、* root *アカウントへのリモートSSHアクセスを禁止できます。
ルートとしてテキストエディタで設定ファイルを開くことから始めます。
nano /etc/ssh/sshd_config
ここでは、SSHを介したルートログインを無効にするオプションがあります。 これは、通常のユーザーアカウントを介してサーバーにアクセスし、必要に応じて特権を昇格できるようになったため、通常はより安全な設定です。
リモートルートログインを無効にするには、次のような行を見つける必要があります。
/ etc / ssh / sshd_config(前)
#PermitRootLogin yes
ルートログインを無効にする場合は、この行を次のように「no」に変更できます。
/ etc / ssh / sshd_config(後)
PermitRootLogin no
すべてのサーバーでリモートルートログインを無効にすることを強くお勧めします。
変更が完了したら、前に行った方法( + CTRL-X +
、次に + Y +
、次に + ENTER +
)を使用してファイルを保存して閉じます。
SSHをリロードする
変更を行ったので、新しい構成を使用するためにSSHサービスを再起動する必要があります。
これを入力してSSHを再起動します。
systemctl restart ssh
サーバーからログアウトする前に、新しい構成を*テスト*する必要があります。 新しい接続が正常に確立できることを確認できるまで、接続を切断したくありません。
*新しい*ターミナルウィンドウを開きます。 新しいウィンドウで、サーバーへの新しい接続を開始する必要があります。 今回は、ルートアカウントを使用する代わりに、作成した新しいアカウントを使用します。
ssh @
設定した新しいユーザーのパスワードの入力を求められます。 その後、新しいユーザーとしてログインします。
ルート権限でコマンドを実行する必要がある場合は、次のように「sudo」と入力することを忘れないでください。
sudo
すべて順調であれば、次のように入力してセッションを終了できます。
exit
ここからどこへ行く?
この時点で、Debian 8サーバーの強固な基盤ができました。 サーバーに必要なソフトウェアを今すぐインストールできます。