はじめに
新しいサーバーを最初に作成するときは、基本的なセットアップの一環として早期に実行す これにより、サーバーのセキュリティと使いやすさが向上し、後続のアクションのための強固な基盤が得られます。
Step One—Root Login
サーバーにログインするには、サーバーのパブリックIPアドレスと”root”ユーザーのアカウントのパスワードを知る必要があります。 まだサーバーにログインしていない場合は、このシリーズの最初のチュートリアル「SSHでDropletに接続する方法」に従うことをお勧めします。
まだサーバーに接続していない場合は、次のコマンドを使用してroot
ユーザーとしてログインします(強調表示された単語をサーバーのパブリックIPア パスワードを使用してサーバーに初めてログインする場合は、rootパスワードを変更するよう求められます。
Rootについて
rootユーザーは、非常に広範な権限を持つLinux環境の管理ユーザーです。 Rootアカウントの特権が高まっているため、実際には定期的に使用することはお勧めしません。 これは、ルートアカウントに固有の力の一部が、偶然であっても非常に破壊的な変更を行う能力であるためです。
次のステップは、日常の仕事のための影響の範囲が縮小された代替ユーザーアカウントを設定することです。 私たちは、あなたがそれらを必要とする時代に増加した特権を得る方法をお教えします。
ステップ2—新しいユーザーを作成します
あなたはroot
としてログインしたら、我々は今からログインするために使
この例では、”demo”という新しいユーザーを作成しますが、それを好きなユーザー名に置き換える必要があります:次に、新しいユーザーにパスワードを割り当てます(ここでも、作成したユーザーに”demo”を置き換えます)。
- passwd demo
強力なパスワードを入力し、もう一度繰り返しこれで、通常のアカウント権限を持つ新しいユーザーアカウントが作成されました。 ただし、管理タスクを実行する必要がある場合があります。
通常のユーザーからログアウトし、rootアカウントとして再度ログインする必要がないようにするには、通常のアカウントに”スーパーユーザー”またはroot権限と これにより、通常のユーザーは、各コマンドの前にsudo
という単語を置くことによって、管理者権限でコマンドを実行できます。
これらの権限を新しいユーザーに追加するには、新しいユーザーを”wheel”グループに追加する必要があります。 デフォルトでは、CentOS7では、”wheel”グループに属するユーザーはsudo
コマンドの使用が許可されています。
としてroot
、このコマンドを実行して新しいユーザーをwheelグループに追加します(強調表示された単語を新しいユーザーに置き換えます)。:p>
- gpasswd -a demo wheel
今、あなたのユーザーはスーパーユーザー権限でコマンドを実行することができます! これがどのように機能するかの詳細については、sudoersチュートリアルをチェックしてくださ
ステップ4—公開キー認証の追加(推奨)
サーバーを保護するための次のステップは、新しいユーザーの公開キー認証を設定することです。 これを設定すると、ログインするために秘密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つの簡単な方法について説明します。注:Dropletの作成中にSSHキーが選択された場合、DigitalOceanではssh-copy-id
メソッドは機能しません。 これは、DigitalOceanがSSHキーが存在する場合にパスワード認証を無効にし、ssh-copy-id
がパスワード認証に依存してキーをコピーするためです。DigitalOceanを使用していて、Dropletの作成時にSSHキーを選択した場合は、代わりにオプション2を使用します。
オプション1:ssh-copy-idを使用する
ローカルマシンにssh-copy-id
スクリプトがインストールされている場合は、それを使用して、ログイン資格情報を持っている任意のユーザーに公開鍵をインストールすることができます。p>
キーをインストールするサーバーのユーザーとIPアドレスを次のように指定して、ssh-copy-id
スクリプトを実行します:
- ssh-copy-id [email protected]_IP_ADDRESS
プロンプトでパスワードを入力すると、公開鍵がリモートユーザーの.ssh/authorized_keys
ファイルに追加されます。 対応する秘密鍵を使用してサーバーにログインできるようになりました。
オプション2:キーを手動でインストールする
前の手順を使用してSSHキーペアを生成したと仮定すると、ローカルマシンの端末で次のコマンドを使用して公開キーを印刷します(id_rsa.pub
):
- cat ~/.ssh/id_rsa.pub
これは公開SSHキーを印刷する必要があります。:p>
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 - demo
新しいユーザーのホームディ
という新しいディレクトリを作成します.ssh
次のコマンドで権限を制限します。
- mkdir .ssh
- chmod 700 .ssh
今すぐファイルを開きます。sshは、テキストエディタでauthorized_keys
と呼ばれます。 Viを使用してファイルを編集します。
- vi .ssh/authorized_keys
i
ESC
:x
ENTER
と入力します。
次のコマンドでauthorized_keysファイルの権限を制限します。
- chmod 600 .ssh/authorized_keys
このコマンドを一度入力してroot
ユーザーに戻ります。
- exit
秘密鍵を認証として使用して、新しいユーザーとしてSSHログインすることができます。鍵認証の仕組みの詳細については、このチュートリアル「LinuxサーバーでSSH鍵ベースの認証を構成する方法」を参照してください。
ステップファイブ—SSHデーモンの設定
新しいアカウントができたので、SSHデーモンの設定(リモートでログインできるプログラム)を変更して、rootアカウ
まず、テキストエディタをrootとして設定ファイルを開きます。
- vi /etc/ssh/sshd_config
ここでは、SSH経由でrootログインを無効にするオプションがあります。 通常のユーザーアカウントを介してサーバーにアクセスし、必要に応じて特権を昇格できるようになったため、これは一般的により安全な設定です。/etc/ssh/sshd_config(before)
#PermitRootLogin yes
ヒント:この行を検索するには、/PermitRoot
ENTER
を押します。 これにより、カーソルはその行の”P”文字に移動します。
“#”記号を削除して行のコメントを解除します(Shift-x
c
を押してカーソルを”はい”に移動します。
「はい」を置き換えて、cw
Escape
を押します。 これは次のようになります。
PermitRootLogin no
リモートルートログインを無効にすることは、すべてのサーバーで強くお勧めします!ファイルを保存して終了するには、:x
ENTER
と入力します。変更を加えたので、新しい設定を使用するようにSSHサービスを再起動する必要があります。SSHを再起動するには、これを入力します。
:
- systemctl reload sshd
さて、サーバーからログアウトする前に、新しい設定をテストする必要があります。 新しい接続が正常に確立できることを確認するまで、切断したくありません。
新しいターミナルウィンドウを開きます。 新しいウィンドウで、サーバーへの新しい接続を開始する必要があります。 今回は、rootアカウントを使用する代わりに、作成した新しいアカウントを使用します。
上記で構成したサーバーの場合は、このコマンドを使用して接続します。 適切な場所で独自の情報を置き換えます。
- ssh [email protected]_IP_ADDRESS
注: PuTTYを使用してサーバーに接続する場合は、セッションのポート番号をサーバーの現在の設定と一致するように更新してください。
設定した新しいユーザーのパスワードの入力を求めるメッセージが表示されます。 その後、新しいユーザーとしてログインします。
覚えておいて、root権限でコマンドを実行する必要がある場合は、次のように”sudo”と入力します。
- sudo command_to_run
すべてが正常であれば、次のように入力してセッシこの時点で、サーバーの強固な基盤が確立されています。 あなたは今、あなたのサーバー上に必要なソフトウェアのいずれかをインストールすることができます。
サーバーで何をしたいのかわからない場合は、このシリーズの次のチュートリアルで、新しいCentOS7サーバーの推奨される追加の手順を確認してください。 これは、ブルートフォース攻撃、基本的なファイアウォール設定、NTP、およびスワップファイルの有効性を減らすためにfail2ban
を有効にするようなも また、一般的なwebアプリケーションの設定方法を示すチュートリアルへのリンクも提供します。
あなただけの探求したい場合は、より多くのチュートリアルを見つけるために私たちのコミュニティの残りの部分を見てみましょう。 いくつかの人気のあるアイデアは、あなたがウェブサイトをホストすることができますLAMPスタックまたはLEMPスタックを設定しています。