Простенький инструмент для более удобной
генерация правил для ipfw(8). Штука простая, думаю
разберетесь, глядя на нее. Пример использования:
#!/usr/bin/perl -w
require 'ipfw.pl';
my $IMAP_PORTS = 'pop3,imap4,pop3s,imaps';
my $JAIL_IMAP = '192.168.0.1';
my $JAIL_NET = '192.168.0.0/24';
my $NATD_IF = 'ed0';
my $TO_NAT_PORTS = "$IMAP_PORTS";
add("skipto %%JAIL%% all from $JAIL_NET to any out");
setup_loopback();
add("divert natd tcp from any to any $TO_NAT_PORTS in recv $NATD_IF");
add("pass all from any to any");
add("count all from any to any", '%%JAIL%%'); # XXX
add("divert natd tcp from $JAIL_IMAP $IMAP_PORTS to any out xmit $NATD_IF established");
add("deny log all from $JAIL_NET to any");
add("pass all from any to any");
print_ipfw();
Запустите это и обратите внимание на замену %%JAIL%% на
номер правила, помеченного XXX.