ConoHa VPS (AlmaLinux 9.4) セキュリティ対策の注意点
こんにちは、よちゅばです。
前回の記事では、サイバー攻撃は本当に身近に起こりうるという話をしました。
今回は、私がお試しで利用したConoHa VPS (AlmaLinux 9.4) における、セキュリティ対策の注意点についてお話しします。
セキュリティに関してすべてを語るとキリが無いので、初歩的かつ要注意な部分にフォーカスしようと思います。
sshd_config.d の罠
前回の記事でも取り上げましたが、SSHは攻撃対象になりやすい上に、セキュリティ対策を怠るとサーバに侵入されて大変なことになります。
そのため、とりあえず /etc/ssh/sshd_config で以下の設定を行う人は多いと思います。
PermitRootLogin no
PasswordAuthentication no
SSHを使うなら必須級の設定ですね。rootユーザへの直ログインや、パスワード認証を無効化することで、セキュリティを大幅に向上できます。
しかし、/etc/ssh/sshd_config を修正し、sshd を再起動するだけだと、一部の設定が反映されません。
実は、/etc/ssh/sshd_config.d/ を見ると、複数のconfファイルが置かれていることがわかります。
これらのファイルは、/etc/ssh/sshd_config より後に反映されるため、/etc/ssh/sshd_config の設定を上書きしてしまうのです!
そして、中でも 01-permitrootlogin.conf を確認すると…
PermitRootLogin Yesアカ~ン!
ということで、これらのファイルはちゃんと中身を確認し、必要に応じて修正・削除を行いましょう。
SELinux の有効化
# getenforce
Disabledアカ~ン!
なんと、SELinux が無効化されています。
たしかに、SELinux は色々と制約が多くて鬱陶しいこともあり、無効にしましょうと言う人も多いですが、セキュリティ対策としては非常に有効なので、個人的には Enforcing にした方が良いと思います。
(無効化する明確な理由があれば良いと思いますが、大半は「面倒くさい」「よく分からないけど邪魔」みたいな理由なので…)
ということで、/etc/selinux/config を開き、SELINUX=enforcing に修正するのですが、そのまま再起動するとログインが一切できなくなります!
再起動する前には、必ず
# fixfiles -T 0 onbootを実行するようにしましょう。
ただ、ConoHa VPS は SELinux が無効の前提でプロビジョニングされているはずなので、無理やり有効にするよりは、別のISOイメージを使った方がいいかもしれないです。
SSH ポート変更で必要な5つの設定
SSH は、デフォルトだとサーバの22番ポートで受け付けます。
そのため、デフォルトのポートから変更した方が良い、と言われており、SSH のポート番号を変更する人も多いと思います。
ポートスキャンを行えばどのポートが開いているかすぐ分かってしまうので、あまり意味がないという意見もあります。
個人的には、ポートを変更することで攻撃の頻度を減らすことができる上に、特段大きいデメリットも無いので変更した方が良いと思っています。
しかし、SSH のポート番号を変更する際は、設定を5つ変更する必要があります。最後の変更は見逃しがちなので注意です。
1. sshd_config の変更
当たり前ですが、Port を任意のポート番号に変更します。
2. SELinux ポリシーの変更
SELinux が有効な場合、デフォルト以外のポートを設定して sshd を再起動するとエラーが発生します。
SELinux ポリシーを変更し、設定したポートを SSH で使えるようにしてから sshd を再起動します。
# semanage port -a -t ssh_port_t -p tcp <ポート番号>3. firewalld の設定変更
ファイアウォールの設定を変更し、設定したポートを開きます。
デフォルトのポートを閉じ忘れないように注意。
# firewall-cmd --zone=public --remove-service=ssh --permanent
# firewall-cmd --zone=public --add-port=<ポート番号>/tcp --permanent
# firewall-cmd --reload4. セキュリティグループの設定
ConoHa VPSのWebコンソールから、設定したポートへのインバウンド通信を許可する新しいセキュリティグループを作成し、サーバへ適用します。
5. fail2ban の設定変更
一般的には1~4で設定完了ですが、ConoHa VPS では、デフォルトでfail2ban が稼働しています。これは、前回の記事のような「ブルートフォースアタック」によって、同じIPアドレスによる SSH ログインの失敗が連続で発生した場合に、そのIPアドレスからのアクセスを拒否するルールを firewalld へ自動的に追加してくれる便利なアプリケーションです。
(厳密には、SSH 以外にも用途があります。)
デフォルトだと、対象のIPアドレスによる22番ポートを拒否するルールを作成する設定になっているため、SSH のポートを変更してしまうと、fail2ban が何の意味も果たさなくなってしまいます。
そのため、fail2ban の設定も変更しましょう。
# cp /etc/fail2ban/jail.local /etc/fail2ban/jail.local.org
# echo "port = 0:65535" >> /etc/fail2ban/jail.local
# systemctl restart fail2ban新しい SSH のポートのみに対して動作するよう設定してもいいですが、基本的には fail2ban が作動する時点で、接続元は悪意を持った攻撃者だと思いますので、上記のように、すべてのポートに対して動作するよう設定してしまえば良いです。
パッケージの更新
ConoHa VPSに限らずですが、忘れずに行いましょう。
どんなに完璧なセキュリティ設定を行っても、利用しているOSやアプリケーションに脆弱性があったら意味がありません。
もちろん定期的な更新も大事。
# dnf updateおわりに
他にも、重要なセキュリティ対策はたくさんあると思いますので、ぜひコメント欄にいろいろと書き込んでもらえたら嬉しいです。
それでは。


コメント