iptables tcp
1.iptables 表spa
(1)介紹經常使用表blog
filtert(過濾器)ip
鏈路由
↓get
INPUT chain:控制進入主機的數據包it
OUTPUT chain:控制向外發出的數據包table
FORWARD chain :轉發數據包class
NAT(地址轉換)配置
鏈
↓
PREROUTING鏈 :數據包到達防火牆時改變包的目的地址。
OUTPUT鏈:改變本地產生數據包的目標地址。
POSTROUTING:在數據包離開防火牆時改變數據包的源地址
Mangle(修改數據包,改變包頭中內容)
TOS :設置改變數據包的服務類型,不要使用TOS設置發往Internet的包除非打算依賴TOS來路由,不能在表中配置任何過濾。SNAT、DNAT
TTL:改變數據包的生存時間,能夠讓數據包只有一個特殊的TTL,欺騙ISP,有些ISP並不但願多臺計算機共享一個鏈接訪問Internet,ISP經過檢查一臺計算機所發出的數據包是否含有不一樣的TTL來判斷。
Mask:給數據包設置特殊的標記,經過標記配置帶寬限制和基於請求分類。
2.iptables 參數:
-L 列出規則
-F 清空鏈
-X是刪除使用者自訂 table 項目
-A 從最後一列插入一條規則
INPUT
OUTPU
FORWARD
-I從第一行插入一條規則,後接數字能夠調整規則插入的行數
INPUT
OUTPU
FORWARD
-n不進行ip與主機名的反查詢
-d目標ip後能夠接端口號,格式:0.0.0.0:80
-s源ip後可接端口號,格式:0.0.0.0:80
-j 動做
ACCEPT
REJECT
DROP
-p指定協議tcp,udp,icmp
-i 指定網卡
--sport指定源端口
--dport指定目標端口
3.iptables流程圖
4.例子
( 1)阻擋全部流量
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
# 這兩條的意思是在INPUT表和FORWARD表中拒絕全部其餘不符合上述任何一條規則的數據包。而且發送一條host prohibited的消息給被拒絕的主機。
(2)容許全部ip均可以80
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I OUTPUT -p tcp --dport 80 -j ACCEPT
#這條規則必須放在阻擋全部流量規則的前面!
(3)容許全部ip均可以22
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I OUTPUT -p tcp --dport 22 -j ACCEPT#這條規則必須放在阻擋全部流量規則的前面!