序章
新しいUbuntu14.04サーバーを最初に作成するときは、基本的なセットアップの一部として早い段階で実行する必要のあるいくつかの構成手順があります。 これにより、サーバーのセキュリティと使いやすさが向上し、後続のアクションの強固な基盤が提供されます。
ステップ1—ルートログイン
サーバーにログインするには、サーバーのパブリックIPアドレスと「root」ユーザーのアカウントのパスワードを知っている必要があります。 サーバーにまだログインしていない場合は、このシリーズの最初のチュートリアルである SSHを使用してドロップレットに接続する方法に従ってください。このチュートリアルでは、このプロセスについて詳しく説明しています。
サーバーにまだ接続していない場合は、先に進み、次のコマンドを使用してroot
ユーザーとしてログインします(強調表示された単語をサーバーのパブリックIPアドレスに置き換えます)。
ssh root@SERVER_IP_ADDRESS
ホストの信頼性に関する警告が表示された場合はそれを受け入れ、ルート認証(パスワードまたは秘密鍵)を入力して、ログインプロセスを完了します。 パスワードを使用してサーバーに初めてログインする場合は、rootパスワードを変更するように求められます。
ルートについて
rootユーザーは、非常に幅広い特権を持つLinux環境の管理ユーザーです。 rootアカウントの特権が強化されているため、実際には、定期的に使用することを推奨されていません。 これは、rootアカウントに固有の能力の一部が、偶然であっても非常に破壊的な変更を加える能力であるためです。
次のステップは、日常業務への影響範囲を減らした代替ユーザーアカウントを設定することです。 必要なときに特権を増やす方法を説明します。
ステップ2—新しいユーザーを作成する
root
としてログインすると、今後ログインに使用する新しいユーザーアカウントを追加する準備が整います。
この例では、「デモ」という新しいユーザーを作成しますが、次のようなユーザー名に置き換える必要があります。
adduser demo
アカウントのパスワードから始めて、いくつかの質問があります。
強力なパスワードを入力し、必要に応じて、追加情報のいずれかを入力します。 これは必須ではなく、スキップしたい任意のフィールドで「ENTER」を押すだけです。
ステップ3—ルート権限
これで、通常のアカウント権限を持つ新しいユーザーアカウントができました。 ただし、管理タスクを実行する必要がある場合があります。
通常のユーザーからログアウトしてrootアカウントとして再度ログインする必要がないように、通常のアカウントに「スーパーユーザー」またはroot権限と呼ばれるものを設定できます。 これにより、通常のユーザーは、各コマンドの前にsudo
という単語を置くことで、管理者権限でコマンドを実行できるようになります。
これらの特権を新しいユーザーに追加するには、新しいユーザーを「sudo」グループに追加する必要があります。 デフォルトでは、Ubuntu 14.04では、「sudo」グループに属するユーザーはsudo
コマンドを使用できます。
root
として、次のコマンドを実行して、新しいユーザーを sudo グループに追加します(強調表示された単語を新しいユーザーに置き換えます)。
gpasswd -a demo sudo
これで、ユーザーはスーパーユーザー権限でコマンドを実行できます。 これがどのように機能するかについての詳細は、このsudoersチュートリアルをチェックしてください。
ステップ4—公開鍵認証を追加する(推奨)
サーバーを保護するための次のステップは、新しいユーザーの公開鍵認証を設定することです。 これを設定すると、ログインに秘密のSSHキーが必要になるため、サーバーのセキュリティが向上します。
キーペアを生成する
公開鍵と秘密鍵で構成されるSSH鍵ペアをまだ持っていない場合は、SSH鍵を生成する必要があります。 使用する鍵がすでにある場合は、公開鍵のコピーの手順に進んでください。
新しいキーペアを生成するには、ローカルマシンの端末で次のコマンドを入力します(つまり、 お使いのコンピューター):
ssh-keygen
ローカルユーザーの名前が「localuser」であるとすると、次のような出力が表示されます。
ssh-keygen outputGenerating 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
スクリプトを実行します。
ssh-copy-id demo@SERVER_IP_ADDRESS
プロンプトでパスワードを入力すると、公開鍵がリモートユーザーの.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 localuser@machine.local
公開鍵を選択し、クリップボードにコピーします。
新しいリモートユーザーに公開鍵を追加する
SSHキーを使用して新しいリモートユーザーとして認証できるようにするには、ユーザーのホームディレクトリにある特別なファイルに公開キーを追加する必要があります。
サーバーで、root
ユーザーとして、次のコマンドを入力して、新しいユーザーに切り替えます(独自のユーザー名に置き換えてください)。
su - demo
これで、新しいユーザーのホームディレクトリに移動します。
.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ログインできます。
キー認証の仕組みの詳細については、次のチュートリアルをお読みください:LinuxサーバーでSSHキーベースの認証を構成する方法。
ステップ5—SSHデーモンを構成する
新しいアカウントができたので、SSHデーモン構成(リモートログインを可能にするプログラム)を変更して、 root アカウントへのリモートSSHアクセスを禁止することにより、サーバーを少し保護できます。
ルートとしてテキストエディタを使用して構成ファイルを開くことから始めます。
nano /etc/ssh/sshd_config
次に、次のような行を見つける必要があります。
/ etc / ssh / sshd_config(前)
PermitRootLogin yes
ここでは、SSHを介したルートログインを無効にするオプションがあります。 通常のユーザーアカウントを介してサーバーにアクセスし、必要に応じて権限を昇格できるようになったため、これは通常、より安全な設定です。
ルートログインを無効にするには、この行を次のように「no」に変更します。
/ etc / ssh / sshd_config(後)
PermitRootLogin no
すべてのサーバーでリモートルートログインを無効にすることを強くお勧めします。
変更が完了したら、前に説明した方法(CTRL-X
、Y
、ENTER
)を使用して、ファイルを保存して閉じます。
ステップ6–SSHをリロードする
変更を加えたので、SSHサービスを再起動して、新しい構成を使用できるようにする必要があります。
SSHを再起動するには、次のように入力します。
service ssh restart
ここで、サーバーからログアウトする前に、新しい構成をテストする必要があります。 新しい接続が正常に確立できることを確認できるまで、切断したくありません。
ローカルマシンでnewターミナルウィンドウを開きます。 新しいウィンドウで、サーバーへの新しい接続を開始する必要があります。 今回は、rootアカウントを使用する代わりに、作成した新しいアカウントを使用します。
上記の構成方法を示したサーバーの場合、このコマンドを使用して接続します。 必要に応じて、独自のユーザー名とサーバーIPアドレスに置き換えます。
ssh demo@SERVER_IP_ADDRESS
注: PuTTYを使用してサーバーに接続している場合は、サーバーの現在の構成に一致するようにセッションのポート番号を更新してください。
設定した新しいユーザーのパスワードの入力を求められます。 その後、新しいユーザーとしてログインします。
root権限でコマンドを実行する必要がある場合は、次のように前に「sudo」と入力することを忘れないでください。
sudo command_to_run
すべてが順調な場合は、次のように入力してセッションを終了できます。
exit
ここからどこへ行くの?
この時点で、サーバーの強固な基盤ができています。 今すぐサーバーに必要なソフトウェアをインストールできます。
サーバーで何をしたいかわからない場合は、このシリーズの次のチュートリアルで新しいUbuntu14.04サーバーの追加の推奨手順を確認してください。 基本的なファイアウォール設定、NTP、スワップファイルなどをカバーしています。 また、一般的なWebアプリケーションのセットアップ方法を示すチュートリアルへのリンクも提供します。 このガイドをチェックして、fail2ban
を有効にしてブルートフォース攻撃の効果を減らす方法を学ぶこともできます。
探索したいだけの場合は、コミュニティの残りの部分を見て、他のチュートリアルを見つけてください。 人気のあるアイデアのいくつかは、LAMPスタックまたはLEMPスタックを構成することです。これにより、Webサイトをホストできるようになります。