web-dev-qa-db-ja.com

SElinux:httpdが特定のポートに接続できるようにする

私のシステムは、Apache2.2.15でCentOS 6.4を実行しています。 SElinuxが適用され、python/wsgiアプリを介してredisのローカルインスタンスに接続しようとしています。エラー13が表示され、アクセスが拒否されました。次のコマンドで修正できます:

setsebool -P httpd_can_network_connect

ただし、httpdがすべてのtcpポートに接続できるようにしたくはありません。 httpdが接続を許可されるポート/ネットワークを指定するにはどうすればよいですか? httpdがポート6379(redis)または127.0.0.1上の任意のtcpに接続できるようにするモジュールを作成できたら、それが望ましいでしょう。なぜ私の妄想がこれに強いのかはわかりませんが、ちょっと...

誰か知ってる?

42
savagecitizen

使用する必要があるかもしれません

semanage port -m -t http_port_t -p tcp 6379

Semanageがない場合は、パッケージpolicycoreutils-pythonを追加します

yum install policycoreutils-python
17
Tom Hallam

Selinuxを一時的にpermissiveモードにして、httpdをredisに接続させ、次にaudit2allowを使用してカスタムポリシーモジュールを生成およびビルドできます。

3
A. M.