CentOS 7での初期サーバーセットアップ

前書き

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

[[step-one -—- root-login]] ==ステップ1—ルートログイン

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

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

ssh root@SERVER_IP_ADDRESS

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

ルートについて

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

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

[[step-two --- create-a-new-user]] ==ステップ2—新しいユーザーを作成します

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

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

adduser demo

次に、新しいユーザーにパスワードを割り当てます(ここでも、作成したユーザーを「デモ」に置き換えます)。

passwd demo

強力なパスワードを入力し、もう一度確認して確認してください。

[[step-three -—- root-privileges]] ==ステップ3—ルート特権

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

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

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

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

gpasswd -a demo wheel

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

[[step-four --- add-public-key-authentication-recommended]] ==ステップ4—公開鍵認証を追加する(推奨)

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

キーペアを生成する

公開キーと秘密キーで構成されるSSHキーペアがまだない場合は、生成する必要があります。 使用するキーがすでにある場合は、Copy the Public Keyステップにスキップしてください。

新しいキーペアを生成するには、local machineのターミナルで次のコマンドを入力します。

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キーを押して、このファイル名とパスを受け入れます(または新しい名前を入力します)。

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

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

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

公開鍵をコピーする

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

[。注意]##

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

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

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

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

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

ssh-copy-id demo@SERVER_IP_ADDRESS

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

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

前の手順を使用してSSHキーペアを生成したとすると、次のコマンドat the terminal of your local machineを使用して公開キー(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キーを使用して新しいリモートユーザーとして認証できるようにするには、ユーザーのホームディレクトリにある特別なファイルに公開キーを追加する必要があります。

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

su - demo

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

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

mkdir .ssh
chmod 700 .ssh

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

vi .ssh/authorized_keys

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

:x、次にENTERと入力して、ファイルを保存して終了します。

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

chmod 600 .ssh/authorized_keys

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

exit

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

キー認証の仕組みの詳細については、次のチュートリアルをお読みください:How To Configure SSH Key-Based Authentication on a Linux Server

[[step-five -—- configure-ssh-daemon]] ==ステップ5—SSHデーモンを構成します

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

ルートとしてテキストエディタで設定ファイルを開くことから始めます。

vi /etc/ssh/sshd_config

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

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

/etc/ssh/sshd_config (before)

#PermitRootLogin yes

ヒント:この行を検索するには、/PermitRootと入力し、ENTERを押します。 これにより、カーソルがその行の「P」文字に移動します。

「#」記号を削除して、行のコメントを解除します(Shift-xを押します)。

次に、cを押して、カーソルを「はい」に移動します。

次に、cwを押してから「いいえ」と入力して、「はい」を置き換えます。 編集が終わったら、Escapeを押します。 これは次のようになります。

/etc/ssh/sshd_config (after)

PermitRootLogin no

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

:x、次にENTERと入力して、ファイルを保存して終了します。

SSHをリロードする

変更を行ったので、新しい構成を使用するためにSSHサービスを再起動する必要があります。

これを入力してSSHを再起動します。

systemctl reload sshd

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

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

上記で構成したサーバーの場合、このコマンドを使用して接続します。 適切な場合は、独自の情報に置き換えてください。

ssh demo@SERVER_IP_ADDRESS

Note: PuTTYを使用してサーバーに接続している場合は、サーバーの現在の構成と一致するようにセッションのport番号を更新してください。

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

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

sudo command_to_run

すべて順調であれば、次のように入力してセッションを終了できます。

exit

ここからどこへ行く?

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

サーバーで何をしたいかわからない場合は、このシリーズの次のチュートリアルでAdditional Recommended Steps for New CentOS 7 Serversを確認してください。 fail2banを有効にしてブルートフォース攻撃の効果を減らす、基本的なファイアウォール設定、NTP、スワップファイルなどについて説明します。 また、一般的なWebアプリケーションのセットアップ方法を示すチュートリアルへのリンクも提供します。

探索したいだけの場合は、残りのcommunityを見て、他のチュートリアルを見つけてください。 いくつかの人気のあるアイデアは、LAMP stackまたはLEMP stackを構成することです。これにより、
を使用してWebサイトをホストできます。