У меня есть конфигурация apache2 vHost с ProxyPass / ProxyPassReverse, и мне нужно ограничить доступ к некоторым статическим IP-адресам и ко всем IP-адресам Pingdom.
Список IP-адресов Pingdom представляет собой список файлов с одним IP-адресом.адрес в строке:
5.172.196.188
5.178.78.77
13.232.220.164
23.22.2.46
23.83.129.219
23.111.152.74
.
.
.
Полный список IP-адресов можно найти по адресу https://my.pingdom.com/probes/ipv4.
Я скачал список IP-адресов Pingdom, так как я не нашел никакого решения для чтения списканепосредственно с их веб-сайта.
Разрешить / Запретить работает должным образом, пока я не настроил Allow from env=PINGDOM
.Как только я добавлю вышеупомянутую строку конфигурации, все клиентские IP-адреса смогут добраться до сайта.
<VirtualHost *:443>
ServerAdmin contact@example.com
ServerName site.example.com
RewriteEngine on
RewriteMap allowed "txt:/var/www/pingdom_ip_addresses"
UnsetEnv PINGDOM
RewriteCond ${allowed:%{REMOTE_ADDR}} ""
RewriteRule ^ - [E=PINGDOM]
<Proxy *>
Order Deny,Allow
Deny from all
# Static IPs
Allow from 1.2.3.10/32
Allow from 1.2.3.20/32
# Pingdom
Allow from env=PINGDOM
</Proxy>
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:8080/example-site/
ProxyPassReverse / http://localhost:8080/example-site/
SSLEngine ON
SSLCertificateFile /etc/letsencrypt/live/site.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/site.example.com/privkey.pem
</VirtualHost>
Нашел подобное решение здесь: https://stackoverflow.com/a/53012839
Но там,Файл списка IP-адресов имеет 1
рядом с каждым IP-адресом.В списке Pingdom этого нет.
Как должно выглядеть мое правило, чтобы оно работало как положено?