まとめ
- CentOS 7.5 で SELinux をオン(enforcing)にすると再起動後、ログインできなくなる。
- SELinux を使いたい場合は ConoHa は利用しないほうが良さそう。
再現手順
サーバ作成
- VPS: 512MB
- OS: CentOS 7.5(64bit)
root パスワードを設定し、他は、なにも変更しないで追加をクリックして作成しました。
SELinux の現状を確認
サーバページへ行き、コンソールをクリック
root でログイン
getenforce
SELinux を有効にする
- 4.4. SELinux の状態とモードの永続的変更 – Red Hat Customer Portal
- 4.4.1. SELinux の有効化
の手順にしたがって行いました。
必要なパッケージがインストールされているか確認
rpm -q selinux-policy-targeted rpm -q selinux-policy rpm -q libselinux rpm -q libselinux-python rpm -q libselinux-utils rpm -q policycoreutils rpm -q policycoreutils-python
上記コマンドを実行して確認した結果、すべてインストールされていることがわかりました。
Enforcing モードへの変更
/etc/selinux/config ファイルの SELINUX を enforcing へと修正しました。
cp -a /etc/selinux/config /etc/selinux/config.org vi /etc/selinux/config diff -up /etc/selinux/config.org /etc/selinux/config
SELinux のモード変更の反映
システムを再起動しました。
reboot
結果
root でログインできなくなりました。
Permissive モードに変更してはどうか?
- 5.4. SELinux の有効化および無効化 – Red Hat Customer Portal
- 5.4.1. SELinux の有効化
にしたがい、disabled から一旦 permissive に変更し、/var/log/messages ログに、システム起動時に SELinux がアクセスを拒否しているかどうかを確認してみます。
つまり、アクセス拒否を起こしているがゆえに、ログインができなくなっていると予想したのです。
vi /etc/selinux/config # SELINUX=permissive と修正 reboot # SELinux が最後の起動時にアクセスを拒否したことがあるかを確認 grep "SELinux is preventing" /var/log/messages
結果は、SELinux によるアクセス拒否は、ありませんでした。
SELinux だけで grep してみましたけれども、これではなさそうな感じがします。
となりますと、enforcing にした時のログインできなくなる原因は、わかりません><。
おわりに
【WordPress】BackWPup から別のサーバへ復元、リストアした記録 – oki2a24 にて、次回への宿題として SELinux がなぜか無効になっているので有効化することを挙げました。
実は、本投稿を執筆する前に同じことを行って、一度 WordPress サーバがダメになりました。
そして投稿も2つ無くなり、書き直しています。慢心ゆえです。恥ずかしい。。。
今回は、本当に ConoHa では SELinux が使えないのか、を確かめました。
結論としては、SELinux を使いたいときは、ConoHa は使わないほうがよい、ということでしょうか。
残念ですが、結果がわかってよかったと思います。
以上です。