woodyfon
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Имеется следующая система: HOST: windows 7 sp1 x86 Имеет белый IP GUEST: debian jessie x86 Настроено и работает на сетевых интерфейса eth0 (внешняя сеть), eth1 (внутренняя). Интерфейс eth0 сетевые настройки получает автоматически (В ВМ выбран NAT) Интерфейс eth1 настроен вручную. Применяется для простого обращения к серверу debian через терминал. На guest развернут тестовый web-сервер, работающий в связке tomcat + nginx. Через утилиту arno-iptables-firewall осуществлен доступ по 80 порту извне. Сделан проброс портов (80) на ip-адрес гостя. Если заходить с других машин - то все вроде как бы работает. Но в логах nginx указывается не внешний ip-адрес (адрес хоста), а ip-адрес роутера, который является по сути шлюзом для интерфейса eth0. Как и что сконфигурировать, чтобы логах nginx был реальный host пользователя. То же самое наблюдается при подключении через putty. Указан не удаленный ip-адрес, а адрес шлюза виртуальной машины. + Сам спросил сам и отвечу. Возможно, это будет полезно и другим. Конечно, можно было построить мост, но еще одного внешнего ip-адреса нету. Это тот случай, когда гугл не помог и пришлось обратиться к документации (п. 9.11.7 Configuring aliasing of the NAT engine), вспоминая свой собачий английский язык. По умолчанию натирование происходит полное: т. е. реальные адреса заменяются на ip-адрес шлюза ВМ. Чтобы такого не происходило, необходимо выполнить команду 1. Остановить виртуальную машину. 2. Запустить команду: Код: VBoxManage modifyvm "VM name" --nataliasmode1 proxyonly | где VM name - имя виртуальной машины Здесь также расскажу как настроить томкат, чтобы в лог писались реальные хосты, а не локальный хост. Понимаю, что это для опытных администраторов тривиальная задачка, но пост расчитан на новичков-админов. Настройка конфигурационного файла tomcat8 Код: <Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="X-Forwarded-For" requestAttribtesEnabled="true" internalProxies="127.0.0.1" /> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".log" requestAttributesEnabled="true" pattern="%h %l %u %t "%r" %s %b" /> | Здесь обязательно необходимо указывать requestAttributesEnabled="true" в AccessLogValve, иначе запись в лог будет происходить без изменений. nginx Код: location / { proxy_pass http://127.0.0.1:8080/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real_IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } | | Всего записей: 417 | Зарегистр. 03-08-2007 | Отправлено: 16:53 27-05-2015 | Исправлено: woodyfon, 02:56 28-05-2015 |
|