iptables -t filter -A INPUT -p tcp -s ip/net -d ip/net -j ACCEPT
nat OUTPUT udp DROP
mangle FORWARD icmp REJECT
PREROUTING
POSTROUTING
-I
-D
-F
-L
-s 源IP地址 -s 192.168.1.1 -s 192.168.1.0/24
-d 目的IP地址 -d 192.168.3.1 -d 192.168.3.0/24
-p 傳輸協議
--sport 源端口 -p tcp --sport 22:80
--dport 目的端口 -p tcp --dport 21
-i 網絡接口名稱 匹配從哪個網絡接口進來的數據包
-o 網絡接口名稱 匹配從哪個網絡接口出去的數據包
--tcp-flages tcp標記的名稱
tcp標記的名稱
syn 新建立的連接的數據包會有syn
ack 應答包會有ACK標記
fin 結束標記位 斷開連接時會有的標記
rst 重置標記位
psh 推標記位 (程序插隊是)
urg 緊急標記位
mac 地址匹配
-m mac 源MAC地址 目的MAC地址
-m mac --mac-source 00:ab:22:99:ff:aa 目的MAC地址
多端口匹配
-p tcp -m multiport --sports 21,22,25,80,1025:2000 源端口列表
--dports 目的端口列表
數據包的狀態
NEW 建立的連接
ESTABLISHED 以建立的連接
RELATED 與以建立的連接相關的連接
INVALID 無效的連接
-m state --state NEW,ESTABLISHED
NEW
三次握手的第一次握手
echo-request
udp通信時,一方主動跟另一方通信的所有包都是NEW
nmap -sA ip
時,所發的帶有ACK標記的探測TCP端口的包,也是NEW狀態。也就說明了。TCP的NEW狀態除了有正常的合法的SYN,TCP,NEW以外,還有其它的也是NEW狀態,但其它的並不合法。
ESTABLISHED
TCP正常的通信過程中除第一次握手外的所有通信包
echo-reply
udp通信時,一方被動跟另一方通信的所有包都是ESTABLISHED
訪問某一節點的TCP的端口,而對方並沒有開此端口時,雙方會返回一個帶有RST標記位的TCP的迴應。而這種迴應是ESTABLISHED狀態
RELATED
ftp的數據傳輸的TCP連接的第一次握手
icmp的不可達消息
當訪問某一節點的UDP端口(12345),而對方並沒有開此端口時,對方會返回一個ICMP的不達消息
(ICMP 192.168.1.41 udp port 12345 unreachable)
NVALID
nmap -sF IP 總之INVALID表示的是非法的包,往往不能放行。
IP地址範匹配
-m iprange --src-iprange 192.168.1.10-192.168.1.20 -j DROP
--dst-oprange