Мне нужна помощь с защитой моего тестового сервера XAMPP, так как пока ничего из того, что я пробовал, похоже, не работает. Я запускаю Apache 2.4.7 на машине с Windows 7.
Настройка следующая:
Я перенаправляю весь трафик, поступающий на IP-адрес моего сервера, порт 80, в приложение Java, работающее на localhost:5000
.
Код, делающий все это в httpd-vhosts.conf
файл следующий:
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ServerName demo.website.com
ServerAlias website.com
ProxyPass / http://localhost:5000/
ProxyPassReverse / http://localhost:5000/
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
Вопрос в том, как мне deny
трафик с определенного внешнего IP-адреса?
Кажется, я не могу использовать .htaccess
потому что запросы на порт 80 перенаправляются в приложение java, а не в папку xampp, содержащую веб-контент.
Кроме того, приведенный ниже код тоже не работает:
<Proxy *>
order allow,deny
deny from 193.37.XXX.XX
allow from all
</Proxy>
Какие еще есть варианты?
Какие-либо предложения?
РЕДАКТИРОВАТЬ:
После ответов, которые я получил, похоже, что я делал обратный прокси-сервер совершенно неправильно, открывая уязвимые места на сервере. На основании полученного ответа я изменил свой исходный код.
Поскольку я использую аналогичный небезопасный код для порта 443 и не могу запустить apache после новых модификаций, я разместил новый вопрос. ВОТ.
Как уже прокомментировал @MichaelHampton: немедленно удалите следующие настройки:
<Proxy *>
order allow,deny
deny from 193.37.XXX.XX
allow from all
</Proxy>
Это не нужно для обратный прокси но вместо этого используется для настройки вперед доверенное лицо , открыта практически для всех, что позволит злоупотреблять вашим сервером. (К счастью, вы все еще использовали ProxyRequests off
)
Кстати, когда вам нужен прямой прокси, пожалуйста, не используйте Apache httpd, а более конкретный продукт.
Кажется, я не могу использовать .htaccess ...
ИМХО, вы уже идете в неправильном направлении с намерением создать .htaccess
файлы, что меня беспокоит, цитируется из руководство по .htaccess файлы:
Вам следует избегать использования
.htaccess
файлы полностью если у вас есть доступ к конфигурации главного сервера httpd файл. С помощью.htaccess
файлы замедляют ваш http-сервер Apache. Любая директива, которую вы можете включить в.htaccess
файл лучше установить вDirectory
блок в основном файле (ах) конфигурации Apache, так как он будет иметь тот же эффект с лучшей производительностью) и объединить это с
Но причина того, что в этом случае .htaccess не будет работать, заключается в том, что они применяют настройки к ресурсам в локальной файловой системе из каталога, а с обратным прокси-сервером контент извлекается из другого места с помощью Apache httpd.
Решение вашей реальной проблемы, например, как применить дополнительные элементы управления доступом и белый / черный список IP-адресов на URL обратного прокси: вы помещаете ProxyPass
директивы и дополнительные директивы в <Location>
блок в вашей конфигурации (который также начиная с Apache 2.4 является синтаксисом конфигурации, который обеспечивает лучшую производительность) и добавить к ограничению IP-адреса с помощью Require
директива в это место:
<VirtualHost *:80>
ServerName demo.website.com
ServerAlias website.com
<Location />
<RequireAll>
# Block IP-addresses from the 193.37.0.0/16 and 10.9.8.0/24 networks
Require not ip 193.37 10.9.8
# Allow all other IP's
Require all granted
</RequireAll>
ProxyPass http://localhost:5000/
ProxyPassReverse http://localhost:5000/
</Location>
</VirtualHost>