В настоящее время реализован manad для шлюзов под управлением FreeBSD. Скачать его можно здесь. Необходимо установить его на вашем шлюзе (предварительно потребуется установить Perl) и добавьте в автозапуск.
На вкладке добавим два типа правила для данного типа шлюза. Допустим, мы предоставляем доступ двух типов: 10-мегабитный и 128-килобитный. Добавляем в типах правил две записи.
speed=10000000
и
speed=128000

На вкладке в типе шлюза пишем :
[DEFAULT]
<LOOP>
pipe {P0} config bw ${speed}
pipe {P1} config bw ${speed}
add {N0} pipe {P0} ip from any to {A} out
add {N0} pipe {P1} ip from {A} to any in
</LOOP>
[/DEFAULT]
На вкладке в типе шлюза добавляем оба новых правила:

Как видно из примера команды Manad включает в себя подстановки адреса вида {A}, а также другие виды подстановок вида {XN}, где X - латинская буква, а N - цифра. Подстановка адреса осуществляется биллингом перед отсылкой команд, либо при сохранении правила для договора, в зависимости от используемого вида правила (пользовательское/типизированное). Подстановки вида {XN} отправляются на manad вместе с командами для определения номеров пайпов и правил.
Подстановки вида {NET} и {NET_MASK} заменяются на выбранные сети для тегов <LOOP_NET> и <LOOP_NET_MASK>. О том, как это происходит читайте обработку правил Manad.
После создания типа шлюза Manad, типов правил и команд для него необходимо определить конкретные адреса шлюзов на вкладке .

На вкладке шлюзов типа Manad ничего указывать не нужно.
Для добавления пользователя на шлюз откройте договор на вкладке модуля IPN - .

Затем нажмите кнопку и произведите выбор шлюза. При этом отобразятся только те шлюзы, на которые клиент ещё не был заведён.

Если выбранный шлюз был типа Manad, то откроется редактор правил договора Manad.

Слева в выпадающем списке можно выбрать тип правила, в дереве справа - адреса и сети, на которые оно применяется. В области отображается текст команд, которые будут отправлены на шлюз. При этом, если выбран тип "Пользовательский", то область редактируемая и правило сохраняется в точно таком же виде в БД. Т.е. в этом случае вы можете установить клиенту любые команды, не завязываясь на типе.
Если же выбран тип правила и список адресов, то в базе сохраняется только это сочетание, а текст команд вычисляется динамически в момент отправки на шлюз. При этом выглядит оно так, как отображено в области . Использование типов позволяет более просто менять команды для многих пользователей, просто поправив шаблон в типе.
Для создания пользовательского правила на основании шаблонного выбирается тип правила, адреса, после чего тип правила переключается в "Пользовательский". После чего текст правила может быть изменён.

После настройки биллинга необходимо произвести настройку самого ipfw и установку manad на шлюз.
Доступ клиентам разрешается путём добавления динамических правил файрвола с номером менее 20000.
Предварительно в файле добавьте правило, запрещающее всем пакетам проход через шлюз. Кроме того, в нашем случае нужно добавить адрес NAT-сервера для того, чтобы мы сами могли выходить в сеть.
Другим решением является изменение структуры сети с установкой шлюза между клиентами и магистралью провайдера.
Ниже приведена конфигурация, подходящая для нашей сети:
fw="/sbin/ipfw -q"
# flush out the list before we begin.
${fw} -f flush
# localhost spoofprotect
${fw} add 10 pass all from any to any via lo0
${fw} add 10 deny all from any to 127.0.0.0/8
${fw} add 10 deny all from 127.0.0.0/8 to any
# deny netbios stuff
${fw} add 20 deny tcp from any to any 135-139,445,593
${fw} add 20 deny udp from any to any 135-139,445
#ssh,telnet, ftp только с адреса NAT сервера
${fw} add 30 pass tcp from 14.3.3.8 to me 20-23
${fw} add 30 pass tcp from me 20-23 to 14.3.3.8
# manad - доступ к манаду сервера биллинга
${fw} add 40 pass tcp from 14.3.3.8 to me 4567
${fw} add 40 pass tcp from me 4567 to 14.3.3.8
###############################################
# Запрет на всякий трафик из нашей сети 14.3.3.0
###############################################
${fw} add 20000 deny all from any to 14.3.3.8/24
${fw} add 20000 deny all from 14.3.3.8/24 to any
## Здесь manad будет добавлять свои правила, открывающие доступ клиентам
${fw} add 30000 pass all from any to any