selinuxはPHP execのpingをブロックします。

selinuxはPHP execのpingをブロックします。

Apache サーバーは Centos7 を実行します。 PHPの「exec」コマンドでpingを試みていますが、「ソケット:権限が拒否されました」というメッセージが表示されます。 selinuxを無効にしても機能します。私のLinuxの知識は少し制限されており、この問題を解決する方法がわかりません。

selinuxでいくつかのポリシー更新が発生し、pingが実行されますが、100%パケット損失のために宛先IPに到達できませんが、selinuxが無効になっていると宛先に到達するのと同じです。

ベストアンサー1

私はSELinuxが悪いものをつかむことが好きです。この場合、

  1. exec:はい、外部の実行可能ファイルを実行しているPHPスクリプトにサーバー構成がどのように反応するかを確認できます。少なくとも実際にユーザー入力をいくつかのシェルに渡さないことを願っています!
  2. ICMP要求(「ping」)を実行する必要がある場合は、呼び出し実行可能ファイル(/usr/bin/phpなど)のファイル形式を指定する必要がありますping_exec_t文書

全体的に、経験が足りない開発者なら(私たち全員はある意味ではそうです!) おそらく次のような文章を書いているでしょう。実際にサーバーをリモート実行の問題にさらすこと(execPHPで使用されるのは一般的に非常に大きな危険信号であるため、CentOSがこれを無効にするようにSELinuxで構成されています)。呼び出しは、ping実際に関心のあるサービスへの直接(たとえばTCP)接続を確立することに置き換えることができ、可能であればこれを行う必要があります。

おすすめ記事