iptables之iptables命令详解
#iptables [OPTION] COMMAND CHAIN 匹配標準 -j TARGET
??? [OPTION]
??????? -t TABLENAME? 不指定默認為filter
??????? -j 指定TARGET
??? COMMAND
??????? 管理規則
??????????? -A 在鏈的尾部添加一條規則
??????????? -I? CHAIN [NUM] 在CHINA鏈上插入第NUM條規則,不指定NUM表示插入為第一條
??????????? -D CHAIN [NUM] 刪除CHAIN鏈上的第NUM條規則
??????????? -R CHAIN [NUM] 替換CHAIN鏈上的第NUM條規則
??????? 管理鏈
??????????? -F [CHAIN] flush 清空指定規則鏈,若不指定鏈,則刪除對應表中的所有鏈
??????????? -P CHAIN TAREGT 設置指定鏈的默認策略
??????????? -N 自定義一條空鏈
??????????? -X 刪除自定義空鏈
??????????? -Z 清空指定鏈中所有規則的計數器
??????????? -E OLDCHAINNAME NEWCHAINNAME 重命名自定義鏈名
??????? 查看類
??????????? -L list 顯示指定表中的規則
??????????? -n 以數字格式顯示主機地址和端口號,否則默認iptables將反解主機名和端口
??????????? -v 顯示詳細信息
??????????? -x 顯示計數器精確值,不做單位換換和圓整
??????????? --line-numbers 顯示規則號碼
?????????? ?
??? CHAIN 鏈的名稱
??? 匹配標準
??????? 注意:絕大部分匹配條件都可以取反,即使用!
??????? 通用匹配
??????????? -s,--scr 源地址
??????????? -d,--dst 目的地址
??????????? -p {tcp|udp|icmp} 協議類型
??????????? -i INTERFACE 指定數據報文流入的接口
??????????????? 只能定義在PREROUTING INPUT FORWARD鏈
??????????? -o INTERFACE 指定數據報文流出的接口
??????????????? 只能定義在POSTROUTING OUTPUT FORWARD鏈
??????? 擴展匹配
??????????? 隱含擴展
??????????????? -p PROTOCOL
??????????????????? PROTOCOL
??????????????????????? tcp
??????????????????????????? --sport PORT[-PORT] 源端口,可以使用連續端口
??????????????????????????? --dport PORT[-PORT]? 目標端口,可以使用連續端口
??????????????????????????? --tcp-flags? MASK COMP tcp標志位,指定MASK表中,查找COMP表中為1,其余為0的標記位。常用的標記位:SYN FIN ACK RST? ALL NONE
??????????????????????????? --syn 匹配3次握手中的第一次
??????????????????????? udp
??????????????????????????? --sport
??????????????????????????? --dport
??????????????????????? icmp
??????????????????????????? --icmp-type TYPE
??????????????????????????????? TYPE
??????????????????????????????????? 0 ICMP響應報文
??????????????????????????????????? 8 ICMP請求報文
??????????? 顯示擴展 使用額外的匹配機制
??????????????? -m EXTESTION SPECIAL-OPTION
???????????????? /lib/iptables/libpt_*.so 擴展模塊
??????????????????????? state 狀態擴展,結合ip_conntrack追蹤會話的狀態
???????????????????????????? --state
??????????????????????????????? NEW 發起的連接請求
??????????????????????????????? ESTABLISHED 已建立的連接
??????????????????????????????? INVALID 非法連接
??????????????????????????????? RELATED 相關聯的
??????????????????????? multiport 離散的多端口匹配擴展,最多支持15個端口
??????????????????????????? --source-ports PORT,...PORT1:PORT2,... 源端口
??????????????????????????? --destination-ports PORT,...PORT1:PORT2,... 目的端口
??????????????????????????? --ports PORT,...PORT1:PORT2,... 端口
??????????????????????? iprange 指定IPv4地址段
??????????????????????????? --src-range IP1-IP2
??????????????????????????? --dst-range? IP1-IP2
??????????????????????? connlimit 連接數限制
?????????????????????????? --connlimit-above? NUM 指定每個客戶端已存在的tcp連接個數超出NUM個
??????????????????????? limit? 令牌桶過濾器機制的流量整合,不控制最大上限,只控制單位時間內速率以及單位時間內峰值
??????????????????????????? --limit NUM/RATE 指定單位時間內的請求速率
??????????????????????????????? RATE
??????????????????????????????????? second
??????????????????????????????????? minute
??????????????????????????????????? hour????? ?
??????????????????????????? --limit-burst NUM 單位時間內請求峰值,默認值為5
??????????????????????? string 匹配符合某種模式的字符
??????????????????????????? --algo? bm|kmp 指定匹配算法
??????????????????????????? --string PATTERN 指定PATTERN
??????????????????????????? --hex-string PATTERN 把PATTERN變為16進制
??????????????????????? recent 創建IP地址清單用于匹配
??????????????????????????? --set? 添加報文源地址到清單,若源地址已存在則更新
??????????????????????????? --name NAME 創建一個名為NAME的清單,不指定NAME使用DEFAULT作為名稱。
??????????????????????????? --update 更新源地址,但是不會更新”last seen“時間戳
??????????????????????????? --seconds NUM 匹配清單中存在的并且在過去NUM秒中出現的的地址。
??????????????????????????? --hitcount NUM 匹配清單中存在并且接收數據包大于或等于NUM次的地址
??????????????????????? layer7 安裝l7以后才能使用此擴展
??????????????????????????? --l7proto PROTOCOL? 具體協議請參照/etc/l7-protocols下
??????????????????????? time 重新編譯內核后才有
??????????????????????????? --datestrat YYYY-MM-DDThh:mm:ss 不指定默認為1970-01-01
??????????????????????????? --datestop YYYY-MM-DDThh:mm:ss 不指定默認為2038-01-19
??????????????????????????? --timestart hh:mm:ss
??????????????????????????? --timestop hh:mm:ss
??????????????????????????? --montudayes DAY1,[DAY2...]
??????????????????????????????? DAY取值為1-31
??????????????????????????? --weekdays? DAY1,[DAY2...] ?
??????????????????????????????? DAY取值為Mon Tue Wed Thu Fri? Sat Sun 或者1-7
??? TARGET 處理動作
??????? ACCEPT 允許
??????? DROP 丟棄
??????? REJECT 丟棄并返回信息
??????? REDIRECT 端口重定向
??????? RETURN 跳轉回主鏈
??????? CHAINNAME 自定義鏈名成
??????? LOG 記錄日志
??????????? --log_level NUM 日志級別
??????????? --log_prefix “STRING” 日志前綴,最長29字符
??????????? --log_tcp_sequence TCP序列號
??????????? --log_tcp_options TCP報文選項
??????????? --log_ip_options IP報文選項
??????????? --log-uid? 數據包對應進程的用戶id
??????? MARK 設定標記
??????? SNAT 源地址轉換
??????????? --to-source? IP[-IP][:PORT1-PORT2] 指定把源地址轉換為IP
??????? DNAT 目標地址轉換
??????????? --to-destination? IP 指定把目標地址轉換為IP
??????? MASQUERADE 地址偽裝
??????????? 類似與SNAT --to-source,適用于pppoe等源地址隨時變動的情況,會自動指定地址。效率比SNAT低。
轉載于:https://blog.51cto.com/ggvylf/1663823
總結
以上是生活随笔為你收集整理的iptables之iptables命令详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【译】使用 Python 编写虚拟机解释
- 下一篇: IOS8 兼容本地推送