您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Linux网路安全讲义Netfilter机制与iptable
Linux網路安全講義:Netfilter機制與iptables工具Page-1Editedbybono@teacher.comLinux網路安全講義:Netfilter機制與iptables工具一、iptables簡介1.iptables下載與技術資源總站。2.使用iptables前先確認核心版本(#uname-r),Kernel必須是2.4以上版本3.演進歷程介紹:-舊版Linux上使用IP-Masquerade的IP偽裝以便於達成該功能。-kernel2.0.x時代,是使用ipfwadm程式。(這個說法不算是完全正確)-kernel2.1.x/2.2.x時代,則是使用ipchains程式,portforwarding需要搭配ipmasqadm程式來輔助才能夠達成。-kernel2.3.x/2.4.x時代,使用netfilter過濾機制,是使用iptables程式。!注意!(Kernel2.4使用netfilterproject的firewall機制,該環境允許使用者使用舊版ipchains設定firewall,不過要先掛入ipchains模組。若是系統已經掛入ipchains模組,要先執行#ipchains-F;ipchains–X;rmmodipchains即可開始使用iptables了。4.目前kernel2.4.x配合使用netfilter核心過濾機制,可以達到的功能相當強悍,netfilter可提供的機制如下:傳統ipchains的任何功能(來源與目的封包過濾、導向、偽裝)。提供SourceNAT與DestinationNAT的功能。可以針對特定使用者、群組、PID等限制網路連結的過濾存取。可以設定封包在RoutingTable進出前時先預先處理。可以針對外面自動建立、與現有連線有關這類連線過濾處理。可以針對Mac卡號直接處理。5.使用iptables前先確認下列核心功能已設定正確:CONFIG_PACKET、CONFIG_NETFILTER、CONFIG_IP_NF_CONNTRACK、CONFIG_IP_NF_FTP、CONFIG_IP_NF_IPTABLES、CONFIG_IP_NF_MATCH_LIMIT、CONFIG_IP_NF_MATCH_MAC、CONFIG_IP_NF_MATCH_MARK、CONFIG_IP_NF_MATCH_MULTIPORT、CONFIG_IP_NF_MATCH_TOS、CONFIG_IP_NF_MATCH_TCPMSS、CONFIG_IP_NF_MATCH_STATE、CONFIG_IP_NF_MATCH_UNCLEAN、CONFIG_IP_NF_MATCH_OWNER、CONFIG_IP_NF_FILTER、CONFIG_IP_NF_TARGET_REJECT、CONFIG_IP_NF_TARGET_MIRROR、CONFIG_IP_NF_NAT、CONFIG_IP_NF_TARGET_MASQUERADE、CONFIG_IP_NF_TARGET_REDIRECT、CONFIG_IP_NF_TARGET_LOG、CONFIG_IP_NF_TARGET_TCPMSS、CONFIG_IP_NF_COMPAT_IPCHAINS、CONFIG_IP_NF_COMPAT_IPFWADM。Linux網路安全講義:Netfilter機制與iptables工具Page-2Editedbybono@teacher.com二、基本原理1.iptables預設的Table&Chains組合(User可以自訂chains)2.各種封包的處理流程(一)3.各種封包的處理流程(二)規則鏈(chains)執行時機PREROUTING封包進入本機,在判斷路由前INPUT通過路由表後,目的地為本機FORWARD通過路由表後,目的地不是本機OUTPUT由本機主動建立的封包,在通過路由表前POSTROUTING通過路由表後,要發送出去前過濾表(Table)說明filter過濾透通本機的封包(預設)nat轉譯封包位址資訊mangle修改或標註封包ForwardPacketProcessingInputPacketProcessingOutputPacketProcessingLinux網路安全講義:Netfilter機制與iptables工具Page-3Editedbybono@teacher.com4.封包過濾流程(三)5.IPPacketHeaderPREROUTINGINPUTOUTPUTFORWARDPOSTROUTINGLocalProcessRouteTableLinux網路安全講義:Netfilter機制與iptables工具Page-4Editedbybono@teacher.com三、指令介紹1.iptables指令包含以下四項元件:tableACTION命令rulespecification-pattern比對規則extension延伸選項netfilter處理判斷順序:TablesChainsRulesPolicy語法:#iptables[-tTABLE]ACTION[PATTERN][-jTARGET][-ttable]:如不指定預設為filtertable,可指定為”-tnat”或”-tmangle”ACTION:要操作的動作,若未指定哪個Chain,則為該Table中所有的Chains。常用的指令包含ACTION指令長指令說明-LCHAIN--listCHAIN顯示CHAIN中的所有規則-ACHAIN--appendCHAIN對CHAIN新增一條規則-DCHAINrule.num--deleteCHAINrule.num刪除CHAIN中的一條規則-ICHAINrule.num--insertCHAINrule.num在CHAIN中插入一條規則-RCHAINrule.num--replaceCHAINrule.num替換CHAIN中的某一條規則-PCHAINPOLICY--policyCHAINPOLICY對CHAIN設定預設的Policy;只有內建的chains可以指定policy;policy不可指定為另一個chain-FCHAIN--flushCHAIN清除CHAIN中所有規則-NUSER-CHAIN--new-chainUSER-CHAIN自訂一個USER-CHAIN-XUSER-CHAIN--delete-chainUSER-CHAIN刪除自訂的USER-CHAIN-Eold-chainnew-chain--rename-chainold-chainnew-chain更名自訂的USER-CHAIN-h[icmp]Help[列出icmptype清單]#iptables–tfilter–AINPUT–ieth0–ptcp–sany/0--sport80–d185.100.35.1–jACCEPT指定table(預設為filtertable)指定action指定比對rule指定rule延伸選項處理方式Linux網路安全講義:Netfilter機制與iptables工具Page-5Editedbybono@teacher.comPATTERN:設定比對條件的參數(下列「長、短參數」擇一使用即可;參數值前面加”!”代表”Not”)短參數長參數參數值說明-p--protocolPROTOCOL名稱或號碼(0=all)通訊協定為PROTOCOL者,PROTOCOL:tcp,udp,icmp,all或者為/etc/protocols內所記錄的協定-s--sourceADDRESSport指定SourceIPAddress為ADDRESS[port]-d--destinationADDRESSport指定DestinationIPAddress為ADDRESS[port]-i--in-interfaceINTERFACE[+]指定封包進入的網路卡介面(eth0,eth1,ppp0…),eth+為所有eth介面卡-o--out-interfaceINTERFACE[+]封包輸出的網路卡介面-m--matchMATCH指定進階的選項-n--numeric以數字表示主機(IP),服務(port)資訊--line-numbers搭配-L使用可列出rule編號-v--verbose詳細輸出若PROTOCOL為tcp(-ptcp),則另外可設定的參數(參數值前面加”!”代表”Not”)短參數長參數參數值說明--sport--source-portn:m指定來源Port為n到m的範圍(例如:1023以上1023:)0~65535--dport--destination-portn:m指定目的Port為n到m的範圍(例如:256以下:256)0~65535--tcp-flagsmaskcomp指定TCP協定中的旗號,可使用的旗號包含:SYN/ACK/FIN/RST/URG/PSH/ALL/NONEmask:以”,”分隔的檢查遮罩comp:以”,”分隔的符合項目例如:「-–tcp-flagsSYN,ACK,FINSYN」表示符合設定SYN旗號,但未設定ACK,FIN旗號的封包tcp-flag說明:URG:緊急指標ACK:確認回報號碼PSH:接收端盡快將此資料傳給應用程式RST:重置該連線(對不存在的埠號請求連線)SYN:將序號同步以產生連線(TCP開始傳送即產生一個序號syn=起始序號+1)FIN:發送端完成資料傳送建立TCP連線中止TCP連線ClientServerSYNSYN+ACKACKClientServerFIN+ACKACKFIN+ACKACK--syn表示SYN位元被開啟,而ACK與FIN位元被關閉的封包,這是發起連線的狀態(等於--tcp-flagsSYN,RST,ACKSYN)Linux網路安全講義:Netfilter機制與iptables工具Page-6Editedbybono@teacher.com若PROTOCOL為udp(-pudp),則另外可設定的參數(參數值前面加”!”代表”Not”)短參數長參數參數值說明--sport--source-portn:m指定來源Port為n到m的範圍--dport--destination-portn:m指定目的Port為n到m的範圍若PROTOCOL為icmp,另外可設定(參數值前面加”!”代表”Not”)長參數參數值說明--icmp-typeNAMEICMP封包的類別名稱或代碼:(參閱#iptables–picmp-h)例如:echorequest(ping,8)echoreply(pong,0)若MATCH(-m)被指定時,可另外設定的參數(參數值前面加”!”代表”Not”)MATCH參數參數值說明備註mac--mac-sourceMACADDRESS網路卡位址xx:xx:xx:xx:xx:xx需為乙太網卡&PREROUTING,FORWARD,INPUTchainslimit--limitRATE符合的最大平均值XX/[s,m,h]--limit-burstNUMBER符合的上限值multiport--source-portn,m來源Port--destination-portn,m目的Port--portn,m來源與目的Port相同mark--markVALUE/MASK標記封包資訊只能在mangletable使用owner--uid-ownerUID使用者識別碼只有OUTPUTchain有用--gid-ownerGID群組識別碼--pid-ownerPID行程識別碼--sid-ownerSIDSession識別碼state--stateSTATE[,state..]封包的狀態:NEWINVALIDESTABLISHEDRELATEDNEW:新連線產生的封包或和非雙向連線的關連封
本文标题:Linux网路安全讲义Netfilter机制与iptable
链接地址:https://www.777doc.com/doc-1249917 .html