5.rootログイン禁止とSSH接続ポート番号変更 ~wordpressでブログが出来上がるまで

前回は作業用ユーザを作成し、ログインの確認とrootユーザへの切替ができるかまでを行いました。
今回の作業は
– rootログイン禁止
– SSHポート番号変更
のセキュリティ系作業を実施します。

少し記事も作業量も長く多めかもしれませんが、SSHポート番号変更の部分は、ファイアウォールとSSHのコンフィグを両方編集してからサービス再起動しないと、変更したSSHポート番号でログインできない、変更前のポート番号は使用できない、と詰むことがありますので注意が必要です。
なので、先にスナップショットを用意して、詰んだ時に戻れるようにしておきましょう。
(これを知らずに、何度もスナップショットで戻りました)


rootログイン禁止の設定

※kagoyaで契約したVPSのCentOS7のテンプレートでは、この項目は最初からPermitRootLogin without-password(パスワードでのrootログイン不可)が設定されており鍵認証でSSHログイン可能となっています。 その為、この項目は確認も含めて、設定されていなかった場合に実施してください。

外部からの接続で直接rootログインできてしまうのはセキュリティ上、危険です。
過去記事の最後にサーバの電源を落とすようにしていますが、上げっぱなしだと毎日大量のログイン試行のアクセスが来ます。事前に設定で止めておきましょう。

[root@xx.xx.xx.xx]# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
[root@xx.xx.xx.xx]# vi /etc/ssh/sshd_config
[root@xx.xx.xx.xx]# diff /etc/ssh/sshd_config /etc/ssh/sshd_config.org

38 #PermitRootLogin yes → PermitRootLogin without-password へ変更する  
  
[root@xx.xx.xx.xx]# systemctl restart sshd  

【コマンドの内容説明】

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org

このコマンドで、/etc/ssh/sshd_configのファイルを /etc/ssh/sshd_config.orgというファイル名でコピーを作成します。
今回はファイル名をsshd_config.orgとしてますが、なんでもOK。
sshd_configのバックアップということがわかれば大丈夫です。

vi /etc/ssh/sshd_config

viコマンドでvimエディターを起動します。(カーソルモードで[:set number]と入力すると行数表示可能です。)
38行目付近にある行でrootのログイン設定を変更します。

38 #PermitRootLogin yes
 ↓↓↓
38 PermitRootLogin without-password

頭の「#」もはずすのを忘れないようにしましょう。
編集が終わったらカーソルモードで:wq(保存してvimを終了する)で保存して完了です。
(間違った入力などをしてしまった場合は、[Esc→:q!]の入力で編集中のファイルを何も保存せずにvimから抜けられます。)

diff /etc/ssh/sshd_config /etc/ssh/sshd_config.org

二つのファイルの相違している場所を確認しましょう。
編集したPermitRootLoginの行が変更されていれば問題ありません。
↓こんな感じで表示されます

38c38
< PasswordAuthentication without-password
---
> PasswordAuthentication yes

systemctl restart sshd

SSHのサービスを再起動して、rootログインの設定を反映させましょう。


SSHポート番号変更の設定

SSHポート番号は初期の22番が設定されています。外部からSSHログイン試行をされる際、ほとんどが22番ポートでアクセスしようとするので、これを変更するとグッと怪しいログイン試行件数が減ります。

[root@xx.xx.xx.xx]vi /etc/ssh/sshd_config

17 #Port 22  

またsshd_configの編集です。今度は17行目付近にある[#Port 22]の下に行を追記しましょう。

16 #  
17 #Port 22  
18 Port xxxxx   (xxxxxは任意のポート番号を指定)
19 #AddressFamily any 

17行目を編集しても問題ないですが、今回は別途行を追記しました。
ポート番号はこちらなどを参考に自分の環境で問題無い番号を指定しましょう。
そうですね、2222とか22222とかだと安直かもしれないので、29831(ニクヤサイ)とかわかり易くていいですね。どうでもいいですね。

firewallで指定したSSHポート番号を許可する設定


・既存のssh.xmlをcopyしてssh-xxxx.xmlを作成する(xxxxxは設定したいSSHポート)
[root@xx.xx.xx.xx]# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-xxxxx.xml

コピーしたssh-xxxx.xmlを開いて該当箇所を編集
[root@xx.xx.xx.xx]# vi /etc/firewalld/services/ssh-2222.xml

<port protocol="tcp" port="22"/> → <port protocol="tcp" port="xxxx"/>  
[root@xx.xx.xx.xx]# firewall-cmd --permanent --remove-service=ssh  
[root@xx.xx.xx.xx]# firewall-cmd --permanent --add-service=ssh-2222  
[root@xx.xx.xx.xx]# firewall-cmd --reload  
[root@xx.xx.xx.xx]# firewall-cmd --list-all  



サービスの再起動

ここまでの作業を実施したらsshdのサービスを再起動しましょう。

[root@xx.xx.xx.xx]# systemctl restart sshd
[root@xx.xx.xx.xx]# systemctl status sshd

systemctl restart sshd

このコマンドでsshdのサービスを再起動します。

systemctl status sshd

このコマンドでsshdの状態を確認します。実行したあとの3行目くらいに、[active(running)]の記載があれば問題ありません。

最後に、Teratermの別ウィンドウを開いて、rootでログインできないこととroot以外のユーザ(以前作った作業用ユーザでOK)を使って設定したSSHポート番号で接続できることを確認しましょう。
ここで接続がうまく行かない場合はどこかの設定が漏れている、サービスが正しく再起動できていないなど何か躓いている場所があるかもしれません。


次回はyumのアップデートとApacheのインストールを行っていく予定です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする