「Apache and SELinux」がよくまとまっています。
プロセスがSELinuxで守られていることを確認
# ps -ZC httpd # ps -eZ
ファイルがSELinuxで守られていることを確認
# ls -Z /var/www/html
SELinuxのtypeにどんなものがあるか確認
# getsebool -a | grep httpd
cgiの有効化
# setsebool -P httpd_enable_cgi 1 # chcon -t httpd_sys_script_exec_t sample.cgi
ユーザのhomeを有効化
# setsebool -P httpd_enable_homedirs 1 # chcon -R -t httpd_sys_content_t ~user/public_html
ターミナルへのアクセスを有効化(certificate fileへのパスワード入力時などに必要)
# setsebool -P httpd_tty_comm 1
ファイルコントロールコンテキストは無効
# setsebool -P httpd_unified 0
PHP対策
# setsebool -P httpd_builtin_scripting 1
DB対策
# setsebool -P httpd_can_network_connect_db on
httpdからのネットワーク接続を有効化。
httpd経由で他のマシンへのアタックをさせないためには無効化が必要(?)
# setsebool -P httpd_can_network_connect 1
suexec Transitionの無効化
# setsebool -P httpd_suexec_disable_trans 1
httpd Daemon Transitionの無効化
# setsebool -P httpd_disable_trans 1
最後に再起動
# service httpd restart
httpポートを81へ変更する場合
# semanage port -l | grep http # semanage port -a -t http_port_t -p tcp 81