Автор Тема: [Решено] Проброс портов для пакетов, исходящих с самой машины (Vyatta)  (Прочитано 3621 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн arfa

В качестве шлюза в сеть интернет используется компьютер с Vyatta Core 6.5R1 (сетевая операционная система на основе Debian с настройкой собственными командами через CLI - как в аппаратных роутерах - при этом выполняются perl-скрипты, которые выполняют необходимые настройки в Debian).

В локальной сети имеется web-сервер, на который на шлюзе проброшен порт TCP/80. И из интернета, и из локальной сети все замечательно работает - доступ к внешнему IP на порт 80 имеется (попадаем на web-cервер). Однако, на самом компьютере-шлюзе доступа через внешний IP на порт 80 нет, при проверке телнетом пишет:

# telnet внешний_IP-адрес 80
telnet: can't connect to remote host (внешний_IP-адрес): Connection refused

По этой причине из локальной сети невозможно подключиться к этому web-серверу через прокси-сервер, который крутится на том же компьютере-шлюзе.
По какой причине не работает проброс порта для пакетов, исходящих с самого компьютера-шлюза?

Настройки шлюза следующие:
interfaces {
    ethernet eth0 {
        address 192.168.1.1/24
        description LAN
    }
    ethernet eth1 {
        address EXTERNAL_ADDRESS/24
        description Internet
    }
}
nat {
    destination {
        rule 10 {
            destination {
                address EXTERNAL_ADDRESS
                port 80
            }
            inbound-interface any
            protocol tcp
            translation {
                address 192.168.1.2
            }
        }
    }
    source {
        rule 10 {
            outbound-interface eth1
            translation {
                address masquerade
            }
        }
        rule 20 {
            outbound-interface eth0
            source {
                address 192.168.179.0/24
            }
            translation {
                address masquerade
            }
        }
    }
}
service {
    dns {
        forwarding {
            listen-on eth0
        }
    }
    webproxy {
        default-port 8080
        listen-address 192.168.1.1 {
            disable-transparent
        }
    }
}
system {
    gateway-address PROVIDER_GATEWAY_ADDRESS
    name-server 8.8.8.8
    host-name router
    time-zone Europe/Moscow
}
« Последнее редактирование: 15 Мая 2013, 16:50:11 от arfa »
 

Оффлайн fry

Думаю, это то, что вам нужно. Если есть доступ не только к cli, а и к bash (sh) http://www.opennet.ru/docs/RUS/iptables/#DNATTARGET
Товарищи призывники! Надо понимать всю глубину наших глубин!

Руководство по добавлению изображений на форум
 

Оффлайн arfa

Да, это то, что нужно, спасибо!
Нужно прописать правило трансляции адреса назначения в цепочку OUTPUT:

#sudo iptables -t nat -A OUTPUT -d EXTERNAL_ADDRESS/32 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2

После этого проброс порта TCP/80 заработал и изнутри машины!

Не знает ли кто - как командами Vyatta это же сделать?
В Vyatta "nat destination" прописывает правило в цепочку PREROUTING, "nat source" - в POSTROUTING, а как в OUTPUT - не нашел.

А то после перезагрузки правило пропадает.

P. S. Проблему решил!
Судя по документации Vyatta в нем не реализована "nat OUTPUT" - в цепочке после "Local Process" идет "Routing" и потом сразу заходит на "SNAT". Значит прописывать правила в цепочке OUTPUT нужно вручную. В Vyatta имеется скрипт (/opt/vyatta/etc/config/scripts/vyatta-postconfig-bootup.script), который вызывается при загрузке сразу после применения настроек из собственного конфигурационного файла. Все действия, не реализуемые средствами Vyatta, нужно прописывать в этом скрипте.
Я прописал в нем:
/sbin/iptables -t nat -A OUTPUT -d EXTERNAL_ADDRESS/32 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2
Теперь и после перезагрузки все работает как надо.
« Последнее редактирование: 15 Мая 2013, 16:51:38 от arfa »
 

Теги:
     

    [Решено] Почему пишет "Ошибка показа сведений о соединении"?

    Автор Igorokmen

    Ответов: 3
    Просмотров: 3723
    Последний ответ 02 Июля 2018, 23:24:09
    от grey_wolf
    [Решено] Редактор соединений KDE Debian 8.0

    Автор kavashige

    Ответов: 4
    Просмотров: 2338
    Последний ответ 01 Сентября 2015, 20:37:30
    от kavashige
    (РЕШЕНО) ipw2200 и RF_KILL

    Автор Anton

    Ответов: 3
    Просмотров: 3872
    Последний ответ 10 Октября 2012, 21:37:13
    от Anton
    [Решено] Shorewall не выдаёт IP клиентам в локалку.

    Автор plov

    Ответов: 8
    Просмотров: 4040
    Последний ответ 28 Мая 2014, 09:46:57
    от plov
    [РЕШЕНО] Пропал интернет

    Автор Redin

    Ответов: 14
    Просмотров: 2186
    Последний ответ 27 Сентября 2019, 13:54:36
    от gardarea51