linux下iptables命令選項、條件匹配及動作目錄
2015/07/07 20:56
瀏覽1,314
迴響0
推薦0
引用0
iptables命令選項
-A,--append 在所選擇的鏈的最後添加一條規則
-D,--delete 從所選鏈中刪除規則
-R,--replace 替換規則
-I,--insert 向所選鏈中插入新規則
-L,--list 顯示所選鏈的所有規則,如果沒有指定鏈,則顯示表中的所有鏈
-F,--flush 清空所選的鏈,如果沒有指定鏈,則清空指定表中的所有鏈
-Z,--zero 把指定鏈的所有計數器歸零
-N,--new-chain 建立自定義的鏈
-X,--delete-chain 刪除指定的用戶自定義鏈,這個鏈必須沒有被引用,如果被引用,在刪除之前必須刪除或者替換與之有關的規則
-P,policy 為鏈設置默認策略
-E,--rename-chain 對自定義的鏈進行重命名
-v,--verbose 顯示詳細信息
-x,--exact 使--list輸出中的計數器顯示準確的數值,而不用K、M、G等估值
-n,--numeric 使輸出中的IP地址和端口以數值的形式顯示
--line-numbers 顯示出每條規則在相應鏈中的序號
-c,--set-counters 在創建或更改規則時設置計數器
--modprobe 讓iptables推測並裝載要使用的模塊
iptables條件匹配
-p,--protocol 匹配指定的協議
-s,--src,--source 匹配數據包中的源IP地址
-d,--dst,--dstination 匹配數據包中的目的IP地址
-i,--in-interface 以數據包進入本地所使用的網絡接口進行匹配
-o,--out-interface 以數據包離開本地所使用的網絡接口進行匹配
-f,--fragment 匹配一個被分片的包的第二片或及以後的部分
--sport,--source-port 匹配基於TCP協議數據包的源端口
--dport,--destination-port 匹配基於TCP協議數據包的目的端口
--tcp-flags 匹配指定的TCP標記
--syn 匹配那些SYN標記被設置而ACK和RST標記沒有設置的數據包
--tcp-option 匹配TCP協議數據包的頭部信息
--icmp-type 根據ICMP類型匹配數據包
--linit 為linit match設置最大平均匹配速率,也就是單位時間內linit match可以匹配幾個包,這個匹配操作必須由-m limit明確指定才能使用
--mac-source 基於數據包的MAC源地址進行匹配。這個匹配操作必須由-m mac明確指定才能使用
--mark 以數據包被設置的mark值來匹配。這個匹配操作必須由-m mark明確指定才能使用
--uid-owner 按生成數據包的用戶的ID(UID)來匹配外出的包。這個匹配操作必須由-m owner明確指定才能使用
--gid-owner 按生成數據包的用戶所在組的ID(GID)來匹配外出的包。這個匹配操作必須由-m owner明確指定才能使用
--pid-owner 按生成數據包的進程的ID(UID)來匹配外出的包。這個匹配操作必須由-m owner明確指定才能使用
--sid-owner 按生成數據包的會話的ID(SID)來匹配外出的包。這個匹配操作必須由-m owner明確指定才能使用
--state 指定要匹配數據包的狀態,一共有4種狀態可以使用:INVALID、ESTABLISHED、NEW和RELATED。這個匹配操作必須由-m state明確指定才能使用
--tos 根據TOS字段匹配數據包,這個匹配操作必須由-m tos明確指定才能使用
--ttl 根據TTL的值來匹配數據包,這個匹配操作必須由-m ttl明確指定才能使用
iptables動作/目標
ACCEPT 允許符合條件的數據包通過
DROP 拒絕符合條件的數據包通過
LOG 用來記錄與數據包相關的信息
MARK 設置mark值,這個值是一個無符號的整數
MASQUERADE 和SNAT的作用相同,區別在於它不需要指定--to-source
SNAT 源網絡地址轉換
DNAT 目的網絡地址轉換
REDIRECT 轉發數據包一另一個端口
REJECT REJECT和DROP都會將數據包丟棄,區別在於REJECT除了丟棄數據包外,還向發送者返回錯誤信息
RETURN 使數據包返回上一層
TOS 用來設置IP頭部中的Type Of Service字段
TTL 用於修改IP頭部中Time To Live字段的值
ULOG ULOG可以在用戶空間記錄被匹配的包的信息,這些信息和整個包都會通過netlink socket被多播
QUEUE 為用戶空間的程序或應用軟件管理包隊列
MIRROR 顛倒IP頭部中的源目地址,然後再轉發包
iptables -A 添加記錄
#iptables -A INPUT -p icmp -j DROP 添加一條輸入的ICMP的拒絕記錄
iptables -D 刪除記錄
#iptables -D OUTPUT -p icmp -j DROP 刪除一條輸出的ICMP的拒絕記錄
iptables -F 清除記錄
#iptables -F 清除所有記錄
iptables -L 列出記錄
#iptables -L 列出所有記錄
iptables -I 插入記錄
#iptables -I INPUT 3 --dport 80 -j DROP 在位置3的後面插入一條輸入的80端口的拒絕記錄
#iptables -P INPUT -j DROP 將列表中所有INPUT的鏈默認策略定義為拒絕
#iptables -t net -P OUTPUT -j ACCEPT 將net表中所有OUTPUT的鏈默認策略定義為拒絕
#iptables -L FORWARD 查看表中FORWARD鏈的規則記錄
#iptables -A INPUT -p tcp --dport 80 -j ACCEPT 向列表中添加一條允許訪問TCP協議的80端口記錄
#iptables -I INPUT -s 192.168.1.0/24 -j DROP 向列表中插入一條拒絕源IP為192.168.1.0網段的數據包通過
#iptables -D INPUT 2 刪除列表中輸入的第二條記錄
#iptables -F OUTPUT 清除列表中所有OUTPUT記錄
#iptables -A FORWARD -d hi.baidu.com./ylinuxs -j DROP 禁止客戶端訪問域名hi.baidu.com./ylinuxs的網站
#iptables -A FORWARD -d 202.16.28.6 -j DROP 禁止客戶端訪問IP地址為202.16.28.6的網站
#iptables -I FORWARD -p tcp --dport 8000 -j DROP
#iptables -I FORWARD -p udp --dport 8000 -j DROP
#iptables -I FORWARD -d tcpconn.tencent.com -j DROP 上面三行的意思為禁止用戶訪問qq(有可能不太全,可以在qq安裝目錄下有qq號碼的目錄下找到config.db文件,打開裏面有全部的qq服務器地址)
#iptables -A INPUT -p tcp --dport 80 -j LOG \ --log-level notice 指定記錄日誌,並指定等級為notice
#iptables -A INPUT -p tcp --dport 80 -j LOG \ --log-level notice --log-prefix "iptables:" 在已經記錄日誌信息之前加上指定的前綴
#iptables -A INPUT -p tcp -j LOG --log-tcp-sequence 把數據包的TCP序列號和其它日誌信息一起記錄下來
#iptables -A FORWARD -p tcp -j LOG --log-tcp-options 記錄TCP包頭中的字段大小不變的選項
#iptables -A FORWARD -p tcp -j LOG --log-ip-options 記錄IP包頭中的字段大小不變的選項
#iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.1.1 將數據包的源地址改為公網地址
DNAT(網絡地址轉達換):
#iptables -t nat -A PREROUTING -i 網絡接品 -p 協議 --dport 端口 -j SNAT --to-destination IP地址
如:
#iptables -t nat -A PREROUTING -d 202.19.26.63 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1 使用DNAT將發送到202.19.26.63,並且端口為80的數據包轉發至192.168.1.1
#iptables -t nat -A PREROUTING -d 202.19.26.63 -p tcp --dport 80 -j DNAT --to 192.168.1.1-192.168.1.2 將公司內部的2臺服務器,全部響應為外部地址202.19.26.63
MASQUERADE(偽裝接口之間的數據):
#iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.1.0/24 -j MASQUERADE 將192.168.1.0/24的內部地址,轉換為ppp0的公網地址,並把數據偽裝
#iptables -A INPUT -i lo -j ACCEPT 添加一條允許使用回環地址的記錄
#iptables -A FORWARD -p tcp --dport 80 -j ACCEPT 添加一條記錄是允許80端口轉發
#iptables -A FORWARD -p udp --dport 53 -j ACCEPT
#iptables -A FORWARD -p tcp --dport 53 -j ACCEPT 上面兩條是添加記錄是允許53端口轉發
#iptables -A INPUT -p tcp --dport 22 -j ACCEPT 允許客戶端訪問服務器的ssh
-A,--append 在所選擇的鏈的最後添加一條規則
-D,--delete 從所選鏈中刪除規則
-R,--replace 替換規則
-I,--insert 向所選鏈中插入新規則
-L,--list 顯示所選鏈的所有規則,如果沒有指定鏈,則顯示表中的所有鏈
-F,--flush 清空所選的鏈,如果沒有指定鏈,則清空指定表中的所有鏈
-Z,--zero 把指定鏈的所有計數器歸零
-N,--new-chain 建立自定義的鏈
-X,--delete-chain 刪除指定的用戶自定義鏈,這個鏈必須沒有被引用,如果被引用,在刪除之前必須刪除或者替換與之有關的規則
-P,policy 為鏈設置默認策略
-E,--rename-chain 對自定義的鏈進行重命名
-v,--verbose 顯示詳細信息
-x,--exact 使--list輸出中的計數器顯示準確的數值,而不用K、M、G等估值
-n,--numeric 使輸出中的IP地址和端口以數值的形式顯示
--line-numbers 顯示出每條規則在相應鏈中的序號
-c,--set-counters 在創建或更改規則時設置計數器
--modprobe 讓iptables推測並裝載要使用的模塊
iptables條件匹配
-p,--protocol 匹配指定的協議
-s,--src,--source 匹配數據包中的源IP地址
-d,--dst,--dstination 匹配數據包中的目的IP地址
-i,--in-interface 以數據包進入本地所使用的網絡接口進行匹配
-o,--out-interface 以數據包離開本地所使用的網絡接口進行匹配
-f,--fragment 匹配一個被分片的包的第二片或及以後的部分
--sport,--source-port 匹配基於TCP協議數據包的源端口
--dport,--destination-port 匹配基於TCP協議數據包的目的端口
--tcp-flags 匹配指定的TCP標記
--syn 匹配那些SYN標記被設置而ACK和RST標記沒有設置的數據包
--tcp-option 匹配TCP協議數據包的頭部信息
--icmp-type 根據ICMP類型匹配數據包
--linit 為linit match設置最大平均匹配速率,也就是單位時間內linit match可以匹配幾個包,這個匹配操作必須由-m limit明確指定才能使用
--mac-source 基於數據包的MAC源地址進行匹配。這個匹配操作必須由-m mac明確指定才能使用
--mark 以數據包被設置的mark值來匹配。這個匹配操作必須由-m mark明確指定才能使用
--uid-owner 按生成數據包的用戶的ID(UID)來匹配外出的包。這個匹配操作必須由-m owner明確指定才能使用
--gid-owner 按生成數據包的用戶所在組的ID(GID)來匹配外出的包。這個匹配操作必須由-m owner明確指定才能使用
--pid-owner 按生成數據包的進程的ID(UID)來匹配外出的包。這個匹配操作必須由-m owner明確指定才能使用
--sid-owner 按生成數據包的會話的ID(SID)來匹配外出的包。這個匹配操作必須由-m owner明確指定才能使用
--state 指定要匹配數據包的狀態,一共有4種狀態可以使用:INVALID、ESTABLISHED、NEW和RELATED。這個匹配操作必須由-m state明確指定才能使用
--tos 根據TOS字段匹配數據包,這個匹配操作必須由-m tos明確指定才能使用
--ttl 根據TTL的值來匹配數據包,這個匹配操作必須由-m ttl明確指定才能使用
iptables動作/目標
ACCEPT 允許符合條件的數據包通過
DROP 拒絕符合條件的數據包通過
LOG 用來記錄與數據包相關的信息
MARK 設置mark值,這個值是一個無符號的整數
MASQUERADE 和SNAT的作用相同,區別在於它不需要指定--to-source
SNAT 源網絡地址轉換
DNAT 目的網絡地址轉換
REDIRECT 轉發數據包一另一個端口
REJECT REJECT和DROP都會將數據包丟棄,區別在於REJECT除了丟棄數據包外,還向發送者返回錯誤信息
RETURN 使數據包返回上一層
TOS 用來設置IP頭部中的Type Of Service字段
TTL 用於修改IP頭部中Time To Live字段的值
ULOG ULOG可以在用戶空間記錄被匹配的包的信息,這些信息和整個包都會通過netlink socket被多播
QUEUE 為用戶空間的程序或應用軟件管理包隊列
MIRROR 顛倒IP頭部中的源目地址,然後再轉發包
iptables -A 添加記錄
#iptables -A INPUT -p icmp -j DROP 添加一條輸入的ICMP的拒絕記錄
iptables -D 刪除記錄
#iptables -D OUTPUT -p icmp -j DROP 刪除一條輸出的ICMP的拒絕記錄
iptables -F 清除記錄
#iptables -F 清除所有記錄
iptables -L 列出記錄
#iptables -L 列出所有記錄
iptables -I 插入記錄
#iptables -I INPUT 3 --dport 80 -j DROP 在位置3的後面插入一條輸入的80端口的拒絕記錄
#iptables -P INPUT -j DROP 將列表中所有INPUT的鏈默認策略定義為拒絕
#iptables -t net -P OUTPUT -j ACCEPT 將net表中所有OUTPUT的鏈默認策略定義為拒絕
#iptables -L FORWARD 查看表中FORWARD鏈的規則記錄
#iptables -A INPUT -p tcp --dport 80 -j ACCEPT 向列表中添加一條允許訪問TCP協議的80端口記錄
#iptables -I INPUT -s 192.168.1.0/24 -j DROP 向列表中插入一條拒絕源IP為192.168.1.0網段的數據包通過
#iptables -D INPUT 2 刪除列表中輸入的第二條記錄
#iptables -F OUTPUT 清除列表中所有OUTPUT記錄
#iptables -A FORWARD -d hi.baidu.com./ylinuxs -j DROP 禁止客戶端訪問域名hi.baidu.com./ylinuxs的網站
#iptables -A FORWARD -d 202.16.28.6 -j DROP 禁止客戶端訪問IP地址為202.16.28.6的網站
#iptables -I FORWARD -p tcp --dport 8000 -j DROP
#iptables -I FORWARD -p udp --dport 8000 -j DROP
#iptables -I FORWARD -d tcpconn.tencent.com -j DROP 上面三行的意思為禁止用戶訪問qq(有可能不太全,可以在qq安裝目錄下有qq號碼的目錄下找到config.db文件,打開裏面有全部的qq服務器地址)
#iptables -A INPUT -p tcp --dport 80 -j LOG \ --log-level notice 指定記錄日誌,並指定等級為notice
#iptables -A INPUT -p tcp --dport 80 -j LOG \ --log-level notice --log-prefix "iptables:" 在已經記錄日誌信息之前加上指定的前綴
#iptables -A INPUT -p tcp -j LOG --log-tcp-sequence 把數據包的TCP序列號和其它日誌信息一起記錄下來
#iptables -A FORWARD -p tcp -j LOG --log-tcp-options 記錄TCP包頭中的字段大小不變的選項
#iptables -A FORWARD -p tcp -j LOG --log-ip-options 記錄IP包頭中的字段大小不變的選項
#iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.1.1 將數據包的源地址改為公網地址
DNAT(網絡地址轉達換):
#iptables -t nat -A PREROUTING -i 網絡接品 -p 協議 --dport 端口 -j SNAT --to-destination IP地址
如:
#iptables -t nat -A PREROUTING -d 202.19.26.63 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1 使用DNAT將發送到202.19.26.63,並且端口為80的數據包轉發至192.168.1.1
#iptables -t nat -A PREROUTING -d 202.19.26.63 -p tcp --dport 80 -j DNAT --to 192.168.1.1-192.168.1.2 將公司內部的2臺服務器,全部響應為外部地址202.19.26.63
MASQUERADE(偽裝接口之間的數據):
#iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.1.0/24 -j MASQUERADE 將192.168.1.0/24的內部地址,轉換為ppp0的公網地址,並把數據偽裝
#iptables -A INPUT -i lo -j ACCEPT 添加一條允許使用回環地址的記錄
#iptables -A FORWARD -p tcp --dport 80 -j ACCEPT 添加一條記錄是允許80端口轉發
#iptables -A FORWARD -p udp --dport 53 -j ACCEPT
#iptables -A FORWARD -p tcp --dport 53 -j ACCEPT 上面兩條是添加記錄是允許53端口轉發
#iptables -A INPUT -p tcp --dport 22 -j ACCEPT 允許客戶端訪問服務器的ssh
你可能會有興趣的文章:
限會員,要發表迴響,請先登入


