我正在嘗試使用python-iptables編寫腳本來設置特定規則。我想出瞭如何設置規則來允許所有人都拒絕,但我需要弄清楚如何編寫規則來建立連接。如何使用python-iptables編寫特定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()
好的人,這是我現在正在工作。第三條規則是有問題的孩子,但現在一切正常。我計劃添加多個可選規則以允許用戶希望的http/s,ssh等。感謝你們的幫助。 – h33th3n
有沒有人有一個線索,我可能會將上述變成一個寫規則的類?我只是將上面的內容變成一個對象,其中的每個功能都在其中? – h33th3n