The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
natd рубит пакет, !*! scayn, 02-Янв-09, 12:41  [смотреть все]
Доброго времени суток!
Уже весь моз взорвал, не могу разобраться. Правило
${ipfw} add divert natd ip from any to ${ip_out} in via ${interf_out}
рубит пакеты, не дает соединиться с машиной (freebsd) по ssh, сама машина может пинговать сервера только по ip адресу, а например ping ya.ru результатов не дает.

в rc.firewall оставил только правила:

${ipfw} add allow ip from any to any via lo0
${ipfw} add divert natd ip from ${lan_in}/24 to any out via ${intf_out}
${ipfw} add divert natd ip from any to ${ip_out} in via ${interf_out}
${ipfw} add allow all from any to any

rc.conf

firewall_type="/etc/rc.firewall"
natd_enable="YES"
natd_interface="rl0"
natd_flags="-f /etc/natd.conf"


  • natd рубит пакет, !*! daloman, 15:42 , 02-Янв-09 (1)
    >[оверквотинг удален]
    >${ipfw} add divert natd ip from any to ${ip_out} in via ${interf_out}
    >
    >${ipfw} add allow all from any to any
    >
    >rc.conf
    >
    >firewall_type="/etc/rc.firewall"
    >natd_enable="YES"
    >natd_interface="rl0"
    >natd_flags="-f /etc/natd.conf"

    Посмотрите внимательней, что у Вас есть что:
    ${intf_out} - что за интерфейс?
    ${interf_out} - что за интерфейс?

    Не мучьте себя, замените одним правилом:


    ${ipfw} add divert natd ip from any to any via ${внешний_интерфейс}

    Если хотите получать доступ по ssh извне к своей машине, добавляете правилом выше (перед NAT):


    ${ipfw} add allow all from any to me 22 in via ${внешний_интерфейс}

    А как у Вас выглядит rc.firewall?

    • natd рубит пакет, !*! scayn, 03:45 , 03-Янв-09 (2)
      ${intf_out} и ${interf_out} - это один внешний интерфейс (ссори за опечатку, торопился)

      rc.firewall так и выглидит:
      ${ipfw} add allow ip from any to any via lo0
      ${ipfw} add divert natd ip from ${lan_in}/24 to any out via ${interf_out}
      ${ipfw} add divert natd ip from any to ${ip_out} in via ${interf_out}
      ${ipfw} add allow all from any to any
      ну плюс еще описание переменных.

      На самом деле меня больше интересует не поиск альтернатив, а сама суть: почему не работает традиционным способом, где я мог ошибиться или же это случайный глюк.
      доступ по ссх рубит 3-е правило.
      daloman  за совет спасибо, как закончатся выходные (машина на работе) обязательно испытаю.

      • natd рубит пакет, !*! Michael, 13:58 , 03-Янв-09 (3)
        переменная net.inet.ip.forwarding установлена?
      • natd рубит пакет, !*! daloman, 00:26 , 05-Янв-09 (5)
        >[оверквотинг удален]
        >
        >${ipfw} add divert natd ip from any to ${ip_out} in via ${interf_out}
        >
        >${ipfw} add allow all from any to any
        >ну плюс еще описание переменных.
        >
        >На самом деле меня больше интересует не поиск альтернатив, а сама суть:
        >почему не работает традиционным способом, где я мог ошибиться или же
        >это случайный глюк.
        >доступ по ссх рубит 3-е правило.

        Собственно, все верно, если у Вас демон natd запускается с ключем -d или, как мне думается, конкретно у Вас в /etc/natd.conf указана опция


        deny_incoming yes

        Правило заворачивает все пакеты демону natd, а тот обрабатывает пакеты только от тех адресов, на которые он до этого уже обрабатывал исходящие пакеты и "знает" внутреннюю таблицу трансляции адресов.
        Если же соединение устанавливается с внешнего адреса, то он отвергает его. Если Вы установите эту опцию в значение "No", тогда демон будет создавать запись в своей локальной таблице трансляции адресов для IP-адреса, которому предназначен пакет, и соответственно - передавать его по назначению.
        Об этом можете более подробно почитать в man natd.

        Если же указывать ключ -d для демона, тогда нужно отдельным правилом выше этого:


        ${ipfw} add divert natd ip from any to ${ip_out} in via ${interf_out}

        разрешать входящие пакты необходимых протоколов, таких как ssh, smtp и т.д.
        • natd рубит пакет, !*! scayn, 09:59 , 05-Янв-09 (6)
          Собственно проблема даже не в том, что закрывается доступ по ssh, это я могу победить, а втом, что все пакеты вообще где то теряются. складывается такое ощушение что, интерфейс смотрящий в интернет блокируется правилом:
          >${ipfw} add divert natd ip from any to ${ip_out} in via ${interf_out}

          притом опция deny_incoming yes не указана (пробовал даже устанавливать deny_incoming no).
          Меня всё чаще посещают мысли о переустановки фри, но это не спортивно. в общем ни чего из вышеописанного не помогает :(

          • natd рубит пакет, !*! daloman, 14:23 , 05-Янв-09 (7)
            >Собственно проблема даже не в том, что закрывается доступ по ssh, это
            >я могу победить, а втом, что все пакеты вообще где то
            >теряются. складывается такое ощушение что, интерфейс смотрящий в интернет блокируется правилом:
            >
            >>${ipfw} add divert natd ip from any to ${ip_out} in via ${interf_out}
            >
            >притом опция deny_incoming yes не указана (пробовал даже устанавливать deny_incoming no).
            >Меня всё чаще посещают мысли о переустановки фри, но это не спортивно.
            >в общем ни чего из вышеописанного не помогает :(

            Не только не спортивно, но и очень вредно.

            Давайте попробуем разобраться где затык.
            Можете прислать мне на почту или полностью процитировать здесь файлы конфигурации:
            1. /etc/rc.conf
            2. /etc/rc.firewall
            3. /etc/natd.conf
            а также, привести полный вывод команд:

            # uname -a
            # ipfw show

            что валит в консоль:
            # /etc/netstart

            И желательно, файл конфигурации ядра, если пересобирали его.
            Если хотите, стучитесь в асю - 273222596

          • natd рубит пакет, !*! daloman, 21:06 , 05-Янв-09 (8)
            >Собственно проблема даже не в том, что закрывается доступ по ssh, это
            >я могу победить, а втом, что все пакеты вообще где то
            >теряются. складывается такое ощушение что, интерфейс смотрящий в интернет блокируется правилом:
            >
            >>${ipfw} add divert natd ip from any to ${ip_out} in via ${interf_out}
            >
            >притом опция deny_incoming yes не указана (пробовал даже устанавливать deny_incoming no).
            >Меня всё чаще посещают мысли о переустановки фри, но это не спортивно.
            >в общем ни чего из вышеописанного не помогает :(

            И, кстати, о птичках, чтобы подтвердить или опровергнуть ощущения, посмотрите, правило вообще отрабатывает? Например, если включена опция логгирования для ядра, перед этим правилом добавьте следующее:

            ${ipfw} add divert natd log logamount 2000 ip from any to ${ip_out} in via ${interf_out}

            и посмотрите, что пишется в логи, когда пытаетесь установить соединение извне к этой машине:
            # tail -f /var/log/security

            Также, можно поглядеть пакеты tcpdump'ом (можно очень много информации собрать), или, к примеру, утилитой trafshow.

            Я на виртуалках эмулирую ситуацию - все проходит именно так как я и описывал.

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру