[+] restrict _metrics ips
1. resolve provided host name as ip address and use it allow clients for _metrics endpoint; 1.1. fixed _metrics being exposed from outside, with -H 'Host: blah';
This commit is contained in:
parent
a7cb247a4e
commit
4152024ce7
@ -1,4 +1,5 @@
|
|||||||
import json
|
import json
|
||||||
|
import socket
|
||||||
import os
|
import os
|
||||||
import io
|
import io
|
||||||
import sys
|
import sys
|
||||||
@ -291,6 +292,11 @@ stream {
|
|||||||
if 'default_server' in ssl_nginx:
|
if 'default_server' in ssl_nginx:
|
||||||
server = ssl_nginx['default_server']
|
server = ssl_nginx['default_server']
|
||||||
|
|
||||||
|
if 'metrics_allowed' in server:
|
||||||
|
metrics_allowed_ip = socket.gethostbyname(server['metrics_allowed'])
|
||||||
|
else:
|
||||||
|
metrics_allowed_ip = '127.0.0.1'
|
||||||
|
|
||||||
servers.append(
|
servers.append(
|
||||||
r'''
|
r'''
|
||||||
server {
|
server {
|
||||||
@ -300,8 +306,9 @@ server {
|
|||||||
location = /_metrics {
|
location = /_metrics {
|
||||||
stub_status;
|
stub_status;
|
||||||
access_log off;
|
access_log off;
|
||||||
allow 172.0.0.0/8;
|
# allow 172.0.0.0/8;
|
||||||
allow 127.0.0.1;
|
allow {metrics_allowed_ip};
|
||||||
|
# allow 127.0.0.1;
|
||||||
deny all;
|
deny all;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -335,6 +342,8 @@ server {
|
|||||||
'{domain_key}', server['domain_key'],
|
'{domain_key}', server['domain_key'],
|
||||||
).replace(
|
).replace(
|
||||||
'{ssl_port}', '%d' % ssl_port,
|
'{ssl_port}', '%d' % ssl_port,
|
||||||
|
).replace(
|
||||||
|
'{metrics_allowed_ip}', metrics_allowed_ip
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user