Страница 1 из 1
Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-10 10:22:46
redhot
Добрый день! Есть инфраструктура с центральным FreeBSD-сервером, более сотни клиентов под виндой. На Фре стоит DHCP сервер, IPFW, который пущает всех через прозрачный прокси Squid в инет. Хотелось бы создать средство для учета MAC-адресов всех клиентов с целью
не пускать в сеть инородные ПК. В идеале - создать пары "
MAC - IP", если ПК не соответсвует им, рубать доступ. Есть ли что-либо готовое в портах?
P.S. "Умного" сетевого оборудования нету, вся надежда на Фрю

Re: Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-10 11:10:11
redhot
Или проще не ждать ответа и самому скрипт писать, используя результаты
arp -a?

Re: Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-10 11:26:52
schizoid
писать. но это гемор. от этого все равно рано или поздно уходят.
Re: Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-10 11:31:22
redhot
а к чему уходят? к аутентификации?

Re: Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-10 12:02:17
schizoid
запаришься поддерживать актуальность
мак - ИП
ну вообще как знаешь...
переходите на vpn
Re: Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-10 12:10:18
redhot
да мы как раз с VPN-а ушли)))
а поддерживать актуальность достаточно просто - сетевухи редко горят (тьху-тьху-тьху)
P.S. хотя бы маки на крайняк в базу загнать))
Re: Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-10 12:13:59
schizoid
ну arpwatch поможет пособирать маки.
а как боретесь если в сети заводится вирус, который меняет маки?
Re: Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-10 12:22:11
GRooVE
redhot писал(а):создать пары "MAC - IP", если ПК не соответсвует им, рубать доступ.
У самого так (имхо самый нормальный вариант):
Код: Выделить всё
# cat /usr/local/etc/arp.list
10.10.1.2 00:1E:16:23:FE:12
10.10.1.3 00:19:CD:20:AC:EF
10.10.1.4 00:16:EC:F5:18:68
10.10.1.5 00:25:84:0B:4B:00
10.10.1.6 00:E0:81:41:3D:38
10.10.1.7 FF:FF:FF:FF:FF:FF
# cat /etc/rc.local
/usr/sbin/arp -f /usr/local/etc/arp.list
В моем случае:
10.10.1.1 - 10.10.1.6 = Клиенты
10.10.1.7 - броадкаст
айпи сет. интерфейса: 10.10.1.1/29
т.е. тут все четко...
если есть свободные айпишники - забивай их в конфиг как "FF:FF:FF:FF:FF:FF" до ближайшей маски и по этой маске уже либо в фаере ограничивай либо самим интерфейсом
Re: Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-10 12:28:37
redhot
Спасибо!
Сейчас копаю в сторону парсинга логов DHCP, ибо хостнейм тоже очень важен! Нахрен в сети компы с именами Vasya, Kolya или PC-309483209483209?!

Re: Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-10 17:41:37
fox
whereis ipguard
Любопытно это не то что надо?
Re: Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-10 17:59:35
reLax
А зачем эта вся хрень ?
Ну хорошо, привязка IP-MAC...
Код: Выделить всё
[17:55 root@darkstar /home/alex]# ifconfig
msk0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=11a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING,TSO4>
ether 00:1e:8c:30:b9:a2
inet 172.17.2.100 netmask 0xffff0000 broadcast 172.17.255.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
msk1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=11a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING,TSO4>
ether 00:1e:8c:30:ba:6a
inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255
inet 192.168.0.230 netmask 0xffffff00 broadcast 192.168.0.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
pfsync0: flags=41<UP,RUNNING> metric 0 mtu 1460
pfsync: syncdev: msk0 syncpeer: 224.0.0.240 maxupd: 128
pflog0: flags=141<UP,RUNNING,PROMISC> metric 0 mtu 33204
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
tap0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:bd:91:9e:00:00
inet 172.17.3.1 netmask 0xffffff00 broadcast 172.17.3.255
Opened by PID 822
Далее
Код: Выделить всё
[17:56 root@darkstar /home/alex]# tcpdump -ennqti msk0 arp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on msk0, link-type EN10MB (Ethernet), capture size 96 bytes
00:04:23:c5:12:f6 > ff:ff:ff:ff:ff:ff, ARP, length 106: arp who-has 172.17.2.25 tell 172.17.2.5
00:04:23:c5:12:f6 > ff:ff:ff:ff:ff:ff, ARP, length 106: arp who-has 172.17.2.11 tell 172.17.2.5
00:04:23:c5:12:f6 > ff:ff:ff:ff:ff:ff, ARP, length 106: arp who-has 172.17.2.58 tell 172.17.2.5
00:04:23:c5:12:f6 > ff:ff:ff:ff:ff:ff, ARP, length 106: arp who-has 172.17.2.12 tell 172.17.2.5
00:1f:d0:86:36:66 > ff:ff:ff:ff:ff:ff, ARP, length 60: arp who-has 172.17.2.36 tell 172.17.2.16
00:1a:92:07:6c:19 > ff:ff:ff:ff:ff:ff, ARP, length 60: arp who-has 172.17.2.200 tell 172.17.2.133
00:13:20:50:66:35 > ff:ff:ff:ff:ff:ff, ARP, length 60: arp who-has 172.17.2.100 tell 172.17.2.36
00:1e:8c:30:b9:a2 > 00:13:20:50:66:35, ARP, length 42: arp reply 172.17.2.100 is-at 00:1e:8c:30:b9:a2
00:1d:60:78:a7:90 > ff:ff:ff:ff:ff:ff, ARP, length 60: arp who-has 172.17.2.36 tell 172.17.2.30
00:1a:92:07:6f:4c > ff:ff:ff:ff:ff:ff, ARP, length 60: arp who-has 172.17.2.100 tell 172.17.2.7
00:1e:8c:30:b9:a2 > 00:1a:92:07:6f:4c, ARP, length 42: arp reply 172.17.2.100 is-at 00:1e:8c:30:b9:a2
00:1f:d0:86:36:66 > ff:ff:ff:ff:ff:ff, ARP, length 60: arp who-has 172.17.2.105 tell 172.17.2.16
00:04:23:2c:1e:39 > ff:ff:ff:ff:ff:ff, ARP, length 60: arp who-has 172.17.2.152 tell 172.17.2.134
00:1e:8c:30:b9:a2 > ff:ff:ff:ff:ff:ff, ARP, length 42: arp who-has 172.17.4.1 tell 172.17.2.100
00:04:23:2b:fe:8e > ff:ff:ff:ff:ff:ff, ARP, length 60: arp who-has 172.17.2.100 tell 172.17.2.151
00:1e:8c:30:b9:a2 > 00:04:23:2b:fe:8e, ARP, length 42: arp reply 172.17.2.100 is-at 00:1e:8c:30:b9:a2
00:1d:60:78:a7:90 > ff:ff:ff:ff:ff:ff, ARP, length 60: arp who-has 172.17.2.151 tell 172.17.2.30
00:40:f4:2a:44:94 > ff:ff:ff:ff:ff:ff, ARP, length 60: arp who-has 172.17.2.53 tell 172.17.2.159
00:1d:60:78:b3:b0 > ff:ff:ff:ff:ff:ff, ARP, length 60: arp who-has 172.17.2.68 tell 172.17.2.12
00:13:20:50:66:1f > ff:ff:ff:ff:ff:ff, ARP, length 60: arp who-has 172.17.2.42 tell 172.17.2.53
00:1e:8c:a9:9f:d4 > ff:ff:ff:ff:ff:ff, ARP, length 60: arp who-has 172.17.2.61 tell 172.17.2.25
00:04:79:67:78:61 > ff:ff:ff:ff:ff:ff, ARP, length 60: arp who-has 172.17.2.34 tell 172.17.2.19
00:1d:60:78:b3:b0 > ff:ff:ff:ff:ff:ff, ARP, length 60: arp who-has 172.17.2.1 tell 172.17.2.12
00:13:20:50:66:1f > ff:ff:ff:ff:ff:ff, ARP, length 60: arp who-has 172.17.2.33 tell 172.17.2.53
^C
24 packets captured
794 packets received by filter
0 packets dropped by kernel
Код: Выделить всё
# ifconfig msk0 link 00:1f:d0:86:36:66
# ifconfig msk0 inet 172.17.2.16 netmask 255.255.0.0
...
или в rc.conf
...
# /etc/netstart
Ну и чего добились ?
P.S. И по сути даже никакой управляемый коммутатор с этим не справится

Re: Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-10 18:29:49
GRooVE
reLax писал(а):И по сути даже никакой управляемый коммутатор с этим не справится
любой нормальный пров режит броадкаст умным свитчем еще на входе, так что там арп не послушаете
во-вторых, у управляемых свитчей биндинг "МАК---АЙПИ---Порт"
Re: Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-10 18:41:33
reLax
GRooVE писал(а):reLax писал(а):И по сути даже никакой управляемый коммутатор с этим не справится
любой нормальный пров режит броадкаст умным свитчем еще на входе, так что там арп не послушаете
во-вторых, у управляемых свитчей биндинг "МАК---АЙПИ---Порт"
1. У меня тут на чердаке стоит свитч некоего провайдера NetByNet. То есть иными словами Вы считаете что я этот tcpdump не получу ? Ошибаетесь. А провайдер то не маленький вроде...Там у них сейчас PPPoE правда, но не суть важно.
2. Знаю. Но у меня есть ключи от чердака. Да, конечно, на коммутаторе можно прописывать на каждый порт соответствие IP-MAC...Когда 100-500-1000 машин. Но не когда их наверное несколько десятков тысяч (как у NbN)

Но. Здесь вообще-то шел разговор о привязке IP-MAC на FreeBSD. А FreeBSD - это не коммутатор.
arp -an и т.п. не спасут от подмены MAC-IP.
Re: Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-10 19:15:28
redhot
+ еще можно добавить хостнэйм для пущей уверенности

тоесть
задача-минимум: блокировать инородные MAC-и
задача-максимум: блокировать не соотвествующих приявзкам MAC-IP-hostname, или же просто MAC-Hostname, та как DHCP все равно будет менять IP!
Re: Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-10 19:29:41
ev
Знаю. Но у меня есть ключи от чердака.
и от их ящика тоже?
Да, конечно, на коммутаторе можно прописывать на каждый порт соответствие IP-MAC...Когда 100-500-1000 машин. Но не когда их наверное несколько десятков тысяч (как у NbN)
тут нет проблемы (см. snmp)
Re: Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-10 19:34:00
reLax
MAC-host - это как ?
К чему такая бесполезная и безумная паранойя ?

В теории скриптами возможно периодически проверять соответствие PTR записи к имени машины в DNS из таблиц того-же ipfw например, но это уже на уровне IP будет...
ipfw не пользуюсь, не помню, можно ли там в таблицу засунуть MAC (это я к тому, что засунуть туда разрешенные MAC-адреса и просто банить, то чего там нету)
Re: Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-10 19:38:55
reLax
ev писал(а):Знаю. Но у меня есть ключи от чердака.
и от их ящика тоже?
Да, конечно, на коммутаторе можно прописывать на каждый порт соответствие IP-MAC...Когда 100-500-1000 машин. Но не когда их наверное несколько десятков тысяч (как у NbN)
тут нет проблемы (см. snmp)
С ящика явно никто не станет снимать отпечатки пальцев, а тем более c замка, выломанного фомкой ))
Насчет SNMP я знаю, но не задумывался ты о том, что все эти провайдеры уже давно почему-то используют всякие VPN-ы и прочие PPPoE ?
Re: Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-10 20:21:49
ev
С ящика явно никто не станет снимать отпечатки пальцев, а тем более c замка, выломанного фомкой ))
будут... им выгодно поймать человека, и придать огласке - чтоб другим неповадно было
Насчет SNMP я знаю, но не задумывался ты о том, что все эти провайдеры уже давно почему-то используют всякие VPN-ы и прочие PPPoE ?
ты путаешь... одно дело авторизация для подсчета трафика, а другое дело уже оптимизация подключений
первоочередная задача - набрать абонентов и считать их в биллинге... сейчас это уже у всех работает и проблем нет... обстановка примерно стабилизировалась... но ведь можно еще получить денег (некоторые не платят и юзают локалку без оплаты например) и оптимизировать каналы... вот начинается волна оптимизаций подключений - отрубаются старые линки, проверяется корректность существующих и т.п. (просто я недавно такой софт делал)
Re: Учет MAC-ов клиентских ПК в сети
Добавлено: 2009-11-11 14:13:11
Anaxion
В плане не разрешить клиентам с "левыми маками" получать адреса от DHCP-сервера - есть опция
deny unknown-clients, остальным сделать привязку к к маку. Однако остается возможность руками задать ip-параметры. Тогда блокировать на Фре в ipfw и squid'е выход в инет. Но вашу проблему
не пускать в сеть инородные ПК
это не решит, тут только умное оборудование имхо.