@rob_01

Iptables и перенаправление на внутренний сервер?

Добрый день. Необходимо то бы все устройства подключенные к одному роутеру при запросе определенного ip переходили на сайт который находится на машине. На роутер поставил Openwrt и указал правило iptables -t nat -A PREROUTING -p tcp -s 192.168.1.0/24 -d "IP" --dport 80 -j DNAT --to-destination 192.168.1.100, поднял Denwer и добавил сайт по адресу Z:\home\192.168.1.100\www, брадмауэр выключен, указал даже правило на открытие 80го порта на машине, но в ответ тишина. При переходе на 192.168.1.100 сайт открывается, по необходимому IP пишет что сайт недоступен.
Самое интересное что iptables -t nat -vnL показывает то один пакет проходит и все. (ну если я его правильно понимаю =))

root@OpenWrt:~# iptables -t nat -vnL
Chain PREROUTING (policy ACCEPT 572 packets, 31858 bytes)
 pkts bytes target     prot opt in     out     source               destination
    4   208 DNAT       tcp  --  *      *       192.168.1.0/24       81.19.76.10          tcp dpt:80 to:192.168.1.100
   20  1040 DNAT       tcp  --  *      *       192.168.1.0/24       91.228.155.94        tcp dpt:80 to:192.168.1.100
 1410 93511 delegate_prerouting  all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain INPUT (policy ACCEPT 183 packets, 11710 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 202 packets, 13110 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 10 packets, 520 bytes)
 pkts bytes target     prot opt in     out     source               destination
 1345 75377 delegate_postrouting  all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain delegate_postrouting (1 references)
 pkts bytes target     prot opt in     out     source               destination
 1345 75377 postrouting_rule  all  --  *      *       0.0.0.0/0            0.0.0.0/0            /* user chain for postrouting */
   24  1248 zone_lan_postrouting  all  --  *      br-lan  0.0.0.0/0            0.0.0.0/0
 1321 74129 zone_wan_postrouting  all  --  *      eth1    0.0.0.0/0            0.0.0.0/0

Chain delegate_prerouting (1 references)
 pkts bytes target     prot opt in     out     source               destination
 1410 93511 prerouting_rule  all  --  *      *       0.0.0.0/0            0.0.0.0/0            /* user chain for prerouting */
 1365 90796 zone_lan_prerouting  all  --  br-lan *       0.0.0.0/0            0.0.0.0/0
   45  2715 zone_wan_prerouting  all  --  eth1   *       0.0.0.0/0            0.0.0.0/0

Chain postrouting_lan_rule (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain postrouting_rule (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain postrouting_wan_rule (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain prerouting_lan_rule (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain prerouting_rule (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain prerouting_wan_rule (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain zone_lan_postrouting (1 references)
 pkts bytes target     prot opt in     out     source               destination
   24  1248 postrouting_lan_rule  all  --  *      *       0.0.0.0/0            0.0.0.0/0            /* user chain for postrouting */

Chain zone_lan_prerouting (1 references)
 pkts bytes target     prot opt in     out     source               destination
 1365 90796 prerouting_lan_rule  all  --  *      *       0.0.0.0/0            0.0.0.0/0            /* user chain for prerouting */
    0     0 DNAT       tcp  --  *      *       192.168.1.0/24       91.228.155.94        tcp dpt:80 to:192.168.1.100

Chain zone_wan_postrouting (1 references)
 pkts bytes target     prot opt in     out     source               destination
 1321 74129 postrouting_wan_rule  all  --  *      *       0.0.0.0/0            0.0.0.0/0            /* user chain for postrouting */
 1321 74129 MASQUERADE  all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain zone_wan_prerouting (1 references)
 pkts bytes target     prot opt in     out     source               destination
   45  2715 prerouting_wan_rule  all  --  *      *       0.0.0.0/0            0.0.0.0/0            /* user chain for prerouting */


PS пробовал это осуществить на роутере keenetic с немного оптимизированной стандартной прошивкой, (какой не скажу, не помню) все заработало в лет.
  • Вопрос задан
  • 660 просмотров
Решения вопроса 1
@ldvldv
Вы меняете адрес назначения в пакете, а адрес источника оставляете неизменным. Сервер получает пакет и отправляет ответ не роутеру, а напрямую компьютеру клиента. Надо добавить правило типа
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.100/32 -p tcp -m tcp --dport 80 -j MASQUERADE
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы