一部の Linux ディストリビューションでは、SELinux がデフォルトで有効になっています。 SELinux の仕組みとその設定方法に関する基本的な詳細を理解していません。 SELinux を理解し、環境に実装することを強くお勧めします。ただし、SELinux の実装の詳細を理解するまでは、不要な問題を回避するために SELinux を無効にすることをお勧めします。
SELinux を無効にするには この記事で説明した 4 つの異なる方法のいずれかを使用できます。
SELinux は、米国国防総省が定義した Linux Security Module (LSM) を使用して定義された必須のアクセス制御を含むセキュリティ ポリシーを適用します。 Linux カーネルで。システム内のすべてのファイルとプロセスは、SELinux によって使用される特定のラベルでタグ付けされます。 ls -Z を使用して、以下に示すようにこれらのラベルを表示できます。
# ls -Z /etc/ -rw-r--r-- root root system_u:object_r:etc_t:s0 a2ps.cfg -rw-r--r-- root root system_u:object_r:adjtime_t:s0 adjtime -rw-r--r-- root root system_u:object_r:etc_aliases_t:s0 aliases drwxr-x--- root root system_u:object_r:auditd_etc_t:s0 audit drwxr-xr-x root root system_u:object_r:etc_runtime_t:s0 blkid drwxr-xr-x root root system_u:object_r:bluetooth_conf_t:s0 bluetooth drwx------ root root system_u:object_r:system_cron_spool_t:s0 cron.d -rw-rw-r-- root disk system_u:object_r:amanda_dumpdates_t:s0 dumpdates
方法 1:SELinux を一時的に無効にする
SELinux を一時的に無効にするには、以下に示すように /selinux/enforce ファイルを変更する必要があります。この設定は、システムの再起動後に失われることに注意してください。
# cat /selinux/enforce 1 # echo 0 > /selinux/enforce # cat /selinux/enforce 0
以下に示すように、setenforce コマンドを使用して SELinux を無効にすることもできます。 setenforce コマンドに使用できるパラメータは次のとおりです:Enforcing 、Permissive、1 (有効) または 0 (無効)。
# setenforce 0
方法 2:SELinux を完全に無効にする
SELinux を永続的に無効にするには、/etc/selinux/config を変更し、以下に示すように SELINUX=disabled を設定します。 /etc/selinux/config に変更を加えたら、サーバーを再起動して変更を反映させます。
# cat /etc/selinux/config SELINUX=disabled SELINUXTYPE=targeted SETLOCALDEFS=0
SELINUX の可能な値は次のとおりです。 /etc/selinux/config の変数 ファイル
- 強制 – セキュリティ ポリシーは常に適用されます
- 許容 – これは、警告メッセージを出力するだけで、SELinux を実際に強制しないことで、強制ポリシーをシミュレートするだけです。これは、最初に SELinux がどのように機能するかを確認し、後でどのポリシーを適用する必要があるかを理解するのに役立ちます。
- 無効 – SELinux を完全に無効にする
SELINUXTYPE の可能な値は次のとおりです。 /etc/selinux/config の変数 ファイル。これは、SELinux に使用できるポリシーのタイプを示します。
- ターゲットを絞った – このポリシーは、特定のターゲット ネットワーク デーモンのみを保護します。
- 厳格 – これは、SELinux を最大限に保護するためのものです。
方法 3:Grub ブート ローダーから SELinux を無効にする
システムに /etc/selinux/config ファイルが見つからない場合は、以下に示すように、パラメータとして Grub ブート ローダーに渡すことで SELinux を無効にできます。
# cat /boot/grub/grub.conf default=0 timeout=5 splashimage=(hd0,0)/boot/grub/splash.xpm.gz hiddenmenu title Enterprise Linux Enterprise Linux Server (2.6.18-92.el5PAE) root (hd0,0) kernel /boot/vmlinuz-2.6.18-92.el5PAE ro root=LABEL=/ rhgb quiet selinux=0 initrd /boot/initrd-2.6.18-92.el5PAE.img title Enterprise Linux Enterprise Linux Server (2.6.18-92.el5) root (hd0,0) kernel /boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet selinux=0 initrd /boot/initrd-2.6.18-92.el5.img
方法 4:SELinux – HTTP/Apache で特定のサービスのみを無効にする
SELinux 全体を無効にすることに関心がない場合は、特定のサービスに対してのみ SELinux を無効にすることもできます。たとえば、HTTP/Apache サービスの SELinux を無効にし、httpd_disable_trans を変更します。 /etc/selinux/targeted/booleans の変数 file.
以下に示すように、httpd_disable_trans 変数を 1 に設定します。
# grep httpd /etc/selinux/targeted/booleans httpd_builtin_scripting=1 httpd_disable_trans=1 httpd_enable_cgi=1 httpd_enable_homedirs=1 httpd_ssi_exec=1 httpd_tty_comm=0 httpd_unified=1
以下に示すように、setsebool コマンドを使用して SELinux ブール値を設定します。この変更後、必ず HTTP サービスを再起動してください。
# setsebool httpd_disable_trans 1 # service httpd restart