さくらのVPSでOSを「AlmaLinux 10」に再インストールした際に行った、初期設定やセキュリティ対策の作業手順をメモとしてまとめておきます。
SSH公開鍵の事前登録
事前にSSHの秘密鍵と公開鍵のペアを作成し、さくらのVPSコントロールパネルで公開鍵を登録しておきます。
登録した公開鍵をOSインストール時に使用することで、その情報を初期設定されている「alma」ユーザに登録しておいてくれるので、公開鍵の登録作業を行う手間が省けます。
- コントロールパネル左側メニューの「SSHキー管理」をクリック
- 画面右上にある「SSHキー追加」ボタンを押下
- 名前と公開鍵の内容を入力して「SSHキー追加」ボタンを押下
詳しい方法は公式サイトのマニュアルを参照してください。
https://manual.sakura.ad.jp/vps/controlpanel/ssh-keygen.html
OSの再インストール設定
コントロールパネルからOSの再インストールを行います。
今回は以下の設定でOS再インストール行いました。
- インストール方法: 標準OS
- OS: AlmaLinux
- バージョン: 10 x86_64
- almaユーザパスワード:自分で入力したパスワード使う
- SSHキー登録: 「追加済みの公開鍵を使ってインストールする」を選択し、登録済みの公開鍵を指定
- パケットフィルター設定:初期設定のSSHを削除し、外部から接続できない状態にする
安全に初期設定を進めるため、再インストール時はさくらインターネット側で用意されている「パケットフィルター機能」を使って、外部からの通信をすべて遮断しています。
OSの初期設定が終わった段階で、必要な通信のみを許可します。
このため、ここからの初期設定作業はコントロールパネルにある「VNCコンソール」もしくは「シリアルコンソール」機能を利用し行います。
OS再インストール後の初期設定
コンソール画面から、初期状態で用意されている「alma」ユーザでログインします。
ログインパスワードはOSインストール時に設定した物を入力します。
インストールパッケージの更新
まず初めに、システムを最新かつ安全な状態にするため、インストール済みのパッケージを更新します。
$ sudo su - # dnf -y update
一般ユーザの追加
作業用の一般ユーザを新たに作成します。
初期状態で設定されている「alma」ユーザは名前が推測されやすく、セキュリティリスクとなるため、最終的にはリモート接続を出来ないようにします。
# useradd ユーザ名 # passwd ユーザ名
作業用のユーザを作成した後も、「alma」ユーザはSSH接続ができなくなってしまった場合に備えて、削除せずに残しておきます。
sudoの許可設定
作成したユーザが「sudo」コマンドを利用できるように、「wheel」グループに追加します。
# usermod -aG wheel ユーザ名
wheelにユーザが追加されていることを確認します。
# grep wheel /etc/group
SSHのセキュリティ設定
「/etc/ssh/sshd_config」を編集し、SSH接続のセキュリティを強化します。
具体的には以下の設定を変更します。
- ポート番号変更
- rootユーザのログイン禁止
- 鍵認証方式へ変更
まずは設定ファイルのバックアップを取ってから編集作業を行います。
# cd /etc/ssh # cp -p sshd_config sshd_config_$(date "+%Y%m%d-%H%M%S") # vi sshd_config
ポート番号変更
初期設定の22番ポートは、botやスクリプトによる無差別なブルートフォース攻撃(総当たり攻撃)の標的になりやすいです。
使用するポート番号を、初期設定の22番以外の任意のポート(1024〜49151)に変更することで、サーバーのセキュリティを向上させます。
今回は例として、10022番ポートに変更していきます。
- 変更前:#Port 22
- 変更後:Port 10022
rootユーザのログイン禁止
rootユーザでの、直接リモートログインを禁止します。
- 変更前:#PermitRootLogin prohibit-password
- 変更後:PermitRootLogin no
鍵認証方式へ変更
パスワード認証を無効化して、SSHの認証を鍵認証方式のみに変更します。
- 変更前:#PasswordAuthentication yes
- 変更後:PasswordAuthentication no
設定反映
設定が完了したら、sshdを再起動して設定を反映させます。
# systemctl restart sshd
作成したユーザへのSSH鍵の登録とalmaユーザの公開鍵情報の削除
OSインストール時に「追加済みの公開鍵を使ってインストールする」を選択したので、「alma」ユーザの「/home/alma/.ssh/authorized_keys」に公開鍵が設定されています。
これを「.ssh」ディレクトリごと作成したユーザのホームディレクトリにコピーし、所有者の情報をそのユーザに変更します。
# cp -Rp /home/alma/.ssh/ /home/ユーザ名/ # chown -R ユーザ名:ユーザ名 /home/ユーザ名/.ssh/
almaユーザの公開鍵情報を削除
「alma」ユーザは、さくらインターネットさんのマニュアルで公開されていて推測されやすいので、外部からSSH接続出来ないように、念の為公開鍵情報を削除しておきます。
# rm /home/alma/.ssh/authorized_keys
ファイアウォール設定
OSのファイアウォール(firewalld)を設定していきます。
初期状態ではファイアウォールは起動していないため、起動と自動起動設定を行います。
# firewall-cmd --state not running # systemctl start firewalld # systemctl enable firewalld
「firewall-cmd --state」コマンドで起動状態を確認します。
「running」と表示されていれば、無事起動されています。
# firewall-cmd --state running
ちなみに、現在設定されているルールは以下のコマンドで確認できます。
# firewall-cmd --list-all
SSH接続用ポートの許可と不要ルールの削除
SSHの接続ポートを10022番ポートに変更したので、変更したポートの接続許可設定を追加します。
同時に、使用しなくなった初期設定で設定されている「ssh」の接続許可ルールも削除しておきます。
# firewall-cmd --permanent --add-port=10022/tcp # firewall-cmd --permanent --remove-service=ssh # firewall-cmd --reload
ただしくルールが設定されているかを確認しておきます。
# firewall-cmd --list-all
以上で、OSの初期設定が完了です。
パケットフィルター設定の変更
最後に、OSの初期設定が完了したので、コントロールパネルで設定した「パケットフィルター」で、OSで変更したSSH接続用ポート(10022番ポート)で接続できるように設定を変更します。
詳しい設定方法は公式サイトのマニュアルを参照してください。
https://manual.sakura.ad.jp/vps/network/packetfilter.html
OSの「firewalld」だけで通信制御を行いたい場合は、さくら側の「パケットフィルター」機能を無効化しても問題ありませんが、二重で防御しておく方がより安全です。
コメント