Как написать конкретные правила iptables, используя python-iptables

Я пытаюсь использовать python-iptables, чтобы написать скрипт для установки определенных правил. Я выяснил, как установить правила, разрешающие все, и запретить все, но мне нужно выяснить, как написать правило, разрешающее установленные соединения.

Например, мне нужно написать следующие правила, используя python-iptables:

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

Если кто-то знает из первых рук или знает хороший ресурс для написания вышеупомянутых или подобных правил, я был бы очень признателен. Заранее спасибо!

Вот'с готовым продуктом. Я планирую добавить больше опций правил, чтобы позволить пользователям разрешать http / s и т. Д. Соединения, если они этого желают.

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()

Ответы на вопрос(3)

Ваш ответ на вопрос