Não é possível adicionar restrição de extensão de arquivo no servidor webdav (apache)

Não é possível adicionar restrição de extensão de arquivo no servidor webdav (apache)

Configurei um servidor webdav no Ubuntu 22.04 usando Apache. Aqui está meu arquivo de configuração na pasta habilitada para sites e funciona assim:

<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerAdmin %%EMAIL%%
        ServerName %%DOMAIN%%
        DocumentRoot %%PATH%%
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        Alias /webdav /var/www/webdav

        <Directory /var/www/webdav>
            DAV On

AuthType Digest
AuthName "webdav"
AuthUserFile /usr/local/apache/var/users.password
Require valid-user
    SetHandler None
    Options None
    AllowOverride None


        </Directory>


SSLCertificateFile /etc/letsencrypt/live/%%DOMAIN%%/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/%%DOMAIN%%/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

O problema é que ele permite adicionar arquivos php para instâncias, e esses arquivos podem ser executados chamando-os ou editando-os no webdav. Este é um problema de segurança claro.

Eu tentei adicionar:

<FilesMatch "\.(php|jsp|cgi|pl|py)$">
    Order Allow,Deny
    Deny from all
</FilesMatch>

Tanto dentro da tag Directory quanto fora, mas, após reiniciar o apache ou mesmo todo o servidor recebo um 403 Forbidden ao tentar conectar com cadaver :

cadaver %%URL%%
Authentication required for webdav on server `%%URL%%':
Username: %%USERNAME%%
Password: %%PASSWORD%%
Could not open collection:
403 Forbidden
dav:/webdav/?

Considerando que, quando removo a tag FileMatch, não recebo nenhum erro e consigo me conectar.

Aqui estão os logs de erros do Apache2 ao reiniciar o Apache e adicionar a tag FileMatch (eu tenho esses logs se eu remover a tag FileMatch também):

[Sun Sep 03 20:14:01.728312 2023] [mpm_prefork:notice] [pid 1259] AH00169: caught SIGTERM, shutting down
[Sun Sep 03 20:14:01.821721 2023] [mpm_prefork:notice] [pid 1465] AH00163: Apache/2.4.41 (Ubuntu) OpenSSL/1.1.1f configured -- resuming normal operations
[Sun Sep 03 20:14:01.821792 2023] [core:notice] [pid 1465] AH00094: Command line: '/usr/sbin/apache2'

E aqui estão os logs quando tento me conectar (não tenho esses logs se remover a tag FilesMatch):

[Sun Sep 03 20:15:40.271797 2023] [access_compat:error] [pid 1467] [client %%IP%%:44836] AH01797: client denied by server configuration: /var/www/webdav/index.cgi
[Sun Sep 03 20:15:40.271967 2023] [access_compat:error] [pid 1467] [client %%IP%%:44836] AH01797: client denied by server configuration: /var/www/webdav/index.pl
[Sun Sep 03 20:15:40.272037 2023] [access_compat:error] [pid 1467] [client %%IP%%:44836] AH01797: client denied by server configuration: /var/www/webdav/index.php

informação relacionada