Страница 1 из 1
IPFW между 3-мя сетями
Добавлено: 2011-03-21 10:41:02
KampuH
Доброе всем время суток!
Имеется шлюз FreeBSD 8.1 и три сети
rl0-192.168.4.254 смотрит в сеть 192.168.4.0/24
rl1-192.168.5.254 - в сеть 192.168.5.0/24
rl2-192.168.1.1 в сеть 192.168.1.0/24 (общая сеть предприятия)
в дальнейшем планируется подключение дополнительной сетевухи, смотрящей в сеть провайдера
Подскажите пож. какнастроить IPFW, что бы определённым пользователям (например с адресом 192.168.1.200 и 192.168.1.100) общей сети были доступны узлы из подсетей 4 и 5 (например 192.168.4.2 и 192.168.5.2)
В данный момент работает правило всё для всех
Спасибо!
Re: IPFW между 3-мя сетями
Добавлено: 2011-03-21 12:42:44
FreeBSP
не стесняйся, расскажи как вся система должны выглядеть, кто куда должен ходить и тд..
пониманию того, чего именно хочется способствует рисование схем сетей, интерфейсов, схем прохождения пакетов
насколько я понял нужно оградить 4-ю и 5-ю подсети от первой, оставив разрешение некотрым узлам первой подсети связываться с некоторыми узлами четвертой и пятой подсетей
в таком случае есть такой вариант
Код: Выделить всё
#!/bin/sh
# зададим переменные
Lan1="192.168.1.0/24"
If1="rl2"
Lan4="192.168.4.0/24"
If4="rl0"
Lan5="192.168.5.0/24"
If5="rl1"
# первым можно ходить ко вторым
AllowedIPs="{ 192.168.1.100, 192.168.1.200 }"
Servers= "{ 192.168.4.2, 192.168.5.2 }"
fw="/sbin/ipfw"
# локальная петля
${fw} allow ip from any to any via lo0
${fw} deny ip from any to 127.0.0.0/8
${fw} deny ip from 127.0.0.0/8 to any
# Собственно ограничение доступа
# разрешаем хождение пакетов в первой подсети.
# без этого могут быть проблемы. а могут и не быть
${fw} allow ip from ${Lan1} to ${Lan1} in via ${If1}
# разрешаем с указанных адресов ходить на указанные сервера
${fw} allow ip from ${AllowedIPs} to ${Servers} in via ${If1}
# по аналогии разрешаем доступ с 1.123 на 5.213
#${fw} allow ip from 192.168.1.123 to 192.168.5.213 in via ${If1}
# и с 1.234 на 4,243
#${fw} allow ip from 192.168.1.234 to 192.168.4.243 in via ${If1}
# запрещаем всей остальной первой подсети ходить через нас.
# все что можно мы уже разрешили выше.
${fw} deny ip from ${Lan1} to any in via ${If1}
# разрешаем все остальное. но по хорошему - в правилах должны быть
# только явные разрешения и запрет на все остальное
${fw} allow ip from any to any
но тут только небольшой кусочек, решающий поставленную задачу
Re: IPFW между 3-мя сетями
Добавлено: 2011-03-21 14:02:16
KampuH
Спасибо огромное! Загрузили работой по самое нехочу, что даже времени нет подумать
Re: IPFW между 3-мя сетями
Добавлено: 2011-03-21 14:57:56
KampuH
Хм.. Не могу понять. Правила стояли почти такие же, 5-я подсеть пингуется из 1-й нормально, а 4 никак. Заменили на Ваши, с некоторыми добавлениями, происходит то же самое. В конце правил ставим ${fw} allow ip from any to any, то всё работает, show видно что пакеты вроде уходят ну или путаются уйти, а ответа нет
Нужно ли делать обратные правила для серверов?
Re: IPFW между 3-мя сетями
Добавлено: 2011-03-21 15:31:13
KampuH
#!/bin/sh
fw="/sbin/ipfw -q"
#
lan1="192.168.1.0/24"
if1="rl0"
#
lan4="192.168.4.0/24"
if4="rl0"
#
lan5="192.168.5.0/24"
if5="rl1"
#
AllowedIPs="{ 192.168.1.57, 192.168.1.160, 192.168.1.12 }"
Servers="{ 192.168.4.2, 192.168.4.6 }"
#
#
${fw} -f flush
${fw} add check-state
${fw} add allow all from any to any via lo0
${fw} add deny ip from any to 127.0.0.0/8
${fw} add deny ip from 127.0.0.0/8 to any
#
${fw} add allow ip from ${lan1} to ${lan1} via ${if1}
${fw} add allow ip from ${lan4} to ${lan4} via ${if4}
#
${fw} add allow ip from ${AllowedIPs} to ${Servers} in via ${if1}
${fw} add allow ip from ${Servers} to any in via ${if4}
#
${fw} add allow ip from 192.168.1.11 to ${lan4} in via ${if1}
${fw} add allow ip from ${lan4} to 192.168.1.11 in via ${if4}
${fw} add allow ip from 192.168.1.11 to ${lan4} out via ${if4}
${fw} add allow ip from ${lan4} to 192.168.1.11 out via ${if1}
#
${fw} add deny ip from ${lan1} to any in via ${if1}
#
#${fw} add 65500 allow ip from any to any
${fw} add 65530 deny log logamount 3000 all from any to any
вот при таких правилах для 11 IP-шника пинги проходят в 4-ю подсеть, от каких правил можно избавиться? или как можно это записать по другому
Re: IPFW между 3-мя сетями
Добавлено: 2011-03-21 18:04:54
suspender
даже при allow ip from any to any пингов нету ? а маршрут на 4-ю сеть на клиентах прописан через этот gw ? (Ну или дефолтный рут для клиентов из 4-й сети точно этот gw ?)
Re: IPFW между 3-мя сетями
Добавлено: 2011-03-22 0:50:06
FreeBSP
думаю, правильным будет
полностью сформулировать
конечную задачу и
условия работы требуемого рулсета
а именно - ипы, сети, маски, интерфейсы, маршруты, и прочия прочия прочия...
Код: Выделить всё
#!/bin/sh
fw="/sbin/ipfw -q"
#
lan1="192.168.1.0/24"
if1="rl0"
#
lan4="192.168.4.0/24"
if4="rl0"
#
lan5="192.168.5.0/24"
if5="rl1"
#
AllowedIPs="{ 192.168.1.57, 192.168.1.160, 192.168.1.12 }"
Servers="{ 192.168.4.2, 192.168.4.6 }"
#
#
${fw} -f flush
${fw} add check-state
${fw} add allow all from any to any via lo0
${fw} add deny ip from any to 127.0.0.0/8
${fw} add deny ip from 127.0.0.0/8 to any
#
${fw} add allow ip from ${lan1} to ${lan1} via ${if1}
${fw} add allow ip from ${lan4} to ${lan4} via ${if4}
${fw} add allow ip from ${lan5} to ${lan5} via ${if5}
# оба направления с обоих сторон машины
${fw} add allow ip from ${AllowedIPs} to ${Servers} in recv ${if1} # входящий на шлюз к серверам снаружи
${fw} add allow ip from ${AllowedIPs} to ${Servers} out recv ${if1} xmit ${if4} # исходящий со шлюза к серверам внутри
${fw} add allow ip from ${Servers} to any in recv ${if4} # входящий на шлюз от серверов внутри
${fw} add allow ip from ${Servers} to any out recv ${if4} xmit ${if1} # исходящий со шлюза от серверов снаружи
# а вот тут - самое место поиграть с keep-state,
# но я не игрался и подсказать не могу =(
# навскидку - просто дописать в конец каждого правила "setup keep-state"
${fw} add allow ip from ${lan4} to ${lan1} in recv ${if4} # входящий на шлюз в первую из четвертой внутри
${fw} add allow ip from ${lan4} to ${lan1} out recv ${if4} xmit ${if1} # исходящий со шлюза в первую из четвертой снаружи
${fw} add allow ip from ${lan5} to ${lan1} in recv ${if5} # входящий на шлюз в первую из пятой внутри
${fw} add allow ip from ${lan5} to ${lan1} out recv ${if5} xmit ${if1} # исходящий со шлюза в первую из пятой снаружи
#
${fw} add allow ip from 192.168.1.11 to ${lan4} in via ${if1}
${fw} add allow ip from ${lan4} to 192.168.1.11 in via ${if4}
${fw} add allow ip from 192.168.1.11 to ${lan4} out via ${if4}
${fw} add allow ip from ${lan4} to 192.168.1.11 out via ${if1}
#
${fw} add deny ip from ${lan1} to any in via ${if1}
#
#${fw} add 65500 allow ip from any to any
${fw} add 65530 deny log logamount 3000 all from any to any
но что то пока я сосал лапу со сломанным инетом, уже забыл что хотел, а голова варить отказывается

завтра еще раз гляну