Назад | Перейти на главную страницу

Ограничить доступ к серверу apache только для обратного прокси nginx?

У меня есть настройка nginx в качестве обратного прокси для группы бэкэндов apache (LAMP), прослушивающих порт 8080.

Я также настроил все внутренние серверы. mod_rpaf.conf файл для включения прокси-IP сервера nginx:

<IfModule mod_rpaf.c>
  RPAF_Enable       On
  RPAF_ProxyIPs     127.0.0.1 192.168.0.1 # <- nginx server IP
  RPAF_Header       X-Forwarded-For
  RPAF_SetHostName  On
  RPAF_SetHTTPS     On
  RPAF_SetPort      On
</IfModule>

Как я могу настроить httpd.conf отказаться от любого соединения, которое исходит не от nginx?

Я пробовал следующее:

<Directory "/var/www/html">

    Order allow,deny
    Allow from 192.168.0.1
    Allow from 127
    Deny from all

</Directory>

Но это, похоже, ограничивает доступ к самому прокси nginx, а также к любым другим IP-адресам.

Это связано mod_rpaf пересылка клиентского IP? Если да, то как мне это обойти?

Поскольку модуль mod_rpaf перенаправляет реальный IP-адрес клиента, вы не можете заблокировать публичный доступ к внутреннему серверу apache через его собственный httpd.conf файл.

Настройка пары правил IPtables заблокирует доступ к порту 8080 для всех (общий доступ), кроме обратного прокси-сервера nginx, не влияя на пересылку реального IP-адреса клиентов:

Бегать:

#iptables -A INPUT -p tcp --dport 8080 -s 192.168.0.1 -j ACCEPT
#iptables -A INPUT -p tcp --dport 8080 -j DROP

#service iptables save
#service iptables restart

Доступ к внутреннему серверу apache через порт 8080 теперь ограничен только прокси-сервером nginx.

Я думаю, вам следует изменить порядок ваших allow / deny_statements следующим образом:

<Directory "/var/www/html">

    Order deny,allow
    Deny from all
    Allow from 192.168.0.1
    Allow from 127

</Directory>

так как (заказ-документы)

  • Заказ может быть одним из:

    Allow, Deny - сначала оцениваются все директивы Allow; хотя бы одно должно совпадать, иначе запрос будет отклонен. Затем оцениваются все директивы Deny. Если какие-либо совпадения, запрос отклоняется. Наконец, любые запросы, которые не соответствуют директивам Allow или Deny, по умолчанию отклоняются.

    Deny, Allow - сначала оцениваются все директивы Deny; в случае совпадения запрос отклоняется, если он также не соответствует директиве Allow. Разрешены любые запросы, не соответствующие директивам Allow или Deny.

пример из документы:

Использование Order позволит вам быть уверенным, что вы действительно ограничиваете действия той группы, в которую хотите впустить, путем объединения директив Deny и Allow:

Order deny,allow
Deny from all
Allow from dev.example.com