Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» FreeBSD + ipfw rules

Автор: Pukite
Дата сообщения: 30.06.2003 15:25
Привет, коллеги!

Имеем сервер с ип адресом a.b.c.сервер и компьютер-клиент с ип адресом a.b.c.клиент - необходимо, чтобы к 21-му порту мог подключаться только компьютер клиент.

ipfw add 400 reset tcp from any to a.b.c.сервер 21 in via rl0
ipfw add 410 allow tcp from a.b.c.клиент to a.b.c.сервер 21 in via rl0

К сожалению, не работает - что делаю не так?





ipfw - файервол FreeBSD
(постим полезную информацию)

Сравнение 3 Пакетных фильтров FreeBSD 5.3 (IPFW, PF, IPFILTER)
Настройка FireWall (ipfw) в FreeBSD
Пара готовых примеров
Подробный пример с коментами
http://www.bsdportal.ru/kb.php?mode=article&k=76 - Настройка ipfw для шлюза под управлением FreeBSD
http://www.asmodeus.com.ua/library/os/freebsd/ipfw.htm man ipfw на русском


Отдельно обсуждается:
FreeBSD + ipfw + port mapping
IPFW + Squid + перенаправление трафика
ipfw rules не сохраняются после reboot-a
PING - как корректно запретить (FreeBSD+ipfw)
FreeBSD 4.8 + DNS + ipfw + named.conf = режем
трафик

FreeBSD + bridge + pppoe + ipfw
Автор: UncoNNecteD
Дата сообщения: 30.06.2003 15:31
поменяй правила местами
ты сначала убиваешь весь трафик, а потом разрешаешь - но ОНО уже умерает на 400м правиле.
Автор: Zmey
Дата сообщения: 30.06.2003 15:34

Цитата:
ipfw add 400 reset tcp from any to a.b.c.сервер 21 in via rl0
ipfw add 410 allow tcp from a.b.c.клиент to a.b.c.сервер 21 in via rl0


Для этого тебе нужно разрешать не только 21-й порт но и 20-й.
И выглядеть должно все примерно так

ipfw add 400 allow tcp from IPClient to IPServer 21,20
ipfw add 430 deny tcp from any to IPServer 21,20

соответственно тебе еще нужно будет разрешить траффик от сервера к клиенту
Автор: Pukite
Дата сообщения: 30.06.2003 16:07
UncoNNecteD
Zmey



А как указать диапазон адресов IPClient, например начиная с a.b.c.100 и до a.b.c.120?
Автор: Zmey
Дата сообщения: 30.06.2003 18:13
Pukite
Если диапазон это подсеть то можно просто указать например a.b.c.0/24 и тп. если это просто айпишники то наверное прийдется ручками писать для каждого айпишника Если тебе нужно разрешить для всей сети то могешь написать например 192.168.100.0/24 сюда войдут айпишники от 0 - 255.
Автор: Pukite
Дата сообщения: 01.07.2003 09:46
Zmey

Именно просто айпишники
Автор: PomidorOFF
Дата сообщения: 15.04.2004 14:47
Ставишь IPFW2 и задаешь переменную с перечислением айпишников
Автор: hell raiser
Дата сообщения: 16.04.2004 11:16
PomidorOFF

Цитата:
задаешь переменную с перечислением айпишников

а можно пример

Добавлено
вдогонку еще вопрос
а как нужно написать правила для того чтобы всем копмпьютерам сети закрыть доступ например к 80 порту, но не всем а за исключением напрмер 1-9 заранее известным ip
вот сейчас написано так

min_ip=10
max_ip=250
i=$min_ip

case ${firewall_type} in
[Oo][Pp][Ee][Nn]|[Cc][Ll][Ii][Ee][Nn][Tt])
case ${natd_enable} in
[Yy][Ee][Ss])
if [ -n "${natd_interface}" ]; then

while [ $i -le $max_ip ]; do

${fwcmd} add $(($i + 300)) deny tcp from 192.168.x.$i to any 80,443 setup

i=$(($i + 1))
done

${fwcmd} add 1000 divert natd all from 192.168.x.0/24 to any out via a.b.c.22
${fwcmd} add 1001 divert natd all from any to a.b.c.22 in via ${natd_interface}
fi
;;
esac
esac
такой вариант неустраивает тем что правил создается куча, а можноли как нить изящнеее и попроще
Автор: mxm1975
Дата сообщения: 17.04.2004 00:58
hell raiser

Цитата:
всем копмпьютерам сети закрыть доступ например к 80 порту, но не всем а за исключением например 1-9 заранее известным ip


разреши "1-9 известным" и, дальше, запрети "всем"
Автор: hell raiser
Дата сообщения: 21.04.2004 09:41
mxm1975 процитируйте плз конкретные правила, делающие это:
Цитата:
азреши "1-9 известным" и, дальше, запрети "всем"


Автор: yarasha
Дата сообщения: 21.04.2004 12:51


Цитата:
Ставишь IPFW2 и задаешь переменную с перечислением айпишников

Если можно, приер пожалуйтса.
И еще, а можно ли будет потом эту переменную использовать в count, то есть, что бы
потом по счетчикам фаервола я мог посчитать кол-во трафика, локального, внутресетевого, или там только зарубежного и т.д ????
Автор: someone312002
Дата сообщения: 22.04.2004 12:17

Цитата:
разреши "1-9 известным" и, дальше, запрети "всем"

уж звний, что "ламо" вклинивается...
на сколько я понял, правила ипфв читаются "снизу вверх", если так, то будет нечто типа
1. разрешить
2. запретить
только разрешал бы я доступ по 80 порту из внутренней сети наружу только одной машине - прокси серверу, а уж через него управлял бы доступом к веб страницам внутри сети.
Если я неправ - разрешаю "кинуть в меня тапком" :о)
Автор: hell raiser
Дата сообщения: 22.04.2004 12:31
по сути да разрешается доступ 1 машине (проксе), про диапазон я добавил для того чтобы расширить вопрос, потому как это нелишнее. если делать по такой схеме

Цитата:
1. разрешить
2. запретить

то в каком месте тогда нужно между этм правилами, до них или после будут стоять

Цитата:
${fwcmd} add 1000 divert natd all from 192.168.x.0/24 to any out via a.b.c.22
${fwcmd} add 1001 divert natd all from any to a.b.c.22 in via ${natd_interface}

и опятьтаки как разрешить предположим одноймашине понятно, а как запретить все остальным тогда, интересуте конкретный синсакси этого правила.
Автор: someone312002
Дата сообщения: 23.04.2004 09:08
насколько мои ламерские познания не очень сильны, то звиняюсь сразу...
hell raiser, видишь ли, может быть и так:
ipfw add 200 <запретить>
ipfw add 100 <разрешить>
в этом случае, на сколько я понимаю будет приемняться ОЧЕРЕДЬ! номера 100 и 200...
Ещё раз повторюсь - если я неправ - жду сапогов...
Автор: hell raiser
Дата сообщения: 23.04.2004 10:58
ну насчет очереди ты абсолютно прав, цифры 100 и 200 это номера правил в этой очереди, и обход ее будет идти именно в порядке 100, 200 ... а не в том который указан при вводе правил с консоли или в скрипте.
по порядку подойдем к истине:
по существу вот о чем я гвоорю, 100 правилом я разрешу напрмер проксе с конкретным статическим айпишником проходить в вэб, дальше 200 правилом я запрещу всем остальным, как именно будет выглядеть именно это запрещающее правило для всех остальных? (пожалуй начнем с ответа на эот вопрос)
Автор: PomidorOFF
Дата сообщения: 23.04.2004 18:37
Установка IPFW2:
http://www.opennet.ru/tips/info/591.shtml

В результате имеем правила вида:

goodguys="{ 10.1.2.0/24{20,35,66,18} or 10.2.3.0/28{6,3,11} }"
badguys="10.1.2.0/24{8,38,60}"

ipfw add allow ip from ${goodguys} to any
ipfw add deny ip from ${badguys} to any


Цитата:
а как нужно написать правила для того чтобы всем копмпьютерам сети закрыть доступ например к 80 порту, но не всем а за исключением напрмер 1-9 заранее известным ip


делаешь допустим
badguys="10.1.2.0/24{8,38,60}"
потом
${fwcmd} add deny tcp from ${badguys} to any 80,443 setup
а потом хоть
${fwcmd} add 1001 divert natd all from any to any in via ${natd_interface}

так как плохишам мы закрыли - все остальные пройдут. Только учти, что при "to any 80,443 setup" плохишам закрыты только 80, 443 порты, остальные открытые будут натиться. Напримел почту смогут получать и отправлять, если 25 и 110 открыты и т.п.


Цитата:
И еще, а можно ли будет потом эту переменную использовать в count, то есть, что бы
потом по счетчикам фаервола я мог посчитать кол-во трафика, локального, внутресетевого, или там только зарубежного и т.д ????


почему бы и нет? правда только локальный или внутрисетевой трафик можно отсечь. Потому как я не представляю как для зарубежного диапазоны адресов описать. ))
Автор: WebDi
Дата сообщения: 30.04.2004 12:23
Здравствуйте.

Поможите с проблемкой, пожалуйста.

Надо запретитить юзеру в интернет ходить через 3128 порт.
Вроде прописал что надо, и ДО разрешающих правил, а не работает.
В файле правил ipfw написано (там много разного, но важное, видимо, сейчас только это):
Цитата:
fwcmd="/sbin/ipfw -q"
net="192.168._.__/__"
$fwcmd -f flush
......................
# Deny connections
$fwcmd add deny tcp from 192.168.__.__ to any 3128 via ng0
$fwcmd add deny tcp from any 3128 to 192.168.__.__ via ng0
$fwcmd add deny udp from 192.168.__.__ to any 3128 via ng0
$fwcmd add deny udp from any 3128 to 192.168.__.__ via ng0

# Allow any outgoing connections
$fwcmd add pass tcp from me to any out via ng0
$fwcmd add pass tcp from any to me in via ng0 established
$fwcmd add pass udp from me to any 53 out via ng0
$fwcmd add pass udp from any 53 to me in via ng0
Автор: hell raiser
Дата сообщения: 03.05.2004 13:19
$fwcmd add deny tcp from 192.168.__.__ to any 3128 setup
и в каком месте стоит divert?
Автор: WebDi
Дата сообщения: 05.05.2004 06:57
hell raiser
divert нет нигде. А он нужен?
Автор: someone312002
Дата сообщения: 05.05.2004 09:01
"стьянная констьюкция" (с)
А зачем из локалки вообще позволять юзерям обращаться на несервисные порты ? Те, что лежат за пределами 1024 ?
Автор: WebDi
Дата сообщения: 05.05.2004 09:18
someone312002
"а я знаю?"
Автор: hell raiser
Дата сообщения: 05.05.2004 09:38

Цитата:
divert нет нигде. А он нужен?

а как твои пользователи будут ходить в инет, точнее по топологии за твоих пользователей должен кто-то ходить, т.е. подменять адреса локальные в интернетовские. я прав?
Автор: WebDi
Дата сообщения: 05.05.2004 10:28
Не знаю.
На сервере есть прокси, есть named.
Они могут подменять?

А конфигурация правил ipfw вообще написана нормально?
Или там тоже править нужно?
Автор: TILK
Дата сообщения: 06.05.2004 08:21
WebDi
Ты бы в таком случае рассказал о конфигурации сети:
Этот компьютер с правилами и есть прокси-сервер?
что стоит в качестве прокси-сервера?
сколько ip-адресов на сервере?
является ли он шлюзом или брэндмауэром?
сколько вообще серверов для доступа в интернет?
зачем запрещать порт 3128? потому что пользователь выходит через внешние прокси-сервера и этот трафик на входит в статистику с прокси-сервера? в этом случае необходимо искать другие решения.


Цитата:
На сервере есть прокси, есть named.
Они могут подменять?

named ничего не подменяет - это демон ДНС'а, точнее BIND'а.
а вот твой прокси скорее всего редиректит с какого-нибудь одного порта на остальные, напр. если в локалке на клиентах в Internet Explorere прописано нечто вроде такого: "proxy 192.168.1.1 port 8080", где 192,168,1,1 - твой прокси-сервер, то он перенаправит пакетики с порта 8080 на 80.
Автор: WebDi
Дата сообщения: 06.05.2004 09:20
TILK
Да, прокси-сервер, FreeBSD. На нём и стоит fairwall, named, apache и прочее.

Цитата:
сколько ip-адресов на сервере?
Жёстко они не прописаны.

Цитата:
является ли он шлюзом или брэндмауэром?
он в локалке - главный, у него есть внешний ip.

Цитата:
зачем запрещать порт 3128?
Чтобы отключить юзеру http. Да, он может выходить через Socks, но так надо - отключить http. Выход в инет - только через внутренний прокси-сервер.

Цитата:
192,168,1,1 - твой прокси-сервер, то он перенаправит пакетики с порта 8080 на 80
А где это можно прочитать/прописать, откуда куда он редиректит?
Автор: wchik
Дата сообщения: 06.05.2004 12:50
WebDi

Цитата:
Чтобы отключить юзеру http

Имеется ввиду вообще?
тогда юзай правила сквида

а правила фаера такие
ipfw add 100 allow ip from 192.168.1.0/24 to 192.168.1.1/32 3128
ipfw add 200 deny ip from 192.168.1.0/24 to any 3128, 8080, 80, 1080


Автор: WebDi
Дата сообщения: 06.05.2004 14:40
wchik
А allow перед deny это правильно? Мне почему-то говорили, что нет.
Но я попробую.
Автор: wchik
Дата сообщения: 06.05.2004 15:26
WebDi
Почему неправильно? ты ведь не все подряд разрешаешь, а только подключение к твоей проксе из локалки не более того
(что-то ведь надо разрешить перед тем как все запретить)
Автор: WebDi
Дата сообщения: 07.05.2004 07:14
wchik
Цитата:
а правила фаера такие
ipfw add 100 allow ip from 192.168.1.0/24 to 192.168.1.1/32 3128
ipfw add 200 deny ip from 192.168.1.0/24 to any 3128, 8080, 80, 1080
А каким образом отключить доступ не всей сети к серверу, а конкретному IP к серверу ?
Автор: TILK
Дата сообщения: 07.05.2004 07:37
WebDi
вместо 192.168.1.0/24 напиши конкретный ип.
а вот почему некоторые сперва разрешают, а потом запрещают и наоборот зависит от опции, с которой компилировали ядро IPFIREWALL_DEFAULT_TO_ACCEPT или IPFIREWALL_DEFAULT_TO_DENY

Страницы: 1234567891011

Предыдущая тема: Зачем нужна рабочая группа?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.