The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"не могу победить связку natd +ipfw"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Информационная безопасность (Public)
Изначальное сообщение [Проследить за развитием треда]

"не могу победить связку natd +ipfw"  
Сообщение от pavelr email(ok) on 02-Май-07, 17:25 
Есть локальная сеть за натом (freebsd 4.9;natd;ipfw) и есть клиенты внешние.
Необходимо разрешить некоторым локальным пользователям ходить только на внешние ip адреса клиентов, в инет же им ходить запрещено.

делаю так:
oif - внешний интерфейс
iif - внутренний

....
setup_loopback

        # Stop spoofing
        ${fwcmd} add deny log all from ${локальная сеть} to any in via ${oif}
        ${fwcmd} add deny log all from ${внешняя сеть} to any in via ${iif}

        case ${natd_enable} in
        [Yy][Ee][Ss])
            if [ -n "${natd_interface}" ]; then
                ${fwcmd} add divert natd all from ${локальная сеть} to any via ${oif}
            fi
            ;;
        esac

        # Allow packets for client1
        ${fwcmd} add allow all from ${выборочные локальные адреса} to ipclient1 out via ${oif}
        ${fwcmd} add allow all from ipclient1 to me in via ${oif}

        # Allow packets for client2
        ${fwcmd} add allow all from ${выборочные локальные адреса} to ipclient2 out via ${oif}
        ${fwcmd} add allow all from ipclient2 to me in via ${oif}
...

        # Allow anything outbound from this net.
        ${fwcmd} add allow all from ${внешняя сеть} to any out via ${oif}

        # Deny anything outbound from other nets.
        ${fwcmd} add deny log all from any to any out via ${oif}

        # Allow anything on the internal net
        ${fwcmd} add allow all from any to any via ${iif}

        # Allow TCP through if setup succeeded.
        ${fwcmd} add allow tcp from any to any established
и т.д.

при такой конфигурации локальных пользователей все равно не пускает к клиентам;

подскажите, где косяк?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "не могу победить связку natd +ipfw"  
Сообщение от DN (ok) on 03-Май-07, 11:52 
>Есть локальная сеть за натом (freebsd 4.9;natd;ipfw) и есть клиенты внешние.
>Необходимо разрешить некоторым локальным пользователям ходить только на внешние ip адреса клиентов,
>в инет же им ходить запрещено.
>
>делаю так:
>oif - внешний интерфейс
>iif - внутренний
>
>....
>setup_loopback
>
>        # Stop spoofing
>        ${fwcmd} add deny log
>all from ${локальная сеть} to any in via ${oif}
>        ${fwcmd} add deny log
>all from ${внешняя сеть} to any in via ${iif}
>
>        case ${natd_enable} in
>        [Yy][Ee][Ss])
>            
>if [ -n "${natd_interface}" ]; then
>            
>    ${fwcmd} add divert natd all from ${локальная сеть} to any via ${oif}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
А обратно, из внешнего мира, как пакеты будут возвращаться в NAT?

${fwcmd} add divert natd all from any to any via ${oif}

>            
>fi
>            
>;;
>        esac
>
>        # Allow packets for client1
>        ${fwcmd} add allow all from ${выборочные локальные адреса} to ipclient1 out via ${oif}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Не будет на выходе ${oif} пакетов из ${выборочные локальные адреса},
если включен NAT .

> ${fwcmd} add allow all from ipclient1 to me in via ${oif}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Не будет в этом месте правил пакетов в  me, если правильно включен divert на NAT .
Список me и ${выборочные локальные адреса} не совпадают.

Для ipclient2 , что ниже, аналогично.
Читайте , man ipfw и примеры на этом сайте.

>        # Allow packets for
>client2
>        ${fwcmd} add allow all
>from ${выборочные локальные адреса} to ipclient2 out via ${oif}
>        ${fwcmd} add allow all
>from ipclient2 to me in via ${oif}
>...
>
>        # Allow anything outbound
>from this net.
>        ${fwcmd} add allow all
>from ${внешняя сеть} to any out via ${oif}
>
>        # Deny anything outbound
>from other nets.
>        ${fwcmd} add deny log
>all from any to any out via ${oif}
>
>        # Allow anything on
>the internal net
>        ${fwcmd} add allow all
>from any to any via ${iif}
>
>        # Allow TCP through
>if setup succeeded.
>        ${fwcmd} add allow tcp
>from any to any established
>и т.д.
>
>при такой конфигурации локальных пользователей все равно не пускает к клиентам;
>
>подскажите, где косяк?


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "не могу победить связку natd +ipfw"  
Сообщение от pavelr email(ok) on 07-Май-07, 16:04 
>    ${fwcmd} add divert natd all from ${локальная сеть} to any via ${oif}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>А обратно, из внешнего мира, как пакеты будут возвращаться в NAT?
>
>${fwcmd} add divert natd all from any to any via ${oif}
Так же как и выходили... это НАТ... или я что то не догоняю?

>>        # Allow packets for client1
>>        ${fwcmd} add allow all from ${выборочные локальные адреса} to ipclient1 out via ${oif}
>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>Не будет на выходе ${oif} пакетов из ${выборочные локальные адреса},
>если включен NAT .
Согласен, но они будут возвращаться!
>> ${fwcmd} add allow all from ipclient1 to me in via ${oif}
>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>Не будет в этом месте правил пакетов в  me, если правильно
>включен divert на NAT .
Будут возвращатья, иначе смысла natd я не вижу

>Список me и ${выборочные локальные адреса} не совпадают.
Не согласен, пакеты приходят изначально в иточник "me"

>
>Для ipclient2 , что ниже, аналогично.
>Читайте , man ipfw и примеры на этом сайте.

Если не трудно покажите пример, заранее благодарен

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "не могу победить связку natd +ipfw"  
Сообщение от pavelr email(ok) on 07-Май-07, 16:07 
>Не будет на выходе ${oif} пакетов из ${выборочные локальные адреса},
>если включен NAT .
Опечатался, НЕ согласен, они будут возвращаться!
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "не могу победить связку natd +ipfw"  
Сообщение от DN (ok) on 07-Май-07, 16:49 
>>    ${fwcmd} add divert natd all from ${локальная сеть} to any via ${oif}
>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>А обратно, из внешнего мира, как пакеты будут возвращаться в NAT?
>>
>>${fwcmd} add divert natd all from any to any via ${oif}
>Так же как и выходили... это НАТ... или я что то не
>догоняю?

Что не понятно?  
Вы писали
${fwcmd} add divert natd all from ${локальная сеть} to any via ${oif}
и направили пакеты из ${локальная сеть} через natd.

Придет пакет обратно из внешнего мира , его снова надо направить через natd.
Natd его обработает и снова вернет в стек TCP/IP .
У Вас же только одно правило для divert natd , на исходящие во внешний мир пакеты.

Еще раз читайте man ipfw и примеры на этом сайте.

>>>        # Allow packets for client1
>>>        ${fwcmd} add allow all from ${выборочные локальные адреса} to ipclient1 out via ${oif}
>>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>Не будет на выходе ${oif} пакетов из ${выборочные локальные адреса},
>>если включен NAT .
>Согласен, но они будут возвращаться!
>>> ${fwcmd} add allow all from ipclient1 to me in via ${oif}
>>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>Не будет в этом месте правил пакетов в  me, если правильно
>>включен divert на NAT .
>Будут возвращатья, иначе смысла natd я не вижу
>
>>Список me и ${выборочные локальные адреса} не совпадают.
>Не согласен, пакеты приходят изначально в иточник "me"

Приходить то приходят, но не будут обрабатываться NAT.

>>Для ipclient2 , что ниже, аналогично.
>>Читайте , man ipfw и примеры на этом сайте.
>
>Если не трудно покажите пример, заранее благодарен


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "не могу победить связку natd +ipfw"  
Сообщение от pavelr email(ok) on 08-Май-07, 14:34 
хорашо добавил строку:
${fwcmd} add divert natd all from any to me via ${oif}

Вопрос остается открытым... А именно:

"Есть локальная сеть за натом (freebsd 4.9;natd;ipfw) и есть клиенты внешние.
Необходимо разрешить некоторым локальным пользователям ходить только на внешние ip адреса клиентов, в инет же им ходить запрещено."

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "не могу победить связку natd +ipfw"  
Сообщение от DN (ok) on 08-Май-07, 14:46 
>хорашо добавил строку:
>${fwcmd} add divert natd all from any to me via ${oif}

Извиняюсь, в прошлом сообщении было предложено:

${fwcmd} add divert natd all from any to any via ${oif}


>Вопрос остается открытым... А именно:

По этому и остается открытым этот вопрос только для Вас.

>"Есть локальная сеть за натом (freebsd 4.9;natd;ipfw) и есть клиенты внешние.
>Необходимо разрешить некоторым локальным пользователям ходить только на внешние ip адреса клиентов,
>в инет же им ходить запрещено."

Все же почитайте man ipfw , посмотрите пример Simple в /etc/rc.firewall

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "не могу победить связку natd +ipfw"  
Сообщение от pavelr email(ok) on 08-Май-07, 14:51 
>Все же почитайте man ipfw , посмотрите пример Simple в /etc/rc.firewall

Смотрел, читал, уменя есть рабочий вариант делал разрешения через диверты для каждого клиента. Но мне этот вариант не нравится. Вот я и спрасил, есть ли другие варианты решения этой задачи.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "не могу победить связку natd +ipfw"  
Сообщение от DN (ok) on 08-Май-07, 15:13 
>>Все же почитайте man ipfw , посмотрите пример Simple в /etc/rc.firewall
>
>Смотрел, читал, уменя есть рабочий вариант делал разрешения через диверты для каждого
>клиента. Но мне этот вариант не нравится. Вот я и спрасил,
>есть ли другие варианты решения этой задачи.

Диверты только для сервиса NAT нужны.

Плохо смотрели в /etc/rc.firewall :

# Reject&Log all setup of incoming connections from the outside
${fwcmd} add deny log tcp from any to any in via ${oif} setup  

Вот  сюда что-то свое добавьте для этих клиентов , а потом все остальное
запретите для них.
                                                              
# Allow setup of any other TCP connection                      
${fwcmd} add pass tcp from any to any setup                    


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "не могу победить связку natd +ipfw"  
Сообщение от pavelr email(ok) on 08-Май-07, 15:46 
"Необходимо разрешить некоторым ЛОКАЛЬНЫМ пользователям ходить только на внешние ip адреса КЛИЕНТОВ, во внешнию сеть же (ЛОКАЛЬНЫМ пользователям) ходить запрещено"

мы говорим об одной и тойже задаче?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "не могу победить связку natd +ipfw"  
Сообщение от DN (ok) on 08-Май-07, 15:57 
>"Необходимо разрешить некоторым ЛОКАЛЬНЫМ пользователям ходить только на внешние ip адреса КЛИЕНТОВ,
>во внешнию сеть же (ЛОКАЛЬНЫМ пользователям) ходить запрещено"
>
>мы говорим об одной и тойже задаче?


Конечно. ;-)
А Вы? ;-)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "не могу победить связку natd +ipfw"  
Сообщение от pavelr email(ok) on 08-Май-07, 16:06 
Если нетрудно, напишите чайнику, в каком порядке должны идти правила?

У меня скорее всего критинизм:)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "не могу победить связку natd +ipfw"  
Сообщение от DN (ok) on 08-Май-07, 18:23 
>Если нетрудно, напишите чайнику, в каком порядке должны идти правила?
>
>У меня скорее всего критинизм:)

Не думаю, что до этого дошло. :-)
Просто надо внимательно читать man'ы и форумы.

Что касается правил в ipfw, то это Вы должны определить сами, в зависимости от
поставленных задач. Нет заранее определенного порядка правил.

Другое дело, Вы должны понимать идеологию работы ipfw.

Если кратко про идеологию:
1. IP пакет приходящий на любой интерфейс , в том числе и lo0 , тестируется
последовательно всеми правилами ipfw , пока не получится совпадение.
2. При совпадении с IP пакетом делается то, что написано в правиле совпадения
(pass, deny, divert и т.д.)
3. Если пакет транзитом следует на другой интерфейс (по таблице роутинга),
чтобы покинуть роутер, то такой IP пакет должен  пройти еще раз сначала все правила ipfw,
как исходящий пакет. Соответственно, повторяется п.2.
4. Если пакет не транзитный для роутера, то с учетом п.2 идет его обработка стеком
TCP/IP роутера.
5. Если пакет "рождается" в роутере и следует на исходящий интерфейс, в соответствии с
таблицей роутинга, то такой IP пакет должен пройти сначала все правила ipfw,
как исходящий пакет. Соответственно, повторяется п.2.

Более подробно, только в man .

Рисуйте "черный ящик" - роутер с интерфейсами для наглядности представления.
Вот например, с тремя интерфейсами ed0,ed1,lo0 .
И смотрите, какие и как IP пакеты Вам необходимо транслировать.
              
    I---------I
ed0 I          I ed1
<->I          I<->
    I          I
    I          I->-I
    I          I    I lo0
    I          I-<-I
    I---------I    

Пишите правила ipfw, если надо включаете log на отдельные правила.
Смотрите ipfw show
ipfw -d show
Включаете tcpdump -n -i интерфейс  и смотрите все ли
правильно бегает.  netstat -rn
ifconfig -au

Удачи.

Если совсем не вмоготу , ipfw -d sh в студию.
Тестировать не буду, но подскажу, где возможно ошибка.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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