Страницы

Поиск по вопросам

понедельник, 6 января 2020 г.

Проброс реального ip-адреса в виртуальную машину за nat

#linux #iptables


Есть вэб-сервер на виртуальной машине.

Нужно сделать так, чтобы весь трафик по 80 и 443 портам заворачивался на эту виртуальную
машину без подмены ip-адреса клиента.

Мой iptables:

iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X

iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o vmbr0 -j SNAT --to-source 'x.x.x.x
iptables -t nat -A POSTROUTING -o vmbr1 -j SNAT --to-source 192.168.0.1

iptables -t nat -I PREROUTING -p udp -m udp --dport 60000:61000 -j DNAT --to 192.168.0.200:60000-61000

iptables -A PREROUTING -t nat -i vmbr0 -p tcp -d 'x.x.x.x --dport 18180 -j DNAT --to
192.168.0.200:22
iptables -A PREROUTING -t nat -i vmbr0 -p tcp -d 'x.x.x.x --dport 17172 -j DNAT --to
192.168.0.102:22
iptables -A PREROUTING -t nat -i vmbr0 -p tcp -d 'x.x.x.x --dport 17171 -j DNAT --to
192.168.0.101:22
iptables -A PREROUTING -t nat -i vmbr0 -p tcp -d 'x.x.x.x --dport 3000 -j DNAT --to
192.168.0.101:3000
iptables -A PREROUTING -t nat -i vmbr0 -p tcp -d 'x.x.x.x --dport 443 -j DNAT --to
192.168.0.200:443
iptables -A PREROUTING -t nat -i vmbr0 -p tcp -d 'x.x.x.x --dport 80 -j DNAT --to
192.168.0.1:80

iptables -A PREROUTING -t nat -i vmbr0 -p tcp -s y.y.y.y -d 'x.x.x.x --dport 8080
-j DNAT --to 192.168.0.102:80
iptables -A PREROUTING -t nat -i vmbr0 -p tcp -s y.y.y.y -d 'x.x.x.x --dport 8081
-j DNAT --to 192.168.0.102:8081

iptables -A INPUT -p TCP --dport 80 -j ACCEPT
iptables -A OUTPUT -p TCP --dport 80 -j ACCEPT
iptables -A INPUT -p TCP --dport 443 -j ACCEPT
iptables -A OUTPUT -p TCP --dport 443 -j ACCEPT

iptables -A INPUT -s y.y.y.y -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -I INPUT 1 -p udp --dport 60000:61000 -j ACCEPT
#iptables -A INPUT -p icmp --icmp-type echo-request -j REJECT --reject-with icmp-host-prohibited
iptables -P INPUT DROP

    


Ответы

Ответ 1



как я понял, подразумевается трафик, приходящий на интерфейс vmbr0 на адрес x.x.x.x. вот эти правила надо «привести к общему знаменателю»: iptables -A PREROUTING -t nat -i vmbr0 -p tcp -d 'x.x.x.x --dport 443 -j DNAT --to 192.168.0.200:443 iptables -A PREROUTING -t nat -i vmbr0 -p tcp -d 'x.x.x.x --dport 80 -j DNAT --to 192.168.0.1:80 если целевая виртуальная машина имеет ip-адрес 192.168.0.200, то и во втором правиле должен фигурировать этот ip-адрес. а это правило надо убрать: iptables -t nat -A POSTROUTING -o vmbr1 -j SNAT --to-source 192.168.0.1 на целевой виртуальной машине шлюзом по умолчанию должен быть назначен ip-адрес, который присвоен сетевому интерфейсу (на машине, правила netfilter-а которой приведены в вопросе), «смотрящему» в локальную сеть. насколько я понял — 192.168.0.1.

Комментариев нет:

Отправить комментарий