さくらのVPSでCentOS7のサーバーを構築する その3
投稿日:2017年04月15日
最終更新日:
本編の目次
- サーバーコントロールパネルへのログイン~サーバー起動まで(第1回)
- サーバーへログイン~初回起動時に行う設定
- SSHログインについて
- SELinuxの有効化(第2回)
- 一般ユーザーの作成
- sudoの有効化
- SSH経由でのrootログイン禁止設定(第3回)
- 公開鍵認証の導入
- ファイアウォール(Firewalld)の設定(第4回)
- SSHのポート番号変更とSELinux
- WEBサイト公開用ユーザーの作成とChrootの設定(第5回)
- Apacheのインストールと設定
- ユーザーのホームディレクトリ配下にあるpublic_htmlを公開する(第6回)
- バーチャルホストの設定
- PHPのインストールと設定(第7回)
- PHPのCGIモード化
- MySQLのインストールと設定(第8回)
- phpMyAdminのインストールと設定(第9回)
- WordPressを使うためのMySQLの設定(第10回)
- WordPressのインストール
SSH経由でのrootログイン禁止設定
前回行った設定でsudoは有効化され、設定を済ませれば一般ユーザーでもroot権限が必要なコマンドを実行できるようになりました。今後はSSHではrootアカウントでのログインを禁止し、サーバーを乗っ取られるリスクを軽減しましょう。というわけで、/etc/ssh/sshd_configを編集します。なお、ここからはsudoを使える一般ユーザーでログインして作業を行ってください。 [VIM] sudo vim /etc/ssh/sshd_config [/VIM]
Vimで/etc/ssh/sshd_configを開いたら、49行目辺りにある以下の記述を編集し、保存してください。
[VIM]
#編集前
#PermitRootLogin yes
#編集後(頭の#(井桁)を外し、YesをNoに書き換え)
PermitRootLogin no
[/VIM]
保存し終わったら、編集ミスがないか以下のコマンドで確認しましょう。特に何も表示されなければ大丈夫です。 [VIM] sudo /usr/sbin/sshd -t [/VIM] 大丈夫そうであれば、以下のコマンドでSSHサービスを再起動しましょう。 [VIM] sudo systemctl restart sshd [/VIM] SSHサービス再起動後、SSHを利用してのrootログインができないようになっていれば成功です。また、sudoできる一般ユーザーがログインできることもきちんと確かめておきましょう。設定に失敗した場合は、さくらのVPSコントロールパネルのコンソール画面からログインして設定を編集してください。
公開鍵認証の導入
SSHでのrootログインは禁止しましたが、sudoできるユーザーのパスワードがバレてしまえば実質rootアカウントのパスワードが流出したようなものです。sudo出来るユーザーについては「公開鍵認証」を導入し、より安全性を高めるべきです。公開鍵認証を導入することで、パスワードが流出しても「秘密鍵」と呼ばれるファイルがなければログインはできなくなるので、より安全になります。
公開鍵認証を導入する際は、鍵ペア(「公開鍵」と「秘密鍵」)を作る必要があります(Tera Termなどで作れます)。作成した「公開鍵」をサーバーにアップロードし、サーバー側の設定を変更すればOKです。なお、「秘密鍵」については絶対に流出させてはいけないものなので、各自で厳重に保管する必要があります。ネットワークに流したらアウトです。
それでは早速鍵ペアを作りましょう。Tera Termで作る場合は、「設定」→「SSH鍵生成」を選択します。
鍵の種類については、2017年地点では比較的強固な
- ECDSA-256/384/521
- ED25519
鍵のパスフレーズを2回入力し、必要ならコメントも入力しましょう。その後、「公開鍵の保存」「秘密鍵の保存」で鍵ペアを保存します。どの鍵がどの鍵とペアであるかきちんと分かるように保存しましょう。公開鍵の拡張子は「.pub」、秘密鍵の拡張子は「.ppk」などが使われます。鍵をきちんと保存したら「閉じる」を押します。
鍵の作成が終わったら、公開鍵をサーバーに設置する作業に入ります。公開鍵認証でログインしたいユーザーでサーバーにログインし、以下のコマンドを順番に実行します。 [VIM] #.sshディレクトリを作成 mkdir .ssh #.sshディレクトリのパーミッションを700に chmod 700 .ssh #.sshディレクトリに移動 cd .ssh [/VIM] 無事に.sshディレクトリに移動できたら、以下のコマンドでauthorized_keysファイルを作成します。 [VIM] vim authorized_keys [/VIM]
編集画面にたどり着いたら、まずは「A」などのキーを押してVimを編集モードに切り替えましょう。そうしたら、先程保存した鍵ペアファイルのうち、公開鍵の方をTera Termの画面にドラッグ・アンド・ドロップします。
こんな画面が出るので、「ファイル送信」を押します。
無事にテキストがコピーされたので、Vimで保存してください。
その後、以下のコマンドでauthorized_keysファイルを他人が読み取れないよう、また自分が不用意に変更したりしないようにします。 [VIM] chmod 400 authorized_keys [/VIM] ここまで来たら、鍵を使ってログインできるかどうか確かめてみましょう。
Tera Termで鍵を使ってログインする場合は、認証画面で「秘密鍵」ボタンから秘密鍵ファイルを選択し、ユーザー名と鍵のパスフレーズを入力してログインします。
公開鍵認証でのログインが出来るようになったら、SSHでのパスワードログインを禁止し、公開鍵認証を使わなければログインできないようにしてしまいましょう。今度も/etc/ssh/sshd_configを編集します。 [VIM] sudo vim /etc/ssh/sshd_config [/VIM] 79行目辺りにある以下の記述を修正しましょう。 [VIM] #編集前 PasswordAuthentication yes #編集後(YesをNoに切り替え) PasswordAuthentication no [/VIM]
保存し終わったら、編集ミスがないか以下のコマンドで確認しましょう。特に何も表示されなければ大丈夫です。 [VIM] sudo /usr/sbin/sshd -t [/VIM] 大丈夫そうであれば、以下のコマンドでSSHサービスを再起動しましょう。 [VIM] sudo systemctl restart sshd [/VIM] SSHサービス再起動後、パスワードでのログインが遮断され、公開鍵認証でのログインが出来るようになっていればOKです。