2016-06-19 94 views
0

我試圖用bash腳本自動創建和刪除規則。IPTables刪除IP和端口規則

目前,我有這樣一個規則:

iptables -t nat -I PREROUTING -p udp -d {IPDESTINATION} --dport {PORTDESTINATION} -m u32 --u32 '0>>22&[email protected]=0xFFFFFFFF && 0>>22&[email protected]=0x54536F75 && 0>>22&[email protected]=0x72636520 && 0>>22&[email protected]=0x456E6769 && 0>>22&[email protected]=0x6E652051 && 0>>22&[email protected]=0x75657279' -j REDIRECT --to-port {REDIRECTPORT} 

我需要能夠通過指定IP目的地和端口目標刪除該規則。我已經嘗試類似如下:

iptables -D PREROUTING -s {IPDESTINATION} -t nat 

即使沒有提供的端口目的地,我無法刪除該規則,因爲它與錯誤

iptables: Bad rule (does a matching rule exist in that chain?). 

迴應這是可能的NAT規則? {IPDESTINATION}等都填寫有效的細節。

+0

複製的http://stackoverflow.com/q/10197405/103167?但這是一個系統管理問題,在StackOverflow上脫離主題。 –

+0

不完全是這樣,可以通過行號刪除規則,例如(iptables -t nat -D PREROUTING 1),但這不可能與我在Bash中做的事情相同,它需要通過DSTIP和DSTPORT去除 – user1372896

+0

Did你讀到的不僅僅是這個問題上最高票數的答案嗎?例如,接受的答案顯示如何在不使用行號的情況下執行此操作。 –

回答

0

如果你不能做刪除此規則: 的iptables -t NAT -D PREROUTING 1

一種解決方法是創建誰包含了所有的規則的文件:

1)創建一個bash文件中像「rulesFW.sh」

#!/bin/bash 
iptables -F -t nat 

2)在你的腳本,每次添加一個規則到iptables的時候,追加用命令bash的文件。

3)如果您希望將文件

4刪除規則,刪除誰符合您的規則(目的地IP等參數線......))重新啓動腳本