歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

iptables簡單教程

iptables簡單教程   【概述】 netfilter/iptables是linux系統自帶的免費防火牆,能夠實現防火牆、NAT(網絡地址翻譯)和數據包分割功能 netfilter工作在內核層,iptables工作在用戶層,可以方便用戶定義規則集的表結構。   【iptables選項介紹】    netfilter的用戶控制命令是iptables,通過iptables建立適當的規則添加到內核中實現信息數據包的過濾。    iptables的一般語法如下:    iptalbes [-t table] command [match] [target]    一條iptables規則包含4個基本元素,   1)表(table)     [-t table] 選項允許使用標准表之外的任何表。有三種可以使用的表選項:filter、nat和mangle。     2)命令(command)     command部分是iptables命令的最重要部分,它告訴iptables命令要做什麼,例如,插入規則、將規則添加到     鏈的末尾或刪除規則。主要有如表1所示的命令。               表1 iptables常用命令     -A或--append        該命令將一條規則附加到鏈的末尾     -D或--delete        通過用-D指定要匹配的規則或者指定規則在鏈中的位置編號,該命令從鏈中刪除該規則     -P或--policy        該命令設置鏈的默認目標,即策略。所有與鏈中任何規則都不匹配的信息包都將被強制使                         用此鏈的策略     -N或--new-chain     用命令中所指定的名稱創建一個新鏈     -F或--flush         如果指定鏈名,該命令刪除鏈中的所有規則,如果未指定鏈名,該命令刪除所有鏈中的所                          有規則。此參數用於快速清除     -L或--list          列出指定鏈中的所有規則     -R或--replace       替換指定鏈中一條匹配的規則     -X或--delete-chain  刪除指定用戶的的定義鏈,若沒有指定鏈,則刪除所有的用戶鏈     -C或--check         檢查數據包是否與指定鏈的規則相匹配     -Z或--zero          將指定鏈中所有規則的byte計數器清零       3)匹配(match)     iptables命令的可選match部分指定信息包與規則匹配所應具有的特征(如源和目的地地址、協議等)。匹配分為     兩大類:通用匹配和特定於協議的匹配。這裡,將研究可用於采用任何協議的信息包的通用匹配。下面是一些重     要的且常用的通用匹配及其說明,如表2所示。       表2 通用匹配說明         通用匹配                說    明     -p或--protocol       該通用協議匹配用於檢查某些特定協議。協議示例有TCP、UDP、ICMP、用逗號分隔的任何這三                                種協議的組合列表以及ALL(用於所有協議)ALL是默認匹配。可以使用!符號表示不與該項匹配     -s 或 --source       該源匹配用於根據信息包的源IP地址來與它們匹配。該匹配還允許對某一范圍內的IP地址進行匹                                配,可以使用!符號,表示不與該項匹配。默認源匹配與所有IP地址匹配     -d 或 --destination  該目的地匹配用於根據信息包的目的地IP地址來與它們匹配。該匹配還允許對某一范圍內IP                                  地址進行匹配,可以使用!符號表示不與該項匹配     --sport                  指定匹配規則的源端口或端口范圍     --dport                  指定匹配規則的目的端口或端口范圍     -i                         匹配單獨的網絡接口或某種類型的接口設置過濾規則     4)目標(target)     前面已經講過,目標是由規則指定的操作,對與那些規則匹配的信息包執行這些操作。除了允許用戶定義的目標之     外,還有許多可用的目標選項。下面是常用的一些目標及其示例和說明,如表3所示。       表3 目標項說明       目 標 項       說    明     ACCEPT       當信息包與具有ACCEPT目標的規則完全匹配時,會被接受(允許它前往目的地)     DROP         當信息包與具有DROP目標的規則完全匹配時,會阻塞該信息包,並且不對它做進一步處理。該目標被                  指定為-j DROP     REJECT       該目標的工作方式與DROP目標相同,但它比DROP好。和DROP不同,REJECT不會在服務器和客戶機上                  留下死套接字。另外,REJECT將錯誤消息發回給信息包的發送方。該目標被指定為-j REJECT     RETURN       在規則中設置的RETURN目標讓與該規則匹配的信息包停止遍歷包含該規則的鏈。如果鏈是如INPUT之                  類的主鏈,則使用該鏈的默認策略處理信息包。它被指定為-jump RETURN     LOG          表示將包的有關信息記錄入日志     TOS          表示改寫數據包的TOS值   【iptables使用實例】   實際使用規則如下:   只允許某個ip訪問某個端口   #iptables -A INPUT -p tcp -s 61.145.251.36 --dport 16322 -j ACCEPT   -A      在INPUT鏈中增加,   -p      表示協議   -s      表示源地址   --dport 表示目的端口   -j      目標操作   其他的ip都拒絕   #iptables -A INPUT -p tcp  --dport 16322 -j REJECT   刪除一條規則(刪除INPUT鏈中第一條規則,具體可以man iptables)   #iptalbes -D INPUT 1   插入一條規則(插入到INPUT鏈中第二條規則)   #iptables -I INPUT 2 -p tcp -s 61.145.251.63 --dport 16322 -j ACCEPT   限制某個網口的訪問(eth0 的端口訪問插入一條規則)   #iptables -I INPUT 3 -p tcp -s 61.145.251.66 -i eth0 --dport 16322 -j ACCEPT   #iptables -I INPUT 4 -p udp -s 61.145.251.66 -i eth0 --dport 16322 -j ACCEPT   限制某個網段的訪問   #iptables -I INPUT 5 -p tcp -s 192.168.0.0/16 -i eth1  --dport 3306 -j REJECT   對於iptables的一些其他選項可以查看使用手冊:man iptables     和iptables並行的還有iptables-save和iptables-restore命令,分別用來保存和恢復規則   保存規則到iptables-save.txt   #iptables-save > iptables-save.txt   從保存文件中恢復   #iptables-restore < iptables-save.txt   對於已經含有規則的表格,可以先iptables-save,然後做修改,最後再iptables-restore。
Copyright © Linux教程網 All Rights Reserved