Записывать IP-адрес клиента в журнал доступа apache при использовании обратной переадресации порта

У меня есть домашний сервер, у которого нет общедоступного IP-адреса (Интернет LTE), поэтому я использую другой сервер с общедоступным IP-адресом для выполнения обратного перенаправления портов.

Я перенаправляю порт 443 и 80, используя следующие параметры ssh на моем домашнем сервере:

-R *:80:*:80 -R *:443:*:443

Все работает отлично, и веб-сайт моего домашнего сервера доступен из Интернета через общедоступный IP-адрес. Но у меня есть одна проблема - я пропускаю IP-адреса клиентов в журналах доступа к apache. Вместо IP-адресов у меня там просто записи с :: 1 вместо IP-адреса:

::1 - - [11/Mar/2017:14:40:57 +0100] "GET / HTTP/1.0" 200 1775 "-" "-"

Я думаю, это результат обратной переадресации портов. Я попытался добавить дополнительные параметры в конфигурацию Apache LogFormat, но безуспешно. Есть ли способ сохранить реальный IP-адрес клиента в журналах доступа apache?

0
задан 12 March 2017 в 13:44
1 ответ

Вы не можете получить IP-адрес клиента при переадресации через SSH-туннель. Всё, что видит Apache, это удалённый IP TCP-соединение, которое является конечной точкой вашего SSH туннеля.

Чтобы получить реальный IP клиента, вам нужно настроить обратный прокси на вашем сервере, который имеет публичный IP-адрес, а затем заставить его добавить IP клиента в HTTP-заголовки.

После этого вам нужно добавить в ваш Apache конфигурацию, которая включает IP в HTTP-заголовках в лог-файл.

.
1
ответ дан 4 December 2019 в 16:20

Теги

Похожие вопросы