Xserver VPSの仕様で予めroot権限の鍵登録を行なうことができた。
サーバー側でポート設定を行なうので、XserverのVPSパネルからパケットフィルターはOFFにしておくこと。
サーバーのアップデート
自身のPCからssh接続を始める前に、まずはサーバー会社が用意したコンソールからログインする。
apt upgrade -y
まずは全ての既存パッケージをaptコマンドから更新する。
apt full-upgrade
ついでに保留されているパッケージもチェックして更新をかけておく。
SSH設定とufw初期設定
Ubuntuのssh接続に必要なopenssh-serverはすでに入っているので、sshを有効にすることだけ忘れないように。
systemctl enable ssh
次にufw(ファイアーウォール)を確認する。
systemctl status ufw
ufw status verbose
systemctlからは有効化されていたが、ufwそのものは起動されていなかった。
ufwを起動する。
ufw enable
もう一度「ufw status verbose」からufwの状態を確認すると、ログのルールとデフォルトの通信ルールが表示される。
ルールを追加する前にIPv6の設定を無効にする。
「/etc/default/ufw」を編集し、以下の指定をする。
IPV6=no
一旦ssh接続できるようにするため、試しに22番ポートを許可する。プロトコルにはTCPを指定する。
ufw allow 22/tcp
入力後に「Rule added」と表示される。
ユーザー側で追加するルールをもう一度確認したいなら、コマンドでverboseまで入力しなくても確認できる。
ufw status
ここまで設定したらssh接続ができるようになる!🙌
ssh接続ポートの変更
Ubuntu 24.04の場合は「/etc/ssh/sshd_config」と「/lib/systemd/system/ssh.socket」のポート設定を変更し、ufwから変更後のポートを許可しなければならない。
/etc/ssh/sshd_configの設定
いちばんめのサーバー構築で使用したCentOS Stream 9と変わらず、viで「/etc/ssh/sshd_config」を編集して「Port 22」のコメントアウトを取って希望のポート番号に変更する。
設定が終わった後は再起動をかけて更新する。
systemctl restart ssh
/lib/systemd/system/ssh.socketの設定
「ListenStream=22」のコメントアウトを取って希望のポート番号に変更する。
設定が終わった後は再起動をかけて更新する。daemon-reloadも同様に再起動をかけて更新する。
systemctl daemon-reload
systemctl restart ssh.socket
ufwの設定
変更希望のポートを許可する。今回は例として2222ポートに変更する。
ufw allow 2222/tcp
先に22ポートを許可する設定を入れていたので、以下のコードを打てば恐らく22ポートを削除するかどうかを聞かれるはず。
ufw delete 1
異なる設定を消してしまいそうであれば、ufw statusで登録したルールを確認する。22ポートの許可設定が何番目にあるかを確認したあと、ufw deleteのあと適切な数値に変えて再度打ち込む。
設定が終わった後は更新する。
systemctl restart ufw
sshログインの設定見直し
セキュリティ向上のため「/etc/ssh/sshd_config」の設定を見直す。
PermitEmptyPasswords no
空パスワードを無効にする。
PermitRootLogin prohibit-password
公開鍵でのrootログインは許可しておく。
prohibit-passwordという設定がデフォルトで適用されています。これは公開鍵認証とGSSAPI認証(Kerberos認証など)のみ許可し、パスワードやキーボードインタラクティブ認証(2要素認証など)を禁止する、という設定です。
https://linuc.org/study/column/5707/