您好,登錄后才能下訂單哦!
Linux下IPtables命令圖解
Linux下IPtables命令剖析
1.命令:
-A 順序添加,添加一條新規則
-I 插入,插入一條新規則 -I 后面加一數字表示插入到哪行
-R 修改, 刪除一條新規則 -D 后面加一數字表示刪除哪行
-D 刪除,刪除一條新規則 -D 后面加一數字表示刪除哪行
-N 新建一個鏈
-X 刪除一個自定義鏈,刪除之前要保證次鏈是空的,而且沒有被引用
-L 查看
@1.iptables -L -n 以數字的方式顯示
@2. iptables -L -v顯示詳細信息
@3. iptables -L -x 顯示精確信息
-E 重命名鏈
-F 清空鏈中的所有規則
-Z 清除鏈中使用的規則
-P 設置默認規則
2.匹配條件:
隱含匹配:
-p tcp udp icmp
--sport指定源端口
--dport指定目標端
-s 源地址
-d 目的地址
-i 數據包進入的網卡
-o 數據包出口的網卡
擴展匹配:
-m state --state 匹配狀態的
-m mutiport --source-port 端口匹配 ,指定一組端口
-m limit --limit 3/minute 每三分種一次
-m limit --limit-burst 5 只匹配5個數據包
-m string --string --algo bm|kmp --string"xxxx" 匹配字符串
-mtime--timestart 8:00 --timestop 12:00 表示從哪個時間到哪個時間段
-mtime--days 表示那天
-m mac --mac-source xx:xx:xx:xx:xx:xx 匹配源MAC地址
-m layer7 --l7proto qq 表示匹配騰訊qq的 當然也支持很多協議,這個默認是沒有的,需要我們給內核打補丁并重新編譯內核及iptables才可以使用 -m layer7 這個顯示擴展匹配
3.動作:
-j
DROP 直接丟掉
ACCEPT 允許通過
REJECT 丟掉,但是回復信息
LOG --log-prefix"說明信息,自己隨便定義" ,記錄日志
SNAT 源地址轉換
DNAT 目標地址轉換
REDIRECT 重定向
MASQUERAED 地址偽裝
保存iptables規則
service iptables save
重啟服務
service iptables stop
service iptables start
Linux下IPtables企業案例解析
含義:
:INPUT ACCEPT [0:0]
該規則表示INPUT表默認策略是ACCEP ([ 0:0 ]里記錄的就是通過該規則的數據包和字節總數。)
:FORWARD ACCEPT [0:0]
該規則表示FORWARD表默認策略是ACCEPT
:OUTPUT ACCEPT [0:0]
該規則表示OUTPUT表默認策略是ACCEPT
NEW 用戶發起一個全新的請求
ESTABLISHED 對一個全新的請求進行回應
RELATED 兩個完整連接之間的相互關系,一個完整的連接,需要依賴于另一個完整的連接。
INVALID 無法識別的狀態。
-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
意思是允許進入的數據包只能是剛剛我發出去的數據包的回應
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
意思就允許本地環回接口在INPUT表的所有數據通信,-i 參數是指定接口,接口是lo,lo就是Loopback(本地環回接口)
-A INPUT -j REJECT –reject-with icmp-host-prohibited
-A FORWARD -j REJECT –reject-with icmp-host-prohibited
這兩條的意思是在INPUT表和FORWARD表中拒絕所有其他不符合上述任何一條規則的數據包。并且發送一條host prohibited的消息給被拒絕的主機。
下面來介紹一下,我添加的每個參數是什么意思,跟我沒講得允許22端口的一樣
-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A 最后添加一條規則
-j 后面接動作,主要的動作有接受(ACCEPT)、丟棄(DROP)、拒絕(REJECT)及記錄(LOG)
–dport 限制目標的端口號碼。
-p 協定:設定此規則適用于哪種封包格式 主要的封包格式有: tcp, udp, icmp 及 all 。
-m state –state 模糊匹配一個狀態,
IPtables企業案例規則實戰
WEB服務器,開啟80端口;
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
郵件服務器,開啟25,110端口;
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
FTP服務器,開啟21端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
DNS服務器,開啟53端口
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
允許icmp包通過,也就是允許ping,
iptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT設置成DROP的話)
iptables -A INPUT -p icmp -j ACCEPT (INPUT設置成DROP的話)
將本機的8080端口轉發至其他主機,主機IP:192.168.1.162,目標主機IP和端口:192.168.1.163:80,規則如下;
iptables -t nat -A PREROUTING -p tcp -m tcp -d 192.168.1.162 --dport 8080 -j DNAT --to-destination 192.168.1.163:80
iptables -t nat -A POSTROUTING -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.1.162:8080
echo 1 > /proc/sys/net/ipv4/ip_forward
同時開啟iptables forward轉發功能。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。