L2fw
Материал из OpenWiki
Версия от 17:57, 14 октября 2008; Mc (обсуждение | вклад)
Содержание
l2fw - пакетный файрвол для работы на уровне L2
l2fw - это то, чем я планирую заняться в ближайшее время.
l2fw по своей структуре будет напоминать FreeBSD ipfw, но первоначально планируется реализация фильтрации для L2. Пакетный фильтр будет подключать хуки к pfil(9) с типом AF_LINK. Для этого планируется поменять логику, которая используется сейчас для фильтрации L2.
SYNOPSIS
l2fw chain N create [description]
l2fw chain {list | show}
l2fw [chain N] add rule
l2fw [chain N] [set set_number] {list | show} [rule_number[ :seq_number] | first-last ...]
l2fw [chain N] [set set_number] flush
l2fw [chain N] {delete | zero | enable | disable | log | nolog} [rule_number[ :seq_number] | first-last ...]
l2fw [chain N] set move {rule [rule_number[ :seq_number]] | set_number} to set_number
l2fw set [disable N ...] [enable N ...]
RULE FORMAT
[rule_number[ :seq_number]] [set set_number] [prob match_probability] action [modifier] body
RULE ACTIONS
- allow | accept | pass | permit
- count
- deny | drop
- skipto
- ngtee | netgraph
- call
RULE MODIFIER
- tag | untag
- altq ?
RULE BODY
[from src to dst] [options]
RULE OPTIONS (MATCH PATTERNS)
- // comment
- tagged
- bridged
- in | out
- len
- mac-type
- recv | xmit | via {ifX | if* | any}
LOOKUP TABLES
- MAC-lists:
table N add mac-addr[/{masklen | mask}] [value]
- MAC-IPv4 pairs:
table N add mac-addr[/{masklen | mask}] {ip4 | ip | ipv4} IPv4-addr[/{masklen | mask}] [value]
- MAC-IPv6 pairs:
table N add mac-addr[/{masklen | mask}] {ip6 | ipv6} IPv6-addr[/{masklen | mask}] [value]