−25%

Windows 年払い、10月31日まで。 プランを見る

EQVPS
始める

Rocky Linux VPS のセットアップ方法:root を受け取った直後の最初の手順

新しい Rocky Linux 9 VPS での最初の 10 分:dnf での更新、SSH 鍵付きの sudo ユーザー作成、root ログインとパスワードログインの無効化、firewalld、セキュリティ更新の自動化。すべてのコマンドを当社のイメージで実行済み。

Rocky Linux 9 は RHEL 互換の無料の選択肢です。同じパッケージ、同じ dnf、同じ firewalld と SELinux。Debian や Ubuntu をセットアップしたことがあれば、手順の順番は同じで、違うのはツールだけです。ここでは新しい Rocky 9 サーバーでの最初の 10 分を紹介します。

以下のコマンドはすべて、公開前に当社の Rocky Linux 9 イメージで実行しました。クリーンなサーバーなら、一連の作業は数分で終わります。

1. システムを更新する

ダッシュボードのパスワードで root としてログインし、更新します。

dnf -y upgrade

当社のイメージではテスト時に数秒で終わりました。イメージがすでに最新だったためです。

2. sudo ユーザーを作成して SSH 鍵を追加する

Rocky では管理者グループは sudo ではなく wheel です。

useradd -m -G wheel deploy
passwd deploy                      # sudo will ask for this password

公開鍵をサーバーに置きます(鍵の作り方)。/root/key.pub にコピーした場合:

install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
install -m 600 -o deploy -g deploy /root/key.pub /home/deploy/.ssh/authorized_keys
restorecon -R /home/deploy/.ssh

restorecon は sshd が期待する SELinux ラベルを付けます。ラベルが違うと、分かりやすいエラーもなく鍵でのログインが失敗します。

2 つ目のターミナルを開き、ssh deploy@YOUR.SERVER.IP が使えること、sudo -v がパスワードを受け付けることを確認してください。それまでは root のセッションを開いたままにします。

3. root ログインとパスワードログインを無効にする

ここが教科書どおりの sshd_config 編集と違う点です。設定は /etc/ssh/sshd_config.d/ 配下の個別ファイルにあり、sshd は最初に見つけた値を使います。当社のイメージでは最初のファイルが 00-eqvps.conf で、初日にログインできるよう root とパスワードを許可しています。そこを変更します。

sed -i -e 's/^PermitRootLogin .*/PermitRootLogin no/' \
       -e 's/^PasswordAuthentication .*/PasswordAuthentication no/' \
       /etc/ssh/sshd_config.d/00-eqvps.conf
sshd -t && systemctl reload sshd
sshd -T | grep -E '^(permitrootlogin|passwordauthentication) '

最後のコマンドは、sshd が実際に適用する値を表示します。次のように表示されれば正解です。

permitrootlogin no
passwordauthentication no

これで ssh root@… は鍵があっても拒否され、deploy は鍵でのみログインできます。

4. ファイアウォール:firewalld

クラウドイメージには firewalld が入っていません。インストールして起動し、必要なものだけを開けます。

dnf -y install firewalld
systemctl enable --now firewalld
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --remove-service=cockpit
firewall-cmd --reload
firewall-cmd --list-services

既定のゾーンは cockpit(ポート 9090)と dhcpv6-client を開けています。Cockpit はインストールされていませんが、そのポートを開けておく理由はありません。アプリを追加したら、同じ方法でポートを開けます。例:firewall-cmd --permanent --add-service=https。

5. セキュリティ更新の自動化

dnf-automatic はタイマーで更新をダウンロードします。既定ではインストールしないので、有効にします。

dnf -y install dnf-automatic
sed -i 's/^apply_updates = .*/apply_updates = yes/' /etc/dnf/automatic.conf
systemctl enable --now dnf-automatic.timer
systemctl list-timers dnf-automatic.timer

セキュリティ修正だけにしたい場合は、同じファイルで upgrade_type = security も設定します。

6. SELinux は有効のままに

新しいサーバーで getenforce は Enforcing を返し、上記の手順はすべてその状態で動きます。アプリが標準外のポートやディレクトリを必要とするときの対処はラベル付け(semanage port、restorecon)であり、setenforce 0 ではありません。

どのプランを選ぶか

Rocky 9 はアイドル時に約 400 MB の RAM を使います。Nano(1 GB、月 $3)なら小さなサービス 1 つに十分で、Micro(2 GB、月 $5)ならデータベースを置く余裕があります。NAT プランでは、SSH はダッシュボードに表示される専用ポートから入ります。ポート 80/443 を誰にでも開けたい場合は、Micro-IP(月 $10)のような専用 IPv4 付きプランを選んでください。

Rocky Linux 9 は RHEL 系 OS のページにあるイメージの一つで、VPS のすべてのプランで選べます。支払いは Base、Ethereum、Polygon 上の USDT、USDC、ETH で、本人確認書類もカードも不要です。スクリプトでサーバーを操作したい場合は、API ドキュメントに注文、再インストール、更新の方法があります。

よくある質問

Rocky Linux は RHEL と同じですか?

同じソースからビルドされ、Red Hat Enterprise Linux 9 との完全な互換性を目指しています。そのため RHEL のガイド、パッケージ、作法(dnf、firewalld、SELinux)がそのまま使えます。Red Hat のサブスクリプションは不要です。

Rocky で SSH の変更が反映されないのはなぜですか?

Rocky は /etc/ssh/sshd_config.d/ のファイルを名前順に読み、各設定は最初に見つかった値が有効になります。当社のイメージでは最初のファイルが 00-eqvps.conf なので、そこで設定を変更し、セッションを閉じる前に sshd -T で結果を確認してください。

SELinux は無効にすべきですか?

いいえ。新規インストールでは Enforcing モードで、ここでの手順はすべて有効なまま動作します。SSH や Web サーバー用のファイルを珍しい場所に作った場合は、そのパスに restorecon -R を実行すればラベルが直ります。ラベルの問題のために SELinux を無効にすると、本物の防御層を一つ失います。

SSH のポートを変更できますか?

専用 IPv4 付きのプランなら可能です。ただし新しいポートを firewalld と SELinux の両方で許可してください。NAT プランでは sshd を 22 のままにしてください。あなた専用の外部ポートはすでにサーバー内の 22 に転送されており、sshd を移すとその転送が壊れます。

Rocky Linux にはどのプランで足りますか?

Rocky 9 はアイドル時に約 400 MB の RAM を使うので、小さなサービスなら 1 GB の Nano で足ります。データベースやコンテナを使うなら 2 GB の Micro が余裕です。

コメント

まだコメントはありません。最初になりましょう。

コメントを残す

コメントは表示される前にモデレートされます。