Redhat Linux 7(RHEL7)にRabbitMQをインストールしようとしています。 RabbitMQのウェブサイトの指示に従い、正しくインストールされました。ただし、SELinux は Erlang がポート 25672 にバインドするのを防ぐため、実行されません。
私はgithubのSELinuxリポジトリでSELinuxポリシーファイルを見つけましたが、それを構築して適用する方法がわかりません。
他のLinuxディストリビューションへの参照が引き続き表示されるか、audit2allowを使用しているため、Google検索に失敗しました。
Rabbitmqポリシーファイルを適用する方法https://github.com/selinux-policy/selinux-policy/tree/f21-contrib私のRHEL7ボックスに?
答え1
カスタムポリシーを適用するためのガイドラインは次のとおりです。スプランクRHEL7から。これはあなたのアプリケーションとほぼ同じでなければなりません。指示に従い、Fedoraリポジトリのポリシーファイルを使用します。もちろん、開発環境でまずこれを実行して、アプリケーションで機能していることを確認してください。
以下は、そのままコピーされた重要なガイドラインです。
- このポリシーをサーバーにダウンロード/アップロードし(git cloneを使用していない場合はzipを解凍して)、
cd
ディレクトリに移動します。 yum install policycoreutils-python setools-console selinux-policy-devel
cp splunk.if /usr/share/selinux/devel/include/services/
make -f /usr/share/selinux/devel/Makefile DISTRO=rhel7
semodule -i splunk.pp
semanage permissive -a splunk_t
restorecon -R /opt/splunk
restorecon /etc/init.d/splunk
/etc/init.d/splunk restart
答え2
ポートの使用状況を確認してください。
# seinfo --portcon=25672
portcon tcp 25672 system_u:object_r:rabbitmq_port_t:s0
portcon tcp 1024-32767 system_u:object_r:unreserved_port_t:s0
portcon udp 1024-32767 system_u:object_r:unreserved_port_t:s0
だから私は何がうまくいくのか見たいです。
# sesearch -A -s rabbitmq_t -t rabbitmq_port_t
Found 5 semantic av rules:
allow rabbitmq_t rabbitmq_port_t : tcp_socket { name_bind name_connect } ;
allow nsswitch_domain port_type : tcp_socket { recv_msg send_msg } ;
allow nsswitch_domain port_type : udp_socket { recv_msg send_msg } ;
allow rabbitmq_t port_type : tcp_socket { recv_msg send_msg } ;
allow rabbitmq_t port_type : udp_socket { recv_msg send_msg } ;
rabbitmq_exec_t
したがって、ポートにバインドできるようにRabbitmq実行可能ファイルのラベルを再指定する必要があるようです。これは RHEL7 の基本方針の一部です。 (これが最初からコンパイルする代わりにパッケージを使用する理由です)