初めてVPSをconohaで借りたので、セキュリティを試すためにやったことを紹介していきます。ちなみにブログはConoha Wingで使っています
なぜroot権限のログインの許可を禁止するのか
root権限って、簡単に言うと、一番偉いアカウントのユーザーネームがrootなので、rootを指定して、片っ端から総当たりでログインを試していくといつかログインできちゃうというセキュリティリスクがあります。だから、みんなが知ってるユーザーネームのrootでログインできなくしちゃうことがまずセキュリティ対策に繋がります。
新しいユーザーを作りRoot権限と同等程度の権限を設定する
ConohaのwebGUIで操作するのでログインして、サーバ>ネームタグで選択して、コンソールを選択してください
下の画面の真ん中にコンソールというのがあります

ubuntuに新しいユーザーを登録してsudo権限のグループに追加するLinuxコマンド
Linuxのubuntuではwheelグループがないので、代わりにsudoグループにユーザーを作成して追加します。今回はusagiというユーザーを作成します。
useradd -m usagi
色々なにか求められたら全部何もせずにenterでOK
次にパスワードを設定します。
passwd usagi
あとは新しいパスワードを2回入力するだけです。作成したら、下のコマンドで作ったユーザーが
id usagi
作成したユーザーにsudo権限を与える
gpasswd -a usagi sudo
とあとは
su usagi と入力して、作成したusernameに変更できるかどうか確認
ちなみにrootの場合はターミナルの点滅しているカーソルの前は# で 他のユーザーの場合は $ マークとなります
UbuntuのOSのアップデートとアップグレードもやる
下のコマンドをそれそれぞれ実行するとUbuntuのOSのアップグレードとアップデートができます
sudo apt update はすぐに終わりますが、
sudo apt upgrade は5分ぐらいかかります。途中で下のような表示が出たら

と表示されたらYを入力してEnter
下が表示されたら

cloud.cfg (Y/I/N/O/D/Z) は とりあえずデフォルトのNをエンター それ以外はクラウドの設定が変わっちゃうらしいのでやめとく
メニューが表示される

OKなのでそのままEnterをクリックすると下のメニューが出てくるので
特に変更がないのでEnterをクリックそれでOKになります

ホストの名前がわかりにくいので、conohavpsに変更しました
sudo vi /etc/hostname
iを押すと編集ができます、i一番上の行に現在のホストネームがあるので、それを消して、名前を好きなものに直して、ESCを押して:wqを押すと保存ができます
ホストネームを変更するとこのようにわかりやすくなります

そして一度再起動してもろもろの設定を反映しましょう
sudo reboot
このコマンドでサーバが再起動します
Conoha VPSのsshd_config fileを編集してセキュリティを高める
rootでのログインを禁止したり、パスワードでのログインをさせないなどを行っていきます
ここからは作成したユーザーで作業を敷きましょう su - 作成した名前 で変更できます
ファイルの編集方法の基本的な使い方
引き続き、ターミナルで設定を続けていきます
sudo vi /etc/ssh/sshd_config
これを入力すると テキストエディタが起動します。ちなみに、vi は Linuxでよく使われるテキストエディタです
iを押すと編集ができるようになります
保存して終わりたい場合はESCボタンを押して、:wq 読み込み専用の場合は :wq! と入力すると上書き保存ができます
編集が終わってviを閉じたら必ず
sudo systemctl restart ssh.serviceで更新してください
必要な場所だけ対応すると良いと思います
パスワードでのログインができることを確認
あとからパスワードのログインをできなくしますが、ここでは以下のように#が先頭についてなく、yes担っていることを確認しておく
PasswordAuthentication yes
必ず最後にシステムをリスタートしてください
ここまで設定をしてsshd_confing fileの設定を変更して保存したら、
sudo systemctl restart ssh.serviceで更新してください
これをやらないとうまくいかない!っということになります。
自分のパソコンで公開鍵と秘密鍵を作成してSSH接続の設定をする
Conohavpsで公開鍵関係を保存するフォルダを作成
そしてConohavpsで公開鍵関係を保存するフォルダを作成したりパーミッションを付与したりします
まずは自分のユーザー名のフォルダに移動します。なければ作成してください
$ cd /home/usagi
$ mkdir .ssh
$ chmod 700 /home/usagi/.ssh
$ cd /home/usagi/.ssh
$ sudo touch authorized_keys
$ sudo chmod 600 authorized_keys
パーミッションが変更できないとき
sudo chown ユーザー名:ユーザー名 ファイルパス を実行すれば、利用したいユーザーの所有者に代わります 今回はusagiなのでそれぞれ usagiをいれたりなど
Tera Term を開いた画面で新しい接続というウィンドウが出てくるのでxを押して閉じる

設定のSSH鍵生成をクリック

以下設定で作成しますが、お好みでどうぞ
生成をクリック
公開鍵の保存をクリック
秘密鍵の保存をクリック

公開鍵は.pubの拡張子がある方だと覚えておきましょう
上で作った公開鍵の.pubファイルを自分のPCに保存した.sshフォルダからメモ帳などで開いて
echo ssh-rsaの最初から最後までの公開キーの長い文字列を入れてください >>~/.ssh/authorized_keys
別のメモ帳か何かで新しいテキストを開いて、前後に echo と >>~/.ssh/authorized_keys をsshのキー情報の前後にスペースを開けていれると楽です
それを、conohaVPSのターミナルに貼り付ける (teratermではないです )Shift+Ctrl+Vで貼り付けできます。貼り付けたらエンターで実行
ここまでできたら一度Tera Termでログインできるか試してみてください
今度はTera Termでログインしましょう
初期設定でのSSH接続する方法などは
サーバーのネットワーク情報からセキュリティーグループを以下に変更してください


ユーザー名は作成したユーザー名 ここページで作ったのはusagi
パスフレーズを入れずに下の秘密鍵を選択 .pubがついていない方のファイルを選択

これで問題なく作成したユーザーでSSHKEYを使ってログインできたと思います
そしてこのままログイン状態で手順を進めていきます
Ubuntuのファイアーウォールの設定とポートの確認
今度はUbuntuのポートの設定とファイアーウォールの設定を確認します。作成したアカウントで以下のコマンドをconohaVPSのターミナルに打ちます
sudo vi /etc/ssh/sshd_config
Rootユーザーでのログインをできないようにする
PermitRootLogin yes という項目を
PermitRootLogin no に変更
これで、SSH接続しようとするとrootユーザーが拒否されアクセスできなくなります。
SSH接続の公開鍵認証を許可する
もしも、以下の項目の頭に#がついていたら#を消す
#PubkeyAuthentication yes
PubkeyAuthentication yes
パスワードでのログインをできないようにする
SSH KEYを使ってログインしたい、そしてパスワードでのログインは拒否したいので、以下の設定を変えます。これを変更しないと、わざわざめんどくさい手続でSSH KEYを使っているだけになります
PasswordAuthentication yes
PasswordAuthentication no
ポートの番号を変更する
ポートが22だと攻撃されるらしいのでここも変更します
#Port 22
Port 10022
ここまでやったらファイルを閉じる
sudo ufw status verbose
すると22番のポートを使っているのがわかりますね

22番は使いたくないので、療法削除します
$ sudo ufw delete 1 を2回繰り返すと両方消えます
上の方の記事で設定した新しいポートを追加する 例だと10022
以下を入力すると自動的に
sudo ufw allow 10022/tcp
下のような表示が出ます

拒否設定もしておきます
sudo ufw default deny

デフォルトの受信ポリシーが「拒否」に変更されました (それに応じてルールを必ず更新してください)という意味です
これでsshの設定を更新
sudo systemctl restart ssh
もしUbuntuのバージョンが24以降だった場合ポートが開かないので以下手順を実行してみてください
ConohaVPSのセキュリティグループの設定
今のままだとConohaVPSのセキュリティでポートが閉じているので、通信できるポートの設定をconoha側でもやらなければいけません
セキュリティの中のセキュリティブループをクリック

左上のセキュリティグループのボタンをクリック

わかりやすい名前のセキュリティグループを作成

左下の+を押すと追加できて、右側のゴミ箱で削除、レンチマークで編集できます
今回は10022でつくったのでそれをIPv6とIPv4を作成

次はサーバに戻ってネームタグをクリック

ネットワーク情報を開く

下に行くとセキュリティグループというのがあるので、鉛筆ボタンをおして先程作ったセキュリティグループを選択して変更
これですべて完了お疲れ様でした