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