【使用しているVPS】さくらのVPS 2G「CentOS7」環境にminecraftマルチサーバをインストールする手順を解説しています。 OSインストール手順の解説はこちらのページ ファイアウォールのポート開放等のOS設定の解説はこちら CentOS7のインストールに関する情報をメモ書きしています。 ※目次をクリックすると目次の下部にコンテンツが表示されます。 1.ハードディスクとパーティションの情報; 2.インストール方法 … ここでは、先ほど作成したユーザを「wheel」グループに追加し、sudo コマンドが使えるようにします。wheel グループとは、sudo コマンドで root 権限を実行するための、特別なグループです。設定は、「su」コマンドで root に切り替えた後、「usermod」コマンドを使います。標準インストールであれば、OS のデーモン設定、セキュリティ設定、時刻同期など、最低限の設定を済ませてあります。また、OS 再インストールの「カスタム OS インストール」機能からも CentOS 7 を選べます。ただし、カスタム OS インストールでは、OS の初期設定を全て自分で行う必要があります。そのため、初めてのインストールの場合は「標準インストール」のご利用をお勧めします。OS のインストールが終われば、サーバには SSH でログインできます。ログインに必要なユーザ名は「root」、パスワードは OS インストール時に指定したものを使います。あとは、リモートからポート番号を指定して、接続が可能であれば設定は正常です。以下は、 sakura ユーザで、ポート 10022 に接続する例です。あとはログアウトした後(「logout」または「exit」コマンドを入力して SSH 接続を終了)、再度ログインを試みます。このとき、認証にはパスワードを使わず、秘密鍵を指定してログインできることを確認します。CentOS 7 の OS インストール手順については、次のサポート情報をご覧ください。最後にまとめとして、設定を正しく行ったかどうか、改めて動作のご確認をお願いします。サーバにログインできたら、セキュリティを高める設定を進めていきましょう。本チュートリアルでは、安全なサーバ環境を作るために、次の基本設定を行います。さて、作業は sshd_config の設定変更後、firewalld の設定を変えます。次に、一般ユーザで「sudo」コマンドが使えるように設定します。sudo とは、別のユーザとしてコマンドを実行するためのコマンドであり、設定ファイル /etc/sudoers を参照し、一般ユーザでも root と同じ権限で操作可能な状態にします。CentOS 7 では、対象ユーザの次回ログイン以降、設定が有効になります。設定が終われば、対象ユーザでログインできるか確認します。SSH 接続時、ユーザ名を先ほどの「root」ではなく、作成したユーザ名に変更します。また、パスワードを入力し、ログインできるかどうかを確認します。このチュートリアルは、初めて CentOS 7 を利用する方を対象とし、サーバ管理者として最低限行っておくべきセキュリティ対策をご紹介します。具体的には、安全に操作をするための一般ユーザ作成、sudo 設定、SSH サーバ設定を行います。さらに応用として、CentOS 7 で新しく導入された firewalld を活用し、SSH 接続ポートの変更により安全性を高める方法もご紹介します。・Windows で SSH を使う場合 … OS には SSH 接続に必要なソフトウェアが入っていません。そのため、Tera Term や PuTTY など SSH 用ソフトウェアのダウンロードとセットアップが必要です。もし、root でログインできたりパスワード認証が通ったりする場合は、設定の見直しをお願いいたします。初期状態ではログイン可能なユーザは「root」のみです。root はサーバ上で全ての操作が可能な特権ユーザです。そのため、インターネット上の SSH サーバに対する不正アクセスや攻撃対象として日々狙われています。攻撃を受ける危険性を減らすには、root でのログインを禁止し、一般ユーザのみログインを許可する設定を行います、次は、作成したユーザに対して、公開鍵認証の設定を行います。PC などのクライアント側で SSH 接続用の鍵ペア(秘密鍵 id_rsa と、公開鍵 id_rsa.pub の組み合わせ )を作成します。作成後はパスワードではなく、クライアント側の秘密鍵を使ったログインができるように、設定を行います。SSH の次は、 firewalld の設定ファイルを編集します。コマンドを実行して設定ファイルを開きます。これはセキュリティ面や誤操作の防止で役立ちます。sudo コマンドの実行時には、常にログが残ります。また、コマンド実行時、自分のパスワードによる認証を必要とするため、root のパスワードを共有する必要がありません。また、本当に権限が必要な場面でしか root 権限を使わないようにできます。鍵ペア作成後は、公開鍵ファイル(id_rsa.pub)を scp などを使い、サーバ上の作成したユーザのホームディレクトリにアップロードします。アップロード後は、SSH ログインした状態で、公開鍵リスト用ファイル(authorized_keys)に公開鍵を追加します。正常に稼働しているかどうかは、次のようにコマンドを実行し、sshd が「Active: active (running)」なのを確認します。なお、この例では接続時に SSH 接続の継続確認で「yes」を選択しても、root での認証が通らずにエラーになります(Permission denied)。しかし、こちらは先ほど認証時の設定を変更しているため、root でログインができなくても正しい挙動です。また、一般ユーザのログインを試みても、サーバ上には接続元としての鍵ペア(の秘密鍵)がなく、パスワード認証も無効にしているため、接続できません。Windows の TeraTerm の場合は、以下のサポート情報をご覧ください。もし「dead」(停止中)となっている場合は、正常に起動していません。原因を調べるためにはログの参照が必要です。ログは「journalctl -xe」コマンドで確認できます。多くの場合は sshd_config の記述ミスに関するエラーが表示されているでしょう。さくらの VPS の場合、もしログインができなくなっても、コントロールパネル上の「コンソール」機能を通して操作可能です。・macOS や Linux の場合 … ターミナル(端末)上から「ssh root@<IPアドレス>」と入力し、接続できます。特別にソフトウェアのセットアップは不要です。なお、パスワードが不適切な場合は「BAD PASSWORD」(悪いパスワード)の警告が画面に表示されます。これまでの設定の仕上げとして、SSH サーバの設定も変更します。次に「sudo vi /etc/ssh/sshd_config」などで設定ファイルを開いたら、ファイル中の2ヵ所を変更します。あとは、root でログインを試みてもエラーとなり、パスワード認証もできなければ設定完了です。次にサーバ内から自分自身(localhost)のポート 10022 が応答するかどうかを確認します。もし、ポートの応答がなければ(「Connection timed out」などのエラー)、ポートが正常に開いていませんので、設定の見直しが必要です。攻撃の危険性を下げる対策の1つが、SSH ポート番号の変更です。近年はこの手法も一般的になりつつあるため、必ずしも効果は保証できませんが、一定の効果は期待できるものと思います。ファイルを開いたら「port=”22″」の部分を「port=”10022″」など、任意のポート番号に変更します。標準インストールの自動設定内容を知るには、次のセットアップ情報をご覧ください。Linux や macOS では ssh-keygen コマンドで鍵ペアを作成します。あるいは、既に鍵ペアを作成済みであれば、お持ちの鍵ペアを使っても構いません。このように警告が表示される場合は、他のパスワードをご検討ください。まず、sshd_config のポートを「22」から「10022」に変更します。なお、ここでは 分かりやすくするため10022 を設定例として紹介していますが、任意のポート番号を指定すべきです。実行例(id コマンドを実行すると、root ユーザ権限だと分かります):「successfully」(成功)と表示されたら設定完了です。「Sorry, passwords do not match.」(パスワードが一致しない)動作確認では、今の SSH 画面はそのままにし、別のログイン画面を立ち上げての動作確認をお勧めです。応用として、SSH の接続用ポート番号を変更する方法を紹介します。SSH 通信に使用するポート番号 22 (tcp) は、一般的によく知られているポート番号であり、常に攻撃対象として晒されています。言い換えますと、sudo を使えるユーザとは、su コマンドの実行や root パスワードを知らなくても、管理者権限として必要なコマンドを実行できます。設定を変更するには、まず、設定ファイル「/etc/ssh/sshd_config」を編集します。その前に、バックアップ用のファイルを作成しておきます(もしも設定変更後に sshd サーバが起動できなくなっても、元の sshd_config に戻せば復旧できるからです)。もしログインできなければ、ユーザ名やパスワードが正しいかどうか確認します。