nginx: 모든 도메인의 특정 URL(파일)에 대한 액세스 비활성화

nginx: 모든 도메인의 특정 URL(파일)에 대한 액세스 비활성화

모든 도메인에서 특정 PHP 파일에 대한 액세스를 차단하고 싶습니다. 나는 내가 사용할 수 있다는 것을 안다

location = /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
return 444;
}

예를 들어 서버 블록에 있지만 사전 필터처럼 모든 도메인에 대해 설정하고 싶습니다.

또 다른 가능한 아이디어는 각 도메인 구성에 포함을 추가하고 동일한 파일을 가리켜 이 규칙을 로드하는 것입니다. 하지만 nginx에서는 가능하고 Apache에서도 가능하다고 생각합니다.

답변1

간단한 방법은 include실제로 사용하는 것입니다. 이는 NGINX에 추가할 필요가 없습니다.

그렇지 않으면 잘 알려진 3개의 모듈(ngx_waf, Modsecurity 및 naxsi)이 있는 WAF 모듈을 찾을 수도 있습니다. 각각에 대한 구성은 다르지만 포함을 사용하는 대신 "한 곳"에서 이 작업을 수행할 수 있을 것이라고 생각합니다.

가능하다면 자신만의 NGINX 모듈을 생성할 수 있습니다. 하지만 약간 과잉일 수도 있지만... 그래도 다음과 같은 아이디어가 있습니다.

http {
    # applied to all websites
    bad_files xmlrpc.php .env;
    bad_files_status 444;
}

C에 익숙한 사람이라면 이러한 모듈을 비교적 쉽게 완료할 수 있습니다.

나는 include길을 따르겠습니다. include특히 구성 도구(예: ansible템플릿 기반 NGINX 구성) 를 사용하는 경우 각 서버 블록의 중복 은 문제가 되지 않습니다.

관련 정보