Конфигурация DNAT в iptables

У меня есть 2 ПК, созданные VMWARE

1. ПК1 (сделать маршрутизатор iptables):

ens33 's IP:  192.168.1.5/24  (network connection is bridged)
ens37 's IP:  192.168.2.2/24. (network connection is wmnet9)

2. ПК2 (веб-сервер):

ens33 's IP:  192.168.2.1/24. (network connection is wmnet9)

3. Мой IP-реальный ПК:

192.168.1.16/24

Как сказать, что мой реальный ПК может подключаться к webserver через iptables?

Я пытался работать:

echo 1 />proc/sys/net/ipv4/ip_forward

iptables -t nat -A PREROUTING -p tcp 192.168.1.5 --dport 80 -j DNAT --to-destination 192.168.2.2:80
iptables -A FORWARD -p tcp -d 192.168.2.2 --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp -S 192.168.2.2 --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -d 192.168.2.2 --dport 80 -j ACCEPT

Но я получаю соединение с помощью Google Chrome оповещения Этот сайт недоступен

Мои правила iptables:

   iptables -v -x -n -L  


    Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

     pkts   bytes target  prot opt in   out  source        destination

     9      456 ACCEPT     tcp  --  *    *   0.0.0.0/0      192.168.2.2 tcp dpt:80

    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

    pkts    bytes target  prot opt in   out  source        destination

      0      0  ACCEPT     tcp  --  *    *   0.0.0.0/0      192.168.2.2 tcp dpt:80

      0      0 ACCEPT     tcp  --  *     *   192.168.2.2    0.0.0.0/0 tcp spt:80

    Chain OUTPUT (policy ACCEPT 9 packets, 360 bytes)

    pkts    bytes target  prot opt in   out  source        destination

-

    iptables -t nat -v -x -n -L

    Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)

    pkts bytes target  prot opt in    out   source        destination

     9   456   DNAT   tcp  --  *      *   0.0.0.0/0    192.168.168.1.5 tcp dpt:80 to:192.168.2.2:80

    Chain INPUT (policy ACCEPT 9 packets, 456 bytes) 

     pkts bytes target  prot opt in  out  source   destination

    Chain OUTPUT (policy ACCEPT 594 packets, 38555 bytes)

     pkts bytes target  prot opt in  out  source   destination

    Chain POSTROUTING (policy ACCEPT 181 packets, 11845 bytes)

     pkts bytes target  prot opt in  out  source   destination

     413  26710  SNAT   all  --  *  ens33 0.0.0.0/0  0.0.0.0/0 to:192.168.1.5
0
задан 12 January 2018 в 19:24

2 ответа

Я suscess для попытки командами:

iptables-A PREROUTING-t туземный-p tcp-d 192.168.1.5 - dport 80-j DNAT - к месту назначения 192.168.2.1

iptables-A POSTROUTING-t туземная ПОДМЕНА-o ens37-j

0
ответ дан 13 January 2018 в 05:24

Вы не обеспечили обратный канал. Вам нужно:

iptables -t nat -A POSTROUTING -o ens33 -j SNAT --to 192.168.1.5

я предполагаю, что это - просто опечатка в Вашей строке PREROUTING, но независимо я сделал бы это этот путь во всяком случае:

iptables -t nat -A PREROUTING -p tcp -i ens33 --dport 80 -j DNAT --to-destination 192.168.2.2:80

, Если Ваша политика по умолчанию для ВПЕРЕД цепочка, ПРИНИМАЮТ, то Вам не нужны те правила. Вам не нужно ВХОДНОЕ правило цепочки.

2
ответ дан 13 January 2018 в 05:24
  • 1
    о, это было довольно хорошим ответом) спасибо), – Ktgvb 2 October 2017 в 00:32

Другие вопросы по тегам:

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