web-dev-qa-db-ja.com

Apacheはmod_securityログにアクセスできません

Mod-securityログにアクセスできないApache2サーバーがあります。

[email protected]:~$ apachectl -V
AH00526: Syntax error on line 196 of /etc/modsecurity/modsecurity.conf:
ModSecurity: Failed to open the audit log file: /var/log/Apache2/modsec_audit.log
Action '-V' failed.
The Apache error log may have more information.
[email protected]:~$ Sudo ls -la /var/log/Apache2/modsec_audit.log
-rw-rwxrwx 1 root www-data 101792 Oct 22 16:37 /var/log/Apache2/modsec_audit.log

誰もが(所有者、グループ、その他)ログファイルを開く権限を持っているので、私は少し戸惑っています。

編集:

[email protected].:/var/log/unattended-upgrades$ Sudo -u www-data touch /var/log/Apache2/modsec_audit.log
touch: cannot touch '/var/log/Apache2/modsec_audit.log': Permission denied

これは見知らぬ人になります...

edit2:

[email protected]:/var/log/unattended-upgrades$ Sudo ls -la /var/log/Apache2/
total 1015752
drw-r--r--  2 root adm          12288 Oct 22 15:55 .

edit3:

ls -la /var/log|grep Apache
drw-r--r--  2 root     adm       12288 Oct 22 15:55 Apache2
2
caliph

Modsec_audit.logに触れることはできませんでした。

Sudo -u www-data touch /var/log/Apache2/modsec_audit.log

ログディレクトリはroot:admに属しているためです。 www-dataはルートではなく、おそらくグループadmに属しています。グループおよびその他は、ログディレクトリでのみ読み取ることができます。実際に書き込むことができるのはroot:admだけです。

CentOS 7で同じ問題が発生しました。メインのhttpdプロセスがrootとして開始され、Apache:apacheとして実行されている多数の子プロセスが生成されます。 Debian/Ubuntuでは、Apacheとwww-dataの違いを除いて、同じである必要があります。

ここで、CentOS 7では、rootとしてapachectl、httpdなどのみを実行できます。それ以外の場合は、同じ「構文エラー」が発生します。また、これはmod_securityがインストールされている場合にのみ発生します。

これは基本的にapachectl/httpd/etcです。構文エラーがないか構成を確認するために非特権ユーザーとしてmod_securityを呼び出すが、mod_securityは明らかにセキュリティを真剣に受け止めており、そうする権限のない呼び出し元ユーザーに代わってログファイルを開くことができません。

だから、ただ走る

Sudo apachectl -V

または、

  • primユーザーをadmグループに追加します(ログファイルがroot:admによって所有され、グループが読み取りおよび/または書き込みを許可されていると仮定します)
  • chown root:primログファイル(これは本当に悪い考えですが、基本的なファイルパーミッションの問題であることを示す方法としてここにリストされています)。
1
ILIV