CentOS 7.3サーバーでSELinuxを有効にする処理を行っています。許可モードに設定して、拒否の監査ログを監視しています。サーバーで必要なすべてを許可し、それ以上は許可しない最小限のルールセットを実装したいと考えています。
だから今朝、昨夜WordPressのFTP更新機能を使ったとき、httpdがネットワークへの接続をブロックされていたことに気づきました。 audit2why
はどちらかを設定することをお勧めしますhttpd_can_network_relay
またはhttpd_can_network_connect
。
これら2つの違いを正しく理解していることを確認したいだけです。 httpd_can_network_connect
を使用すると、httpdが希望する発信ネットワーク接続を確立できます。一方、httpd_can_network_relay
はFTPポートと一時ポートのみを許可しますか?
audit2why
さんのコメント:
# setsebool -P httpd_can_network_connect 1
Description: Allow httpd to act as a relay
# setsebool -P httpd_can_network_relay 1
Description: Allow httpd to act as a FTP client connecting to the ftp port and ephemeral ports
もしそうなら、それは一時的なポートが何であるかをどのように定義するのでしょうか、それとも1024以上のものを許可するだけでしょうか?
私が見逃しているすべての詳細なリファレンスはありますか?
更新
コマンドへのコメントの順序を誤解していますが、上記は次のようになります。
Description: Allow HTTPD scripts and modules to connect to the network using TCP.
# setsebool -P httpd_can_network_connect 1
Description: Allow httpd to act as a relay
# setsebool -P httpd_can_network_relay 1
エニグマが言うように:
最初のオプション[httpd_can_network_relay]は、httpdがクライアントに代わってバックエンドhttpdにリクエストをリレーするリバースプロキシシナリオで使用されます。
はどうかと言うと httpd_can_network_connect
、httpdがスクリプトやモジュールを含むネットワーク接続を確立できるようにします。
基本的に、audit2whyからの出力は奇妙な方法でフォーマットされているため、どの説明がどのブール値に一致するかを判別するのは困難でした。そのため、それに基づく奇妙な質問です。私はそれを正しい解釈で質問を更新しました。
最初のオプション[httpd_can_network_relay
]は、httpdがクライアントに代わってバックエンドhttpdにリクエストをリレーするリバースプロキシシナリオで使用されます。
2番目の[httpd_can_network_connect
]を使用すると、httpdモジュールおよびスクリプトが、httpdサービスに関連付けられているポートへの発信接続を確立できます。これらのポートのリストを表示するには、semanage port -l | grep -w http_port_t
を実行します
シナリオを機能させるには、setsebool -P httpd_can_network_connect 1
を実行してから、このコマンドを実行してhttpdが接続できるポートを追加する必要がありますsemanage port -a -t http_port_t -p tcp <PORT>