Linux上のApacheでCGIを利用してソケット通信を行いたい場合がありますが、SELinuxではデフォルトで許可されていません。
今回は、CGIでftp通信を行おうとしたのですが、拒否されてしまいました。
対策としては、SELinuxの設定を変更してApache(httpd)から発行されたソケット通信を含む処理を許可してあげます。
以下はその方法です。
まずデフォルトの設定状態を確認します。
1 2 3 4 5 6 |
# getsebool -a | grep httpd_can_network httpd_can_network_connect --> off httpd_can_network_connect_cobbler --> off httpd_can_network_connect_db --> off httpd_can_network_memcache --> off httpd_can_network_relay --> off |
次にhttpd_can_network_connectを許可します。
1 |
# setsebool -P httpd_can_network_connect on |
再度、設定内容を確認します。
1 2 3 4 5 6 |
# getsebool -a | grep httpd_can_network httpd_can_network_connect --> on httpd_can_network_connect_cobbler --> off httpd_can_network_connect_db --> off httpd_can_network_memcache --> off httpd_can_network_relay --> off |
これで、ソケット通信は可能になります。