[ipfw] Mac

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
MASiK
лейтенант
Сообщения: 625
Зарегистрирован: 2008-09-19 20:09:41
Откуда: Оттуда
Контактная информация:

[ipfw] Mac

Непрочитанное сообщение MASiK » 2009-11-10 1:17:44

Вот чёт всё руки не доходят, как-то давным давно, всё хотел разобраться с MAC ADDR и IPFW так как он может легко работать с мак адресами, но так и не разобрался, может кто поможет, литературу какую подкинет, или вообще мож кто уже разобрался статейку нарисует.

Мне конечно не горит, но знать хотелось бы, я так понял что это как другая ветка и надо будет создать отдельный файлик с правилами под MAC и грузить 2 файла ipfw при загрузке.

В гугле конечно много всяких тем про ipfw и mac, но всё же хотелось как-то всё в одной куче иметь, разобраться, и кинуть статейку, а бы чё, залез на 1 сайт и всё что надо увидел, а не гуглить в поисках той заветной странички что когда-то где-то увидел

P.S. Всё что знаю это то что надо

Код: Выделить всё

sysctl net.link.ether.ipfw=1
И всё :)))
Самурай

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

wp2
рядовой
Сообщения: 42
Зарегистрирован: 2009-10-25 2:26:03

Re: [ipfw] Mac

Непрочитанное сообщение wp2 » 2009-11-10 2:22:57

man ipfw

Аватара пользователя
MASiK
лейтенант
Сообщения: 625
Зарегистрирован: 2008-09-19 20:09:41
Откуда: Оттуда
Контактная информация:

Re: [ipfw] Mac

Непрочитанное сообщение MASiK » 2009-11-10 18:51:25

wp2 писал(а):man ipfw
Умный типа?
Ты сам то его читал?
Самурай

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: [ipfw] Mac

Непрочитанное сообщение terminus » 2009-11-10 19:15:59

при включении того самого sysctl трафик начинает проходить через фаервол 4 раза - фарвол вызывается для:

- входяшего на канальном уровне
- входяшего на сетевом уровне
- исходящего на сетевом уровне
- исходящего на канальном уровне

В зависимости от уровня есть или нет возможности проверять на МАС адреса.

Для того чтобы облегчить себе жизнь, рекомендуют выносить через skipto правила layer2 в отдельные группы.

Пример ната где двоим мак адресам запрешен доступ:

Код: Выделить всё

add 1 skipto 40000 all from any to any layer2 in
add 1 skipto 999 all from any to any not layer2 in
add 1 skipto 999 all from any to any not layer2 out
add 1 skipto 60000 all from any to any layer2 out

add 999 allow ip from any to any via vr0

nat 1 config if vr1 reset same_ports deny_in
add 10140 nat 1 ip from any to any via vr1

add 10160 deny all from any to any


# фильтрация по МАС на входе
# mac dst-mac src-mac
# mac any 10:20:30:40:50:60/48
# 10:20:30:40:50:60 is client's mac address
add 40000 deny ip from any to any mac any 10:20:30:40:50:60/48 in layer2 recv vr0
add 40001 deny ip from any to any mac any 10:20:30:40:50:61/48 in layer2 recv vr0
add 50000 allow all from any to any layer2 in


# фильтрация по МАС на выходе
add 60000 allow all from any to any layer2 out



add 65533 deny all from any to any

Последний раз редактировалось terminus 2009-11-10 19:19:15, всего редактировалось 1 раз.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
MASiK
лейтенант
Сообщения: 625
Зарегистрирован: 2008-09-19 20:09:41
Откуда: Оттуда
Контактная информация:

Re: [ipfw] Mac

Непрочитанное сообщение MASiK » 2009-11-10 19:18:27

Рульненько
Спасибо
Самурай

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: [ipfw] Mac

Непрочитанное сообщение terminus » 2009-11-10 19:22:24

тут это - главное понять что вызов правил будет происходить 4 раза, и что сначала трафик по скипто на первом правиле пройдет через 40000 до 50000, потом через 999 до 10140, потом сново через 999 до 10140, и потом через 60000.

без sysctl он бы всегда ходил только через 999 до 10140.

А так все просто... :-D
Последний раз редактировалось terminus 2009-11-10 19:24:48, всего редактировалось 1 раз.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
MASiK
лейтенант
Сообщения: 625
Зарегистрирован: 2008-09-19 20:09:41
Откуда: Оттуда
Контактная информация:

Re: [ipfw] Mac

Непрочитанное сообщение MASiK » 2009-11-10 19:24:17

ща буду пробУвать :)
и без скипто попробую

А-то помню 1 раз пытался попробувать, врубил

Код: Выделить всё

sysctl net.link.ether.ipfw=1
На рабочей тачке удалённо и всё вылетело нахрен :)
И я чёт так разобиделся что забил на это дело :)
Самурай

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: [ipfw] Mac

Непрочитанное сообщение terminus » 2009-11-10 19:26:05

лучше со скипто - запутаться можно без него, а с ним нагладнее.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
havarz
мл. сержант
Сообщения: 104
Зарегистрирован: 2008-05-06 15:18:07
Откуда: Камчатка

Re: [ipfw] Mac

Непрочитанное сообщение havarz » 2009-12-13 12:04:54

to terminus, респект.
Искал в свое время про это, как-то сделал, но честно говоря сам не до конца понял, как :-D

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: [ipfw] Mac

Непрочитанное сообщение fox » 2009-12-14 1:44:58

Доброй ночи, что то я не вьехал, для тех кто в танке, как одним правелом закрыть маку доступ на машину через ipfw?
Да пребудет с нами сила!!!
Всех убью, один останусь!

Аватара пользователя
havarz
мл. сержант
Сообщения: 104
Зарегистрирован: 2008-05-06 15:18:07
Откуда: Камчатка

Re: [ipfw] Mac

Непрочитанное сообщение havarz » 2009-12-14 8:33:25

Думаю одним правилом, не получится.
Лучше по приведенной выше схеме.

Я делал так, правда не доступ закрывал, а скорость ограничивал

Код: Выделить всё

fw="/sbin/ipfw "
iint="rl1"
iext="rl0"
locnet="192.168.100.11/24"
vpnnet="10.10.100.0/24"

$fw -f flush
$fw -f pipe flush
$fw -f queue flush

$fw pipe 1 config bw 64Kbit/s
$fw pipe 2 config bw 32Kbit/s
$fw queue 1 config pipe 1 weight 50 mask dst-ip 0xffffffff
$fw queue 2 config pipe 2 weight 50 mask src-ip 0xffffffff

$fw add 1 skipto 60000 all from any to any layer2 in
$fw add 1 skipto 100 all from any to any not layer2 in
$fw add 1 skipto 100 all from any to any not layer2 out
$fw add 1 skipto 61000 all from any to any layer2 out



$fw add 100 allow ip from any to any via lo0
$fw add 200 allow ip from any to any via $iint
$fw add 300 deny ip from $locnet to any via $iext
.....здесь mpd вставляет any to any via ng*
$fw nat 1 config log if $iext reset same_ports deny_in
$fw add 10100 nat 1 ip from any to any via $iext


$fw add 60000 queue 2 ip from any to any mac any 00:90:f5:3c:44:00/48 in layer2 recv $iint
$fw add 60100 allow all from any to any layer2 in

$fw add 61000 queue 1 ip from any to any mac 00:90:f5:3c:44:00/48 any out layer2 xmit $iint
$fw add 61100 allow all from any to any layer2 out
#$fw add 65000 deny log ip from any to any

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: [ipfw] Mac

Непрочитанное сообщение terminus » 2009-12-14 10:36:12

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

Код: Выделить всё

deny ip from any to any mac any 10:20:30:40:50:60/48 in layer2
Но лучше все же через схему со скипто - это оптимальнее. Без скипто пакеты станут проходить через все правила по два раза на входе и по два раза на выходе.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
havarz
мл. сержант
Сообщения: 104
Зарегистрирован: 2008-05-06 15:18:07
Откуда: Камчатка

Re: [ipfw] Mac

Непрочитанное сообщение havarz » 2009-12-14 11:42:22

terminus писал(а):
fox писал(а):Доброй ночи, что то я не вьехал, для тех кто в танке, как одним правелом закрыть маку доступ на машину через ipfw?
Если грубо, то просто добавить в самое начало правил такое

Код: Выделить всё

deny ip from any to any mac any 10:20:30:40:50:60/48 in layer2
Но лучше все же через схему со скипто - это оптимальнее. Без скипто пакеты станут проходить через все правила по два раза на входе и по два раза на выходе.
У меня почему-то не сработало.
Вернее сказать правило срабатывает, но выплывает косяк в других правилах для ната, впн и т.д.
Правда я пробовал это еще с natd.

Аватара пользователя
MASiK
лейтенант
Сообщения: 625
Зарегистрирован: 2008-09-19 20:09:41
Откуда: Оттуда
Контактная информация:

Re: [ipfw] Mac

Непрочитанное сообщение MASiK » 2009-12-14 12:18:35

havarz писал(а):
terminus писал(а):
fox писал(а):Доброй ночи, что то я не вьехал, для тех кто в танке, как одним правелом закрыть маку доступ на машину через ipfw?
Если грубо, то просто добавить в самое начало правил такое

Код: Выделить всё

deny ip from any to any mac any 10:20:30:40:50:60/48 in layer2
Но лучше все же через схему со скипто - это оптимальнее. Без скипто пакеты станут проходить через все правила по два раза на входе и по два раза на выходе.
У меня почему-то не сработало.
Вернее сказать правило срабатывает, но выплывает косяк в других правилах для ната, впн и т.д.
Правда я пробовал это еще с natd.
Так а

Код: Выделить всё

sysctl net.link.ether.ipfw=1
Сделано было?
Самурай

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: [ipfw] Mac

Непрочитанное сообщение terminus » 2009-12-14 12:25:36

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

Код: Выделить всё

ipfw add divert natd all from any to any via em0
то это правило отлично станет срабатывать как для трафика полученного на канальном так и на сетевом уровне - пакеты станут заворачиваться два раза туда и два раза обратно. Решение - или делаем схему со скипто, или трудим голову и во всех правилах специально пишем layer2 / not layer2
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
havarz
мл. сержант
Сообщения: 104
Зарегистрирован: 2008-05-06 15:18:07
Откуда: Камчатка

Re: [ipfw] Mac

Непрочитанное сообщение havarz » 2009-12-14 12:47:00

все именно так.
sysctl включен, и на нате вылезали косяки.
Я в свое время как-то запутался в скипто, усложняя простые вещи.
Наверное усложнение простого происходит, или от поверхостного знания предмета (когда знаешь 2 "правила" из 20 возможных и пытаешься все ими описать), или от БОЛЬШОГО ума, когда на написанное тобой все вокруг смотрят вот так :shock: , а ты не можешь понять, "что тут не понятного" :-D

Аватара пользователя
shamahn
рядовой
Сообщения: 15
Зарегистрирован: 2009-12-10 4:35:41
Контактная информация:

Re: [ipfw] Mac

Непрочитанное сообщение shamahn » 2009-12-17 11:02:03

Подниму топик, чтобы себе сделать немного понятнее, может кому поможет) А, вообще, может сделать статью, такую же как ipfw подробное ;-)

Код: Выделить всё

#Перенаправляем трафик
#Если входящий на КАНАЛЬНОМ уровне, перенаправляем на правило 40000
add 1 skipto 40000 all from any to any layer2 in
#Входящий на сетевом уровне перенаправляем на правило 999
add 1 skipto 999 all from any to any not layer2 in
#Исходящий на сетевом уровне перенаправляем на правило 999
add 1 skipto 999 all from any to any not layer2 out
#Исходящий на КАНАЛЬНОМ уровне, перенаправляем на правило 60000 (Отдельная группа правил)
add 1 skipto 60000 all from any to any layer2 out

#азрешаем весь трафик на внутреннем интерфейсе
add 999 allow ip from any to any via vr0
#Поднимаем нат
nat 1 config if vr1 reset same_ports deny_in
add 10140 nat 1 ip from any to any via vr1

add 10160 deny all from any to any


# фильтрация по МАС на входе (мне как бы не нужна. сервером нужно разрешить пользоваться всем ползователям сети
add 40000 allow all from any to any layer2 in


# фильтрация по МАС на выходе
#Тут я немного перекрою, мне надо по белому списку, т.е. разрешить только определенным, остальным запретить
# mac dst-mac src-mac
# mac any 10:20:30:40:50:60/48 - тут не понятно, что знаит [b]/48[/b]
# 10:20:30:40:50:60 Мак адрес клиента, котором нужно разрешить
add 60000 allow ip from any to any mac any 10:20:30:40:50:60/48 in layer2 out via vr1
add 60001 deny ip from any to any in layer2 out via vr1
add 60000 allow all from any to any layer2 out

add 65533 deny all from any to any
Вот, как я вижу набор правил. Но напрашивается справедливый вопрос, для чего пробрасывать трафик и фильтровать его только на выходе? В общем, прошу метсных гуру помочь мне, и допилить правила, думаю поможет многим, т.к. задача разрешить интернет только избранным, встречается достаточно часто, а фильтрация чисто по айпи немного менее защищена, чем по маку (хотя, кулхуцкерам и это не помеха, конечно. Но в совокупности с фильтрацией по айпи, должно доставить немного проблем, а там уже логи нам в помощь ;-))

Аватара пользователя
hizel
дядя поня
Сообщения: 9031
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [ipfw] Mac

Непрочитанное сообщение hizel » 2009-12-17 11:17:30

что значит mac/mask четко определенно в man ipfw

mac/48 == mac

если вы не фильтруете что-то то просто поставьте allow и не используйте skipto
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
shamahn
рядовой
Сообщения: 15
Зарегистрирован: 2009-12-10 4:35:41
Контактная информация:

Re: [ipfw] Mac

Непрочитанное сообщение shamahn » 2009-12-17 12:44:17

В общем, если не написать что-нить, ветка опять загнется.
Плз, народ.
2 правила, нат и заворот в проксик

Код: Выделить всё

${ipfw} add 20125  fwd 127.0.0.1,3128 tcp from ${innet} to any http out via ${outif}
${ipfw} nat 1 config log if ${outif} reset same_ports deny_in 
${ipfw} add 20130 nat 1 ip from any to any via ${outif}
Что написать, чтобы допустить к ним только определенные mac адреса. Хотя бы идею, но относительно подробную, я только начинаю и мысли пока читать не научился)

Аватара пользователя
hizel
дядя поня
Сообщения: 9031
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [ipfw] Mac

Непрочитанное сообщение hizel » 2009-12-17 13:29:54

Код: Выделить всё

$fw allow all from any to any layer2 via $iext
$fw allow all from any to any layer2 in via $iint
$fw skipto 50000 all from any to any out via $iint

....

$fw add 50000 allow ip from $ip to any mac any $mac 
$fw add 50001 deny ip from any to any mac any any
помнится там еще надо tcpdump-ом посмотреть и разрешить несколько протоколов, например arp
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
skeletor
майор
Сообщения: 2490
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: [ipfw] Mac

Непрочитанное сообщение skeletor » 2010-09-10 10:11:06

А у меня возникла проблема: при включении фильтрации по МАКам (sysctl net.link.ether.ipfw=1) squid начал блокировать юзеров.
squid - в прозрачном режиме, доступы реализованы через acl' на основе IP.
Кто с таким сталкивался?
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

Аватара пользователя
hizel
дядя поня
Сообщения: 9031
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [ipfw] Mac

Непрочитанное сообщение hizel » 2010-09-10 10:21:09

с чего вы решили что именно squid?
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
skeletor
майор
Сообщения: 2490
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: [ipfw] Mac

Непрочитанное сообщение skeletor » 2010-09-10 10:40:28

Ну у юзеров начались выскакивать squid'овые странички Access denied.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

Аватара пользователя
hizel
дядя поня
Сообщения: 9031
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [ipfw] Mac

Непрочитанное сообщение hizel » 2010-09-10 10:42:51

а это не от того что сам сквид не может до интернетов достучатся ;]
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
skeletor
майор
Сообщения: 2490
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: [ipfw] Mac

Непрочитанное сообщение skeletor » 2010-09-10 10:51:09

Не понял.
Правила в файере все только для IP. Для МАСов - не прописывал. Просто когда включаю в 1 net.link.ether.ipfw блочиться, выключаю - работает.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"