Безопасный Apache при использовании mod_proxy_http и mod_rewrite
У нас есть сервер Apache, который работает в качестве прокси для приложений, работающих на разных портах. Например:
domain.com/app1/service1 > localhost:101
domain.com/app1/service2 > localhost:102
domain.com/app2/service1 > localhost:201
Правила определения порта приложения довольно сложны, поэтому я использую скрипт для этого с помощью mod_rewrite:
RewriteEngine On
RewriteMap mapper prg:/foler/rewriteUrl.sh
RewriteRule ^(.*)$ ${mapper:%{REQUEST_URI}} [P]
Проблема, с которой я столкнулся, заключается в том, что, просматривая логи, боты часто запрашивают контент с других веб-сайтов. Я проверил, могу ли я прокси-контент с других серверов, и я мог:
telnet domain.com 80
GET http://www.yahoo.com/ HTTP/1.1
Host: www.yahoo.com
Здесь я получаю контент от Yahoo, что означает, что любой может подключиться к моему серверу и начать делать запросы к другим серверам.
Я видел, что Apache рекомендует защитить ваш прокси, как указано здесь:
http://httpd.apache.org/docs/trunk/mod/mod_proxy.html
Но проблема в том, что я не знаю, какие IP-адреса будут использовать мой сервер в расширенном режиме, поэтому мой вопрос заключается в том, как решить эту проблему, и в то же время любой может сделать запрос на мои приложения?
Некоторая дополнительная информация:
- Все мои приложения находятся на одной машине с моим сервером Apache
- Если мне нужно переместить мои приложения на другие серверы, они все еще будут в моем Интранете
- У меня есть mod_proxy, mod_proxy_http и mod_rewrite включены
Спасибо
1 ответ
Если я правильно понимаю, что вы делаете, вам нужен не прямой прокси, а шлюз, потому что все, что вы проксируете, - это запросы от глобальной сети к интрасети, то есть обратный прокси, почему бы просто не отключить ProxyRequest
?
ProxyRequest Off
Директива ProxyRequests
Это позволяет или запрещает Apache httpd функционировать в качестве прямого прокси-сервера. (Установка ProxyRequests на Off не запрещает использование директивы ProxyPass.)
В типичной конфигурации обратного прокси-сервера или шлюза этот параметр должен быть отключен.