umkas писал(а):
непонятно как у
snark такие профили работают

т.к. это правила в первую очередь для клиентских (читай - не тегированных) портов то работают они как и задумывалось, как сказал Бигаров Руслан:
Bigarov Ruslan писал(а):
Логика всегда была простая, т.е. входящий пакет всегда жёстко проверялся по заданным параметрам, если по одному из параметров пакет не прошёл, то пакет не попадёт под ACL правило.
в правилах привязка делается не только по одному единственному, обобщенному параметру "eth протокол", а по "определенные пакеты, определенного протокола", т.е. я хотел разрешить не просто "протокол ARP":
Код:
create access_profile ethernet ethernet_type profile_id 1
config access_profile profile_id 1 add access_id auto_assign ethernet ethernet_type 0x806 port <порт(ы)> permit
а "ARP пакеты протокола IP":
Код:
create access_profile packet_content_mask offset_0-15 0x0 0x0 0x0 0xffff0000 offset_16-31 0xffff0000 profile_id 1
config access_profile profile_id 1 add access_id auto_assign packet_content offset 12 0x08060000 offset 16 0x08000000 port <порт(ы)> permit
и не просто "протокол IP":
Код:
create access_profile ethernet ethernet_type profile_id 2
config access_profile profile_id 2 add access_id auto_assign ethernet ethernet_type 0x800 port <порт(ы)> permit
а "IP пакеты протокола IP"
Код:
create access_profile packet_content_mask offset_0-15 0x0 0x0 0x0 0xffff0000 offset_16-31 0xffff0000 profile_id 2
config access_profile profile_id 2 add access_id auto_assign packet_content offset 12 0x08000000 offset 16 0x08000000 port <порт(ы)> permit
в общем виде мне хотелось видеть в одном правиле не один параметр для сравнения, а как минимум 2 ...
вполне возможно что я дую на воду, т.к. например во IPX, ЕМНИП, ARP вообще нет, но мне просто максимально хотелось бы избежать экспериментов с моей сетью со стороны юных дарований возомнивших себя Кевинами Митниками ...
xcme писал(а):
А как предотвратить атаку man-in-the-middle при помощи правил? То есть когда хост С отправляет хостам А и В арп-пакеты с айпи адресами В и А соответственно и своим маком?
может быть как нить так (порт 1, адрес 10.0.0.1):
Код:
# разрешаем ARP только на порту 1 и только с адреса 10.0.0.1
# т.е. никакие другие адреса на этом порту воспользоваться ARP не смогут
create access_profile packet_content_mask offset_0-15 0x0 0x0 0x0 0xffff0000 offset_16-31 0xffff0000 0x0 0x0 0xffffffff profile_id 1
config access_profile profile_id 1 add access_id 1 packet_content offset 12 0x08060000 offset 16 0x08000000 offset 28 0xa000001 port 1 permit
# запрещаем бродкасты
# дабы предотвратить посылку ARP и/или IP пакетов не с адреса 10.0.0.1
create access_profile ethernet destination_mac ff-ff-ff-ff-ff-ff profile_id 2
config access_profile profile_id 2 add access_id auto_assign ethernet destination_mac ff-ff-ff-ff-ff-ff port 1 deny
# разрешаем IP адрес 10.0.0.1 только на порту 1
# в принципе тут можно использовать РСМ, дабы глубже в пакет копнуть
create access_profile ip source_ip_mask 255.255.255.255 profile_id 3
config access_profile profile_id 3 add access_id 1 ip source_ip 10.0.0.1 port 1 permit
# запрещаем все остальное
# ибо нех! :)
create access_profile ethernet source_mac 00-00-00-00-00-00 profile_id 25
config access_profile profile_id 25 add access_id auto_assign ethernet source_mac 00-00-00-00-00-00 port 1 deny