先日、USBストレージにインストールしたFeodra 37 ServerをRaspberry Pi 4で起動してみました。
インターネットからアクセス可能なサーバとして使用する場合。
セキュリティ強化の面から、SELinuxは有効が望ましいと考えています。
しかし、Fedoraといいますか、RHEL系はアプリが思った通りに動かない?という状況で、SELinuxが原因というケースがあります。
そのような理由から、SELinuxを無効にしてからアプリを動かしたい状況も確実に御座います。
既定でSELinuxは有効ですが、無効にする手順を記録させて頂こうと思います。
目次
Fedora LinuxのSELinux設定手順
公式資料はこちらのようです。
https://docs.fedoraproject.org/en-US/quick-docs/changing-selinux-states-and-modes/
SELinuxの状態確認
sestatus
既定では有効「enabled」のようです。
またモードは「enforcing」になっています。
何かアプリが不正な動作とみなされると、即座に遮断されてしまう動作モードです。
SELinuxの無効化
SELinuxの設定ファイルを変更します。
sudo vi /etc/selinux/config
SELINUX=enforcing
# 行を削除
SELINUX=disabled
# 行を追加
# 保存後、再起動
sudo reboot
再起動後、状態を確認しますと。このような感じでステータスがDisabledに変わりました。
コマンドでconfigファイルを変更
※23.1.14追記
毎回エディタでconfigファイルを書き換えるのも大変ですので。
コマンドで確認・変更する手順を記録しようとおもいます。
configの該当設定の確認
# 現在の状態確認
getenforce
# 設定の確認
grep ^SELINUX= /etc/selinux/config
configを無効に設定
# SELinux無効化
# 該当行が書き換わっているか確認
sed -e 's/^SELINUX=[a-z]*/SELINUX=disabled/g' /etc/selinux/config
# 変更反映
sudo sed -i -e 's/^SELINUX=[a-z]*/SELINUX=disabled/g' /etc/selinux/config
# 設定の確認
grep ^SELINUX= /etc/selinux/config
# 再起動して設定変更を反映
sudo reboot
# 現在の状態確認
getenforce
configを有効に設定
# SELinux有効化
# 該当行が書き換わっているか確認
sed -e 's/^SELINUX=[a-z]*/SELINUX=enforcing/g' /etc/selinux/config
# 変更反映
sudo sed -i -e 's/^SELINUX=[a-z]*/SELINUX=enforcing/g' /etc/selinux/config
# 設定の確認
grep ^SELINUX= /etc/selinux/config
# 再起動して設定変更を反映
sudo reboot
# 現在の状態確認
getenforce
切り替えは、sed -i行をコピペして実行する感じです。
冒頭に記載させて頂いた通り。
サーバとしてインターネット上で公開する場合は、SELinuxを有効にしたほうが良いと思いますが。
とはいえ、SELinuxが有効な場合、動かせるアプリの自由度は大きく下がります。
有効にする過程で、アプリを正常に動作させるための調査のため、一時的にSELinuxを無効にしたり、ログを取得するモードにする場合があるかと思います。
有効な状態で運用できるようになるべく努力したいなと思いますです。