さくらのVPSサーバーにCentOS7をインストールして最初に行った設定

2019年4月16日

VPSサーバーにCentOS7インストール後に最初にやる設定メモ。
サーバーとしてインターネット上で使用するので、rootを悪用されないようにリモートからのrootのログインを禁止する。そのためにまず、管理者権限を持った一般ユーザーを作成する。その後、rootログインを禁止する。あとは、SSHのポートを変更する。

※CentOS7からファイアウォールの設定が「iptables」から「firewalld」に変更となってるので、ネット上の古いバージョン(CentOS6とか)の情報に注意。


目次

一般ユーザーの作成と設定

一般ユーザーの作成

OSのインストールが終了して起動したら、まずターミナル(Macで作業してるので。Windowsの人はTeraTerm Pro等で!)からログインする。XXXXXXは割り当てられたホスト名、パスワードはインストール時に設定したものを入力する。


$ ssh -l root XXXXXX.sakura.ne.jp

ログインしたら下のコマンドでユーザーを作成する。


$ useradd user111

次にパスワードを設定する。


$ passwd user111

作成した一般ユーザーのグループ設定

作成したuser111は、ただの一般ユーザーなので、このユーザーを管理者グループ(wheelグループ)に追加する。


$ usermod -G wheel user111

ここまでできたら一旦SSHをログアウトして、作成したuser111でログインする。


$ exit
$ ssh -l user111 XXXXXX.sakura.ne.jp

設定したパスワードでログインできれば成功。その後、管理者グループに入っているか確認。


$ su

パスワードはrootのパスワードを入力。するとプロンプトの表示が
[user111@XXXXXX ~]$
から
[root@XXXXXX user111]#
に変わる。

rootログインの禁止

次は、rootでのsshログインを禁止する。viで、設定ファイルを開く。


$ vi /etc/ssh/sshd_config

この中の
#PermitRootLogin yes
の部分を
PermitRootLogin no
に変更する。

viなので、iで編集して、escを押したあと:wqで保存する。
保存できたらSSHを再起動する。


$ service sshd restart


SSHをログアウトして、rootでログインしてみる。


$ exit

まだuser111でログインしてるのでexitはもう1回。


$ exit
$ ssh -l root XXXXXX.sakura.ne.jp

ログインできなければ成功!user111でログインしてsuでrootになれるかどうか確認。


$ ssh -l user111 XXXXXX.sakura.ne.jp
$ su

SSHの使用するポートの変更

デフォルトの22番ポートは不正アクセスのターゲットになりやすいのでSSHで接続するポートを変更する。接続を受けるsshdの設定変更と、ファイヤーウォールの設定を変える必要がある。今回はポート番号を10022に設定する。

使用するポートの設定ファイルを作成する

デフォルトの設定ファイルがあるので、それをコピーして10022ポートのSSH用設定ファイルを作成する。


$ cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-10022.xml

コピーできたら、viで開いて


$ vi /etc/firewalld/services/ssh-10022.xml

ファイルの中の
<port protocol="tcp" port="22″/>
の部分を
<port protocol="tcp" port="10022″/>
に変更する。

作成したファイルをfirewalldに追加する

そして、作成したファイルをfirewalldに追加する。


$ firewall-cmd --permanent --add-service=ssh-10022

successと返ってくるので、追加設定を反映させて、確認する。


$ firewall-cmd --reload
$ firewall-cmd --list-all

反映されていれば、servicesのところにssh-10022が表示される。これで10022ポートを使用できる!

SSHのポートの変更

10022ポートを通過できるようにファイヤーウォールを設定したので、今度はsshdの設定を10022番ポートに変更する。
sshdの設定ファイルを開く。


$ vi /etc/ssh/sshd_config

17行目にある
#Port 22
の下に
Port 10022
を追記して保存する。設定を反映させるために、sshdを再起動する。


$ systemctl restart sshd

一旦ログアウトして、10022番ポートでSSHにログインできるか確認する。


$ ssh -p 10022 user111@XXXXXX.sakura.ne.jp

ログインできれば成功!

22番ポート(旧SSHポート)を閉じる

10022番ポートでアクセスできることが確認できれば、22番ポートはもう必要ないので、ポートを閉じる。
suコマンドでrootになって、現在の設定を確認。


$ su
$ firewall-cmd --list-all

ファイヤーウォールからssh(22番)を削除、設定を反映させて確認する。


$ firewall-cmd --permanent --remove-service=ssh
$ firewall-cmd --reload
$ firewall-cmd --list-all

これで、servicesからsshが消えて、ssh-10022だけが残っているはず!


参考リンク

Tipsvps

Posted by ucci1372