Firehol - konfiguracja, port forward, lxc

Iptables jakie jest - każdy wie. Nie mówię, że jest złe czy coś. Tylko po prostu nie jest wygodne w używaniu, gdy reguł jest trochę więcej niż jeden otwarty port, albo chce się na szybko dodać coś innego niż zwykle. Da się - tylko po co? Do wyboru jest masa skryptów ułatwiających życie, które są tylko nakładkami na iptables - ufw, filtergen, firehol... Czemu wybrałem akurat ten ostatni? Nie wiem.

Co mi się podoba? Można stworzyć w prosty sposób grupę hostów, które mają inne dostępy niż pozostałe. Do tego skrypty są w bashu, więc w razie potrzeby można się też i tym posłużyć (przydatne może być przy forwardowaniu portów).

Kilka przykładów konfiguracji jest na stronie projektu jednak to czego mi brakowało - brak reguł do obsługi internetu w lxc i forwardowanie do nich portów, o tym dokładniej w następnym wpisie. Jak wygląda przykład z życia wzięty?

# Firewall config
version 6

# White list for everything
SELF4="127.0.0.1"
HOME4=""

SELF6="::1"
HOME6=""

WHT4="$SELF4 $HOME4"
WHT6="$SELF6 $HOME6"

LXC="10.0.0.0/24"

ipv4 dnat to 10.0.0.10:80 inface eth0 proto tcp dport 82

interface any internet
        server "http ping" accept
        server "ipv6error icmpv6" accept

        #custom ports
        #server custom test "tcp/8080" default accept

        client all accept

        # All for localhost, server IP and home IP
        group with src4 "$WHT4 $LXC" src6 "$WHT6"
                server all accept
        group end

router lxc2intern inface lxcbr0 outface lxcbr0
        route all accept

router4 lxc2world inface lxcbr0 outface eth0 src "$LXC" dst not "$LXC $SELF4"
        masquerade
        client all accept
        route all accept

dnat oraz router potrzebne będą do konfiguracji lxc. Krótkie wyjaśnienie - dla każdego interfejsu otwarty jest port http oraz dopuszczone jest pingowanie (v4 jak i v6). Dodatkowo dla hostów zdefiniowanych wyżej dopuszczone są wszystkie połączenia. Na samym dole zdefiniowany jest routing lxc->eth0.