我试图使用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()
我知道这个老的,但我终于有一个工作脚本,希望有人会发现它有用。
我没有尝试过使用python iptables,但看起来您需要这样的东西:
等等。
试试这个
相关问题 更多 >
编程相关推荐