ip, локалка, проброс портов. Подскажите.

Mik Foxi
На сайте с 02.03.2011
Offline
1076
972

Имеется локальная сеть 192.168.1.* с жестко привязанными ip к mac адресам, соединяющая компы в локалку и раздающая интернет.

Есть комп к mac которого привязаны 2 ip: 192.168.1.10 и 192.168.1.11

на компе (ubuntu) поставил виртуалку и пробросил для нее 192.168.1.11 с помощью iptables:

sudo iptables -t nat -A PREROUTING -p tcp -d 192.168.1.11 --dport 80 -j DNAT --to-destination 10.10.10.2:80

sudo iptables -t nat -A POSTROUTING -p tcp --dst 10.10.10.2 --dport 80 -j SNAT --to-source 192.168.1.11

виртуалка в локалке видна, интернет есть, но при запросах к виртуалке (там локальный вебсервер) в ее логах все запросы значатся с ip 192.168.1.11 а не с Ip других компов, которые к ней делают запросы.

а также исходящие запросы к другим компам видны как не с ip 192.168.1.11 а как с 192.168.1.10 (ip компа, на котором локалка).

Как исправить оба недочета?

Антибот, антиспам, веб файрвол, защита от накрутки поведенческих: https://antibot.cloud/ + партнерка, до 40$ с продажи.
G
На сайте с 20.04.2013
Offline
5
#1
foxi:
виртуалка в локалке видна, интернет есть, но при запросах к виртуалке (там локальный вебсервер) в ее логах все запросы значатся с ip 192.168.1.11 а не с Ip других компов, которые к ней делают запросы.

"Виртуалка" - виртуальная машина, наподобие VirtualBox?

Там есть несколько видов проброса соединения, нужно скорее всего bridge, или просто попробовать разные.

ContactRoot: свяжитесь с нашим админом (/ru/forum/814513)
Mik Foxi
На сайте с 02.03.2011
Offline
1076
#2
grozadvora:
"Виртуалка" - виртуальная машина, наподобие VirtualBox?
Там есть несколько видов проброса соединения, нужно скорее всего bridge, или просто попробовать разные.

да именно виртуалбокс, неудобство в том, что на роутере идет привязка ip к мак адресу, а то так по обычному бы сетевой мост сделал и все бы работало.

G
На сайте с 20.04.2013
Offline
5
#3

Сейчас у Вас настроено таким образом, что веб-сервер не может знать с какого IP заходят, эта информация теряется.

Попробуйте использовать прокси Nginx на внутренний IP, в этом случае реальный IP клиента будет в X-Forwarded-For. Дальше останется только поставить mod_rpaf для Apache на виртуальной машине, который будет вытаскивать IP из X-Forwarded-For.

SNAT (канал в обратную сторону) можно будет оставить, то есть Nginx использовать вместо DNAT.

Пример конфига Nginx:

server { 

listen 80;
location / {
proxy_pass http://внутренний_IP:80;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_connect_timeout 120;
proxy_send_timeout 120;
proxy_read_timeout 120;
}
}

Настройки mod_rpaf (добавить в начале файла apache2.conf):

LoadModule rpaf_module /usr/lib/apache2/modules/mod_rpaf-2.0.so

RPAFenable On
RPAFproxy_ips внутренний_IP_который_сейчас_виден внешний

Команды для установки mod_rpaf на Debian:

apt-get install libhtml-parser-perl libwww-perl libcompress-zlib-perl apache2-prefork-dev

cd /usr/local/src
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar xzf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
apxs2 -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
Mik Foxi
На сайте с 02.03.2011
Offline
1076
#4

хм, как-то не подумал использовать nginx ) надо потестировать.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий