さくらのVPSサーバーにCentOS7をインストールして最初に行った設定
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だけが残っているはず!