Погода: 6 °C
16.04−1...6небольшая облачность, без осадков
17.041...13пасмурно, без осадков
  • Дано - шлюз на FreeBSD, ядро собрано с параметра ip_firewall, ip_firewall_forward, ip_divert
    То бишь работает машинка рутером. Стоит сквид, прозрачный прокси.
    Задача - дать доступ из инета на другой сервак, web, ip 192.168.0.30
    Думал, что все должно быть просто:
    ipfw add fwd tcp from ${inetaddr} 80 to 192.168.0.30

    И жестоко обломился, отключает тут же, connection refused:хммм:
    telnet 192.168.0.30 80 - есть ответ
    telnet 192.168.0.1 80 - есть ответ (адрес фри, крутится самописная статистика, веб-морда)
    telnet ${inetaddr} 80 - connection refused

    tcpdump -i rl0 host ${inetaddr} and port 80
    показывает попытку доступа, и ответ.

    Или я как то неправильно понимаю форвард, и тут что другое надо делать?
    Задумываюсь о создании демилитаризованной зоны, но не хотелось бы.

  • Насколько я понял, у тебя на роутере внешний порт выходит на канал в инте под реальным ip, а внутрь локалки под приватным?
    Тогда на роутере должен быть поднят NAT.
    Если так, то ищи на роутере файлик natd.conf
    Там прописывай строчку: redirect_port tcp 192.168.0.30:80 80
    Потом перегрузи роутер.

    "Nell'era Delle Сamminatore"

  • Малость не понял
    NAT aka divert имеется
    На рутере крутится статистика, с апачем на внутреннем интерфесе
    Надо, чтобы обращения к 80 порту внешнего интерфейса пересылались во внутреннюю подсеть, на другой сервак.
    Чем мне помогает редирект порта?

  • Запросы на порт с внешнего ip идут на порт внутреннего ip, прописаный в конфиге.
    Не это ли разве требуется?
    У меня такая схема работает.

    "Nell'era Delle Сamminatore"

  • NestЕr wrote
    В ответ на: >> Чем мне помогает редирект порта?
    Тем что именно РЕДИРЕКТ, а не ФОРВАРД решает твою задачу.
    Правило forward тупо перебрасывает пакет на другой адрес, не меняя его заголовки, т.е. работать это будет по
    такой схеме:
    1. Пакет с реальным dst_ip приходит на рутер.
    2. Рутер (не меняя заголовки) перекидывает его на локальный web-сервер.
    3. Локальный web-сервер видит, что к нему приш.л пакет с реальным адресом назначения, который не совпадает с
    его адресом 192.168.0.30 и отбрасывает пакет... вс. -- connection refused тебе обеспечен.

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

    Как уже написал ganymed конфа должна быть следующая:
    /etc/rc.conf:
    natd_enable="YES"
    natd_flags="-f /etc/natd.conf
    /etc/natd.conf:
    redirect_port tcp 192.168.0.30:80 80
    /etc/rc.firewall:
    [skipped]
    ${fwcmp} add 50 divert natd ip from any to any via ${natd_interface}
    [skipped]
    Ну а разве после обработки natd и последующим forward адреса не сменятся на серые?
    Мне казалось, что после обработки natd во внутреннюю сеть пакет пойдет от адреса рутера.

    Ладно, другой вопрос.
    Если я сделаю редирект, то ВСЕ пакеты, пришедшие на рутер порт 80 будут персылаться на 192.168.0.30?

    проблему я решил созданием ДМЗ, но ради общего образования:улыб:

Записей на странице:

Перейти в форум

Модераторы: