web-dev-qa-db-ja.com

SELinuxを介してMySQL接続を許可するにはどうすればよいですか?

セキュリティを強化するために、サーバー上でSELinuxを実行したままにしておきたいと思います。
私は通常、何でも機能させるためにSELinuxを無効にします。
MySQL接続を許可するようにSELinuxに指示するにはどうすればよいですか?
私がドキュメントで見つけたほとんどはmysql.comからのこの行です:

Linuxで実行していて、Security-Enhanced Linux(SELinux)が有効になっている場合は、mysqldプロセスのSELinux保護が無効になっていることを確認してください。

うわー...それは本当に便利です。

24
xivix

SELinuxを確認するには

sestatus

Httpdプロセスに設定されているフラグを確認するには

getsebool -a | grep httpd

ApacheがSELinux経由でリモートデータベースに接続できるようにするには

setsebool httpd_can_network_connect_db 1

-Pオプションを使用すると、変更が永続的になります。このオプションがない場合、ブール値は再起動時に0にリセットされます。

setsebool -P httpd_can_network_connect_db 1
44
Punjab

どうやらselinuxの設定は簡単ではありません。 ここから開始 にすることもできます。

setenforce 0

selinuxをパーミッシブモードにします。許可モードでは、許可されているもの以外は何でも許可されます。再起動または

setenforce 1

ポリシーで許可されていないものはすべてブロックに戻ります。

これらの FedoraでのmySQLのselinuxポリシードキュメント を確認してください。

2
Paul

エラーが発生しますか? Linuxのどのフレーバーを使用していますか?エラーが発生した場合は、セキュリティコンテキストから始めるのがよいでしょう。 ls -Zはコンテキストを提供します...しかし、あなたの質問は非常にあいまいです。

2
Tamler

ローカルポリシーも作成できます。

"ローカルポリシーモジュールを生成して、このアクセスを許可できます。次のコマンドを実行して、このアクセスを許可してください:"

grep httpd /var/log/audit/audit.log | audit2allow -M mypol

semodule -i mypol.pp

または、実際のセッションに対してグローバルに有効化します。

setsebool httpd_can_network_connect_db 1

または永続的:

setsebool -P httpd_can_network_connect_db 1
2
Raffaello

Selinuxでよろしいですか?外部からの通常の接続は、selinuxによって許可される必要があります。したがって、ファイアウォールでもある可能性があります。 mysqldに接続しようとしているローカルサービスがある場合、それは何か別のものです: http://docs.fedoraproject.org/en-US/Fedora/13/html/Managing_Confined_Services/sect-Managing_Confined_Services- MySQL-Booleans.html

1
AndreasM

ausearchコマンドは、エラーログの検索に役立ちます。

1
vnix27