本稿ではKUSANAGI導入時におけるセキュリティ設定を超初心者向けに解説します。
具体的には、BASIC認証、作業用ユーザー作成、rootログイン禁止、SSHポート変更、WinSCP設定まで順番にまとめました。
こちらの記事の続きとなります。
文中コマンドにおける()や【】は、基本的に入力不要です。
置き換えが必要な箇所をわかりやすくするために付けています。

私は昔ここで混乱しました
BASIC認証のユーザー・パスワードの作成
KUSANAGIでは9.6.0-1で管理画面ログインのBASIC認証が標準化されました。
デフォルトのユーザーとパスワードはKUSANAGIユーザーとパスワード。
改めてBASIC認証用のユーザーとパスワードを設定します。
ターミナルソフトを立ち上げてログイン。
次のコマンドを打ち込みます。
# htpasswd /home/kusanagi/.htpasswd (BASIC認証のユーザー名)
ユーザー名は好きな名前をつけてください。
もちろんkusanagi以外で。
()は要りません。
パスワードを求められるので入力します。
パスワードは強固なものを生成してください。
Chrome使っていればパスワードマネージャーが覚えてくれますので記憶する必要はありません。
終わったらシークレットウィンドウでログインページを開きます。
ログインして、設定したユーザーとパスワードで認証できたら成功です。
作業用ユーザーの作成
ここまではrootでログインしてきたことと思います。
しかしrootのまま作業するのはセキュリティ上の問題があります。
そのため、

rootログインの禁止が一般的に推奨されています
もっともrootログインを禁止すると作業しようがなくなります。
なので、先に作業用ユーザーを作ります。
こちらの記事を読んで進めてください。
rootログインを禁止する
作業用ユーザーを作ったら、今後はrootログインの禁止です。
こちらの記事を読んで進めてください。
【閑話】sudoとsu
前項と前々項はsudoでコマンドを実行することを前提に記しました。
実はsudoの他にも作業用ユーザーでログインしてroot実行する方法があります。
$ sudo su
これでユーザーパスワードを打てばrootになれます。
sudoとの違いは、sudoがコマンド単位なのに対してsuはユーザーごとrootに切り替わります。
rootなのでいちいちsudoと打つ必要もパスワードを入力する必要もありません。
ただし、常用するというより、必要な場面だけ使う意識でいると安心です。
以下、説明をわかりやすくするため、rootで作業するものとしてsudoを省略します。
sshポートを変更する
sshポートは一般に22です。
そのままでも使えますが、不要なアクセスを減らすために変更しておきます。
# vi /etc/ssh/sshd_config
21行目前後に次の記述があります。
port 22
49152~65535の任意の番号に変更して保存して終了します。
例として50001にします。
port 50001 :wq
sshdを再起動します。
# systemctl restart sshd.service
ターミナルソフトのログイン設定もポート番号を変更しておきます(この場合は50001)。
SFTPクライアント(WinSCP)を作業用ユーザーで設定する
WinSCPを設定します。
WinSCPを立ち上げるとログイン画面が開きます。
初めての場合はそのまま。
2回目以降の場合はrootで設定しているでしょうから、作業用ユーザーで上書します。

ユーザー「tenzen」、ポート「50001」に変更したケースです。
ホスト名はサーバーのIPアドレスを入力します。
終わったら「保存」を押します。
名前はわかりやすければなんでもいいですが、ここでは「tenzen」としておきます。
左側に「tenzen」が並んだはずです。
「編集」を押して「設定」を押します。
SSH→「認証」を開きます。
「秘密鍵」で「作業用ユーザーの作成」で作った秘密鍵を入れます。
(ここではtenzen.pem)
次のダイアログが開くのでOKを押します。

tenzen.pemがtenzen.ppkに変換されて登録されます。
終わったら追加でWinSCPをroot権限で操作できるように設定します。
こちらの記事を見ながら作業してください。
公式推奨の各種セキュリティ設定を行う
公式推奨の各種セキュリティ設定をします。
KUSANAGI公式推奨のセキュリティ設定はこちらです。

せっかくWinSCPを設定したのですから早速使います。
黒い画面よりWinSCPでやった方が早いです。
WinSCPでログインします。
「home」→「KUSANAGI」→「プロファイルのホームディレクトリ(プロファイルの名前がついたフォルダ)」→「DocumentRoot」と開いていきます。
wp-config.phpというファイルがあるはずです。
ドラッグアンドドロップで上の階層(ホームディレクトリ)へ移動します。
wp-config.phpを右クリックして「プロパティ」を開きます。
次の通り設定します。
グループ:www
パーミッション:所有者とグループのR(合計2個)にチェック
→「440」になっていることを確認して「ok」を押す
再びDocumentRootフォルダまで戻ります。
wp-contentフォルダを右クリックしてプロパティから次の設定をします。
グループ:www
パーミッション:所有者のRWX、グループのRWX、その他のRX(合計8個)にチェック。
→「775」になっていることを確認して「ok」を押す
以上の作業をコマンドで書くと次の通りです。
$ sudo su # cd /home/kusanagi/(プロファイル名)/DocumentRoot # mv wp-config.php ../ # cd .. # chown kusanagi.www wp-config.php # chmod 0440 wp-config.php # ll (各種ファイルが並ぶ、略)
wp-config.phpがあること、所有権とグループ、パーミッションを確認します。
続けて、
# cd /home/kusanagi/(プロファイル名)/DocumentRoot # chmod 0775 wp-content # ll
rwxrwxr-xとなっていればokです。
ここで付け加えておきます。
ダッシュボードに出るのでわかると思いますが。

管理画面に入る度にチェックする癖はつけておいた方がいいかもですよ
wp-config.phpのFTP設定の変更
セキュリティとは関係ない(むしろ逆行する)設定ですが、wp-config.phpを扱ったついでにやっておきます。
WinSCPからwp-config.phpを開きます。
/**
* 開発者へ: WordPress デバッグモード
*
* この値を true にすると、開発中に注意 (notice) を表示します。
* テーマおよびプラグインの開発者には、その開発環境においてこの WP_DEBUG を使用することを強く推奨します。
*/
define('WP_DEBUG', false);
(略)
/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */
(略)の部分のどこかに次の記述を加えます(既にある場合は変更します)
define('FS_METHOD', 'ftpext'); ←デフォルトはftpsockets
define('FTP_HOST', 'localhost');
define('FTP_USER', 'kusanagi');
define('FTP_PASS', 'kusanagiのパスワード');
最初の1行は、PHP8.1では変更する必要があります。
3行目と4行目を設定すると、テーマやプラグイン更新時の認証入力を省けるようになります。
利便性は上がりますが、認証情報を設定ファイルに保持する形になるため、運用方針によっては見送っても構いません。
私は一人で運営する前提で、利便性を優先しています。
まとめ
これでKUSANAGIで最初にやるべきセキュリティ設定は終わりです。

おつかれさま!
VPSは、もう「黒い画面」だけじゃない。
「VPSは難しそう」と諦めていませんか? ConoHaのKUSANAGIなら、ブラウザ上の管理画面(KUSANAGI Manager)で、ドメイン設定からSSL発行まで直感的に操作可能です。
コマンド操作なしで世界最速級の環境を構築できる、今の時代の初心者にとっての最適解。私が長年愛用している理由がここにあります。
※当サイト経由で新規申し込みいただくと、特典として1000円分のクーポンをもらえます。