Como escrever regras específicas do iptables usando python-iptables

Estou tentando usar python-iptables para escrever um script para definir certas regras. Eu descobri como definir regras para permitir tudo e negar tudo, mas preciso descobrir como escrever uma regra para permitir conexões estabelecidas.

Por exemplo, preciso escrever as seguintes regras usando python-iptables:

iptables -A INPUT  -m state --state     RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

Se alguém tem conhecimento em primeira mão ou conhece um bom recurso para escrever as regras acima ou similares, eu agradeceria muito. Desde já, obrigado!

Aqui está o produto acabado. Estou planejando adicionar mais opções de regras para permitir que os usuários permitam conexões http / s etc., se desejarem. Obrigado por toda a ajuda.

import iptc

def dropAll():
    chain = iptc.Chain(iptc.Table(iptc.Table.FILTER), "INPUT")
    rule = iptc.Rule()
    rule.in_interface = "eth+"
    target = iptc.Target(rule, "DROP")
    rule.target = target
    chain.insert_rule(rule)

def allowLoopback():
    chain = iptc.Chain(iptc.Table(iptc.Table.FILTER), "INPUT")
    rule = iptc.Rule()
    rule.in_interface = "lo"
    target = iptc.Target(rule, "ACCEPT")
    rule.target = target
    chain.insert_rule(rule)

def allowEstablished():
    chain = iptc.Chain(iptc.Table(iptc.Table.FILTER), 'INPUT')
    rule = iptc.Rule()
    match = rule.create_match('state')
    match.state = "RELATED,ESTABLISHED"
    rule.target = iptc.Target(rule, 'ACCEPT')
    chain.insert_rule(rule)

dropAll()
allowLoopback()
allowEstablished()

questionAnswers(3)

yourAnswerToTheQuestion