webdav 서버(apache)에 파일 확장자 제한을 추가할 수 없습니다.

webdav 서버(apache)에 파일 확장자 제한을 추가할 수 없습니다.

Apache를 사용하여 Ubuntu 22.04에 webdav 서버를 구성했습니다. 다음은 사이트 활성화 폴더에 있는 구성 파일이며 다음과 같이 작동합니다.

<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>

문제는 인스턴스에 대한 PHP 파일을 추가할 수 있고 해당 파일을 webdav에서 호출하거나 편집하여 실행할 수 있다는 것입니다. 이는 명백한 보안 문제입니다.

나는 다음을 추가하려고 시도했습니다.

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

디렉터리 태그 내부와 외부 모두에 있지만 Apache 또는 전체 서버를 다시 시작한 후 cadaver에 연결하려고 하면 403 Forbidden이 표시됩니다.

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

반면 FileMatch 태그를 제거하면 오류가 발생하지 않고 연결할 수 있습니다.

다음은 Apache를 다시 시작하고 FileMatch 태그를 추가할 때 발생하는 apache2 오류 로그입니다(FileMatch 태그도 제거하면 이 로그가 표시됩니다).

[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'

연결을 시도할 때 발생하는 로그는 다음과 같습니다(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

관련 정보