メニュー
- インストール関連
-
- OSインストール
- OS設定 <---いまここ
- minecraft_serverインストール
- 運用関連
コンソールからログイン
CentOS7のインストールが完了したら、今度はOSの設定を行っていきます。
まずは、コンソールで作業してきますので、rootユーザでログインします。
アップデート実行
さくらのVPSをカスタムインストールでOSをインストールした場合は、OSはネットインストールなので最新状態でインストールされていると思うのですが、念のために「yum」でアップデートを行っておきます。
# yum -y update
SSH設定変更
初期状態のSSHはセキュリティ上甘い設定なので、セキュリティを高めるために設定変更を行っていきます。
rootユーザのログイン禁止
初期状態のSSHは「root」ユーザの直接ログインが許可されています。
これは、rootのパスワードが破られてしまうと一発でサーバの管理者権限が奪われてしまい非常に危険ですので、rootユーザは直接SSHでログインできない設定を行っていきます。
まずは、sshの設定ファイルをバックアップしてから編集を行っていきます。
# cd /etc/ssh/ # cp -p sshd_config sshd_config_20150323 # vi sshd_config
設定変更部分
「PermitRootLogin」という箇所を変更することで、SSHでrootユーザが直接ログイン出来なくなります。
設定変更前
#PermitRootLogin yes
設定変更後
PermitRootLogin no
SSH接続ポート変更
通常SSHは22番ポートで接続しますが、この番号のままだとインターネット上からブルートフォースアタック(ユーザー名・パスワード総当り攻撃)等、非常に多くの攻撃を受けてしまいます。
そこで、SSH接続用のポート番号をデフォルトの22番ポートから、別のポート番号に変更しておきます。
このポート番号の変更も、SSHの設定ファイルである「/etc/sshd_config」で行います。
設定変更部分
「Port」の部分を変更することで、SSHのポート番号を変更することが出来ます。
今回はポート番号を20022に設定していきます。
変更前
#Port 22
変更後
Port 20022
設定反映
設定が完了したら、SSHサービスを再起動して設定を反映させます。
# systemctl restart sshd
鍵認証方式への変更について
本当であれば、SSHは鍵認証方式にしたほうがよりセキュリティが向上するのですが、運用上デメリット等もあります。
そのあたりを考慮して設定を行うか判断してください。
設定方法こちらのページにまとめていますので、設定を行う場合は参照願います。
firewalld設定
CentOS7の初期インストール状態では、ファイアウォール機能(firewalld)が有効となっていて、このままでは先ほどポート番号を変更した「SSH」も、これからインストールしていく「minecraft」サーバも通信出来ません。
そこで、これらのサービスに接続できるように設定を行っていきます。
ゾーンの変更
初期状態のfirewalldのゾーンは「public」となっているので、これを「dmz」に変更していきます。
ゾーンの確認
「firewall-cmd --list-all」コマンドを使用して、現在のdefaultゾーンを確認すると、「public」がデフォルトのゾーンであることが確認できます。
# firewall-cmd --list-all public (default, active) interfaces: eth0 sources: services: dhcpv6-client ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules:
デフォルトゾーンの変更
「firewall-cmd」コマンドを使用して、デフォルトのゾーンを変更していきます。
# firewall-cmd --set-default-zone=dmz success
dmzゾーンにインターフェイス接続
初期状態で「public」ゾーンに設定されている、eth0のNICインターフェイスを、「dmz」ゾーンに設定変更します。
設定の変更は、NICインターフェイスの設定ファイルである、「/etc/sysconfig/network-scripts/ifcfg-eth0」に設定を追加することで行えます。
※さくらのVPSではeth0となるはずですが、別環境の場合はファイル名が異なることがあるので、適宜読み替えてください。
設定変更
# cd /etc/sysconfig/network-scripts/ # cp -p ifcfg-eth0 20150323_ifcfg-eth0 # vi ifcfg-eth0
追加設定
ZONEの項目が無い場合は下記の設定を追加します。すでに別の値が設定されている場合は、「dmz」に変更して下さい。
ZONE=dmz
ポート開放設定
SSHの設定で変更したポートと、minecraftサーバで使用するポートで通信が出来るように、設定を行っていきます。
SSHポートの開放
SSHの設定変更でポート番号を初期設定の22番ポートから20022番ポートに変更しているので、このポートで通信できるように設定します。
20022番ポートで通信を許可する方法ですが、今回は何番ポートが通信許可されているかすぐに分かるように、独自サービスを追加する方法ではなく、ポートを追加する形でいきます。正常に設定が完了すると、「success」と表示されます。
firewall-cmd --permanent --add-port=20022/tcp success
ssh(22番)ポートの削除
20022番ポートが追加されたら、dmzゾーンの初期設定で通信許可されているsshは必要ないので設定を削除します。
# firewall-cmd --permanent --remove-service=ssh success
minecraft用ポートの開放
minecraftサーバは初期設定では25565番ポートで通信を行うので、このポートの通信を許可する設定を行っていきます。
# firewall-cmd --permanent --add-port=25565/tcp success
firewall設定の反映
ポートの設定が完了しましたら、設定を反映させます。
# firewall-cmd --reload success
SELinux設定無効化
CentOS7の初期設定はSELinuxが有効となっていますので、その設定を無効化していきます。
設定変更
SELinuxの有効・無効の設定は「/etc/sysconfig/selinux」ファイルで設定しますので、設定を行っていきます。
# cp -p /etc/sysconfig/selinux /etc/sysconfig/selinux_yyyymmdd # vi /etc/sysconfig/selinux
変更内容
現状、有効化されているSELinuxの機能を無効化するには、下記の項目を変更することで無効化することが出来ます。設定変更後サーバを再起動することでSELinuxの機能が停止した状態でサーバが起動します。
変更前
SELINUX=enforcing
変更後
SELINUX=disabled
※SELinuxについて、もうちょっとだけ詳しい説明をこちらのページでまとめています。
サーバ再起動
SSH、firewalld、SELinuxの無効化設定が完了しましたら、サーバを再起動しこれまで行った設定の動作確認を実施します。
# reboot
動作確認作業
サーバの再起動が完了後、これまで設定を変更してきた「SSH」、「firewalld」、「SELinux」の動作確認を行っていきます。
動作確認する項目はSSH、firewalld、SELinuxの無効化設定となります。
SSHの動作確認
sshの接続確認ですが、Windows端末からならば「TeraTerm」等のSSHクライアントを使用して下記の動作試験を行っていきます。忘れがちなのですが、SSHのポート番号を初期値の22番から変更しているので、変更したポート(この手順では20022番ポート)で接続するようにしてください。
- SSHでOSインストール時に作成したユーザでサーバに接続できること
- rootユーザでログイン出来ないこと
※SSHを鍵認証方式に変更している場合は、通常のユーザ・パスワード認証でログインできないことも確認します。
firewalldの設定確認
「firewall-cmd」コマンドを使用して、以下の内容がfirewalldに設定されているかの確認をします。
- defaultのゾーンが「dmz」になっていること
- interfacesにeth0が割り当てられていること
- portsにSSH用ポート20022とminecraft用ポート25565が設定されていること
ここからの作業はSSHでログインしての作業となります。
ログイン直後は一般ユーザですので、「su -」でrootユーザなってから確認をしていきます。
$ su - # firewall-cmd --list-all dmz (default, active) interfaces: eth0 sources: services: ports: 20022/tcp 25565/tcp masquerade: no forward-ports: icmp-blocks: rich rules:
SELinux無効化確認
getneforce getenforceコマンドを実行し、SELinuxが無効化されている状態である「Disabled」と表示されることを確認します。
※2015.07.06 getenforceのタイプミスを修正しました。ご指摘ありがとうございました。
# getenforce Disabled
動作確認は以上です。
次にサーバの時刻同期の設定を行っていきます。
時刻同期設定
OSインストール時は時間がずれているとことが多いので、手動で時刻同期を行います。
ntpdateインストール
手動での時刻同期に必要な「ntpdate」を「yum」でインストールします。
# yum -y install ntpdate
ntpdate実行
インストールが完了しましたら、「ntpdate」コマンドを実行し手動でサーバの時刻を合わせます。
# ntpdate ntp1.jst.mfeed.ad.jp
chronyd設定
サーバの時間はほっとくと少しずつズレていってしまうため、chronydで定期的に時刻を同期させていきます。
※chronydはCentOS7からntpdの替わりにインストールされている、時刻同期のサービスです。
chronydの設定ファイルは「/etc/chrony.conf」となりますので、バックアップしてから設定を行っていきます。
# cp -p /etc/chrony.conf /etc/chrony.conf_20150323 # vi /etc/chrony.conf
編集内容
時刻同期を行うサーバの設定を変更していきます。初期設定のままでも、動作はするのですがネットワーク的に遠いので、日本にあるサーバに同期先を変更しています。
さくらのVPSを使用しているのであれば、「さくらインターネット」様が用意している「ntp1.sakura.ad.jp」に同期しても良いのですが、一台だけだと不安なので3台ある「インターネットマルチフィード」様のサーバに同期をさせています。
変更前
server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst
変更後
server ntp1.jst.mfeed.ad.jp iburst server ntp2.jst.mfeed.ad.jp iburst server ntp3.jst.mfeed.ad.jp iburst
設定反映
chronydを再起動し設定を反映させます。
# systemctl restart chronyd
時刻同期確認
時刻同期が動作しているかの確認には、「chronyc sources」コマンドを使用します。
サーバ名の前に「^+」「^* 」が表示されていれば、正常に同期しています。
# chronyc sources 210 Number of sources = 3 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^+ ntp1.jst.mfeed.ad.jp 2 6 17 19 -14us[ +15us] +/- 36ms ^+ ntp2.jst.mfeed.ad.jp 2 6 17 19 +53us[ +82us] +/- 37ms ^* ntp3.jst.mfeed.ad.jp 2 6 17 19 +31us[ +60us] +/- 13ms
以上で、OS周りの設定はとりあえず完了となります。
次はいよいよminecraft_serverのインストールを行っていきます。
コメント
反映と書いているところは、そのコマンドを一番下にエンターで段を追加して、コマンド入力をしたら、画面が変わる。ということでしょうか?
一番最初の変更点のport番号を変更後、設定反映のコマンド入力のところでつまづいております。
こちらでの返答がお手数であれば、メール回答でも大丈夫ですので、よろしくお願いいたします。
yahataさん
ご質問ありがとうございます。
では、ご回答のほうをメールでお送りさせていただきます。
もし、届いていないようでしたら、こちらのほうにご連絡ください。
よろしくお願いします。
初歩的な質問ですいません。
こちらのosインストール方法を参考にしながらインストールしているのですが、
アップデートのところでつまづいております。
この入力は、自分はコンソール(HTML)で行うと判断し、osインストールの際に決めたrootパスワードで入力をし、何度も確認したり、osの再インストールをしたり、一般のパスワードを試したり、起動から時間をおいて試したりしたのですが、全てだめで、どうしたらいいのかわかりません。
申し訳ありませんが、ご回答のほどよろしくお願いします。
すいません。ログインができました。
しかし、その後のこととして、アップデートをした後に、いろいろ打つのは、HTMLコンソールでいいのでしょうか?それとも途中に登場するTera Termでにゅうりょくするのでしょうか?
たびたび申し訳ありませんが、よろしくお願いします。
yahataさん
お返事が遅くなりすいませんです。
ご質問の内容は、
「コマンドの実行を何で行えば良いのか」
ということでよいでしょうか?
ということであれば、TeraTermとコンソールのどちらで作業を行っても問題はありません。
ただ、このページで説明している手順では、さくらインターネット様で提供されているコンソール(HTML)で作業を行っています。
理由としましては、SSHやfirewalldの設定作業は設定を間違えると、SSHでサーバに接続することが出来なくなる可能性があるため、念のためにコンソールで作業を行いTeraTermで動作確認を行っています。
TeraTermで作業を行い、接続できない場合にコンソールで作業という方法でも特に問題はありません。
このへんは好みの問題ですかね。
ちなみに、私はアップデート、SSH、firewalld、SELinux無効の設定とサーバ再起動が終わりましたら、その後はTeraTermで作業を行っています。
他に疑問点等ありましたら、またご連絡お願いいたします。
なるほど。とてもわかりやすく、かつ簡潔なお答えありがとうございます!
すいません。自己解決しました。
さくらサーバーから送られてくるパスワードではなく、自分で設定したパスワードでした。
返信が遅くなりすいません。
解決したとのことで何よりです。
minecraftのインストールは無事完了出来ましたでしょうか?
記事上で何か分からないことがありましたら、お気軽にご質問くださいね。
今後ともよろしくお願いいたします。
おそらく非常に初歩的な質問で申し訳ないのですが、このページの一番最初『コンソールからログイン』でつまづいてしまっています。
○○○○○○ login:
と表示されている右側に『root』と入力してエンターキー
次に表示される
Password:
という項目の右側にさくらVPSからメールで送られてきた管理用ユーザの初期パスワードを入力(この時、コンソール内には何も文字は表示されません)してエンターキー。すると
login incorrect
と表示されてまた
○○○○○○ login:
と表示されます。
私は一体なにを間違えてログイン出来ないのでしょう。
お手数おかけしますが教えて頂けると助かります。
細かいところですが誤字です。
SELinux無効化確認の
誤)getneforceコマンドを(ry
正)getenforceコマンドを(ry
お願いします。
ご指摘ありがとうございました!!
該当箇所の修正をさせていただきました。
今後ともよろしくお願いいたします。