ops: Implement ACL for internal APIs

This commit is contained in:
wiz 2024-02-27 11:45:35 +09:00
parent 43fde86e9d
commit e918e1fdab
No known key found for this signature in database
GPG Key ID: A394E332255A6173
3 changed files with 16 additions and 2 deletions

View File

@ -0,0 +1,6 @@
# used for "internal" API restriction
geo $remote_addr $mempool_external {
127.0.0.1 '';
::1 '';
default 1;
}

View File

@ -4,10 +4,17 @@
# Block the internal APIs of esplora
location /api/internal/ {
return 403;
if ($mempool_external) {
return 403;
}
rewrite ^/api/(.*) /$1 break;
try_files /dev/null @esplora-api-cache-disabled;
}
location /api/v1/internal/ {
return 403;
if ($mempool_external) {
return 403;
}
try_files /dev/null @mempool-api-v1-cache-normal;
}
# websocket has special HTTP headers

View File

@ -19,6 +19,7 @@ http {
# HTTP basic configuration
include mempool/production/nginx/http-basic.conf;
include mempool/production/nginx/http-acl.conf;
include mempool/production/nginx/http-proxy-cache.conf;
include mempool/production/nginx/http-language.conf;