关键词不能为空

当前您在: 主页 > 英语 >

Linux网路安全讲义Netfilter机制与iptable

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-28 10:43
tags:

-

2021年2月28日发(作者:chew)


Linux


網路安全講義


:Netfilter


機制與


iptables


工具



一、


iptables


簡介



1.



iptables


下載與技術資源總站


./




2.



使用


iptables


前先確認核心版 本


(#uname -r)



Kern el


必須是


2.4


以上版本

< p>


3.



演進歷程介紹


:


-


舊版


Linux


上使用



IP-Masquerade




IP


偽裝以便於達成該功能。


- kernel 2.0.x


時代,是使用



ipfwadm


程式。


(


這個說法不算是完全正確


)- kernel 2.1.x/2.2.x


時代,則是使用



ipchains


程式,


port


forwardin g


需要搭配


ipmasqadm


程式來 輔助才能夠達成。


- kernel 2.3.x/2.4.x


時代,使用



netfilter



濾機制,



是使用


iptables


程式。!注意!


(Kernel 2.4


使用



netfilter project




firewall


機制,該環境允


許 使用者使用舊版


ipchains


設定


firewall


,不過要先掛入


ipchains

< p>
模組。若是系統已經掛入


ipchains


模組,


要先執行



# ipchains -F ipchains



X



rmmod ipchains


即可開始使用



iptables


了。



4.



目前



kernel 2.4.x < /p>


配合使用


netfilter


核心過濾機 制



可以達到的功能相當強悍



netfilter


可提供的機制如下:



?



?



?



?



?



?



傳統



ipchains

< p>
的任何功能


(


來源與目的封包過濾、導向、偽裝< /p>


)




提供



Source NAT




Destination NAT


的功能。



可以針對特定使用者、群組、


PID


等限制網路連結的過濾存取。



可以設定封包在



Routing Table


進出前時先預先處理。



可以針對外面自動建立、與現有連線有關這類連線過濾處理。



可以針對



Mac


卡號直接處理。



5.



使用


i ptables


前先確認下列核心功能已設定正確:


CONFI G_PACKET



CONFIG_NETFILTER



CONFIG_IP_NF_CONNTRACK

< br>、


CONFIG_IP_NF_FTP



CONFIG_IP_NF_IPTABLES



CO NFIG_IP_NF_MATCH_LIMIT



CONFI G_IP_NF_MATCH_MAC



CONFIG_IP_ NF_MATCH_MARK



CONFIG_IP_NF_M ATCH_MULTIPORT



CONFIG_IP_NF_ MATCH_TOS



CONFIG_IP_NF_MATCH _TCPMSS



CONFIG_IP_NF_MATCH_S TATE



CONFIG_IP_NF_MATCH_UNCL EAN



CONFIG_IP_NF_MATCH_OWNER



CONFIG_IP_NF_FILTER

< br>、


CONFIG_IP_NF_TARGET_REJECT


CONFIG_IP_NF_TARGET_MIRROR



CONFIG_IP_NF_NAT


CONFIG_IP_NF_TARGET_MASQUERADE



CONFIG_IP_NF_TARGET_REDIRECT


< p>
CONFIG_IP_NF_TARGET_LOG


CONFIG_IP_NF_TARGET_TCPMSS



CONFIG_IP_NF_PAT_IPCHAINS



C ONFIG_IP_NF_PAT_IPFWADM




二、基本原理



1.



iptables


預設的


Table & Chains


組合


(User


可以 自訂


chains)


1


/


12


過濾表


(Table)


filter


nat


mangle


說明



過濾透通本機的封包



(


預設


)


轉譯封包位址資訊



修改或標註封包




2.



各種封包的處理流程

< p>
(



)


Forward Packet Processing


Input Packet Processing


Output Packet Processing



3.



各種 封包的處理流程


(



)




規則鏈


(chains)


PREROUTING


INPUT


FORWARD


OUTPUT


執行時機



封包進入本機,在判斷路由前



通過路由表後,目的地為本機



通過路由表後,目的地不是本機



由本機主動建立的封包,在通過路由表前



POSTROUTING


通過路由表後,要發送出去前




4.



封包過濾流程

< br>(



)




2


/


12


PREROUTING


FORWARD


POSTROUTING


Route Table


INPUT


OUTPUT


Local Process




5.



IP Packet Header






三、指令介紹



1.



iptables


指令包含以下四項元件


:


?



?



?



?



table


ACTION <


命令


>


rule specification - pattern <


比對規則


>


extension <


延伸選項


>




netfilter


處理判斷順序:



Tables



?




Chains



?




Rules



?




Policy



3


/


12


指定


action


處理方式



#iptables



t filter



A INPUT



i eth0



p tcp



s any/0 --sport 80



d 185.100.35.1



j ACCEPT


指定


table


(


預設為


filter table)



指定比對


rule


指定


rule


延伸選





語法


:# iptables [-t TABLE] ACTION [PATTERN] [-j TARGET]





[-t

]


:


如不指定預設為



filter ta ble



可指定為


< br>-


t nat”



< p>
-


t mangle”



ACTION


:要操作的動作,若未指定哪個


Chain


,則為該


Table


中所有的


Chains


。常用的指令包含



ACTION


指令



-L CHAIN


-A CHAIN


-D CHAIN <>


-I CHAIN <>


-R CHAIN <>


-P CHAIN


--list CHAIN


--append CHAIN


--delete CHAIN <>


--insert CHAIN <>


--replace CHAIN <>


--policy CHAIN


長指令



說明



顯示



CHAIN


中的所有規則




CHAIN


新增一條規則



刪除



CHAIN


中的一條規則





CHAIN


中插入一條規則



替換



CHAIN


中的某一條規則



< br>CHAIN


設定預設的


Policy

;只有


內建的


chains


可以指 定


policy



policy


不可指定為另一個


chain


-F CHAIN


-N USER-CHAIN


-X USER- CHAIN


-Eold-chainnew-chain


-h [icmp]



--flush CHAIN


--new-chain USER-CHAIN


--delete-chain USER-CHAIN


--rename-chain old-chainnew-chain



清除


CHAIN

中所有規則



自訂一個


USER- CHAIN


刪除自訂的


USER-CHAIN


更名自訂的


USER-CHAIN


Help [


列出


icmp type


清單


]


PATTERN


:設定比對條件的參數


(


下列「長、短參數 」擇一使用即可;參數值前面加


”!”


代表

”Not”)



短參數



長參數



--protocol


--source


--destination


--in-interface


--out- interface


參數值



PRO TOCOL


名稱


或號碼


(0=all)


說明



通訊協定為



PROTOCOL


者,


PROTOCOL: tcp, udp,


icmp, all


或者為



/etc/protocols


內所記錄的協定



指定



Source IP Address



ADDRESS [port]


指定



Destination IP Address




ADDRESS [port]


指定封包進入的網路卡介面


(eth0,eth 1,ppp0…)



eth+



所有


eth


介面卡



-p


-s


-d


-i


-o


ADDRESS port


ADDRESS port


INTERFACE[+]


INTERFACE[+]


封包輸出的網路卡介面



4


/


12


-m


-n


--match


--numeric


MATCH





指定進階的選項



以數字表示主機


(IP)


,服務


(port)


資訊



搭配


-L

< p>
使用可列出


rule


編號



詳細輸出



--line- numbers


-v


-


-verbose





PROTOCOL




tcp(-p tcp)


,則另外可設定的參數


(


參數值前面加


”!”


代表


”Not”)



短參數



--sport


--dport


長參數



--source-port


--destination- port


參數值



n:m


n:m


mask p


說明



指定來源


Port



n


m


的範圍


(


例如:


1023


以上


?


1023:




) 0~65535

< p>
指定目的


Port



n< /p>



m


的範圍


(< /p>


例如



256


以 下


?


:256




)


0~65535


--tcp-flags


指定


TCP


協定中的旗號,可使用的旗號包含


:


SYN/ACK/FIN/RST/URG/PSH/ALL/NONE



mask:






分隔的檢查遮罩



p:






分隔的符合項目


< br>例如:



-


< br>tcp-flags SYN,ACK,FIN



SY N


」表示符合設定


SYN


旗號,但未設 定


ACK,FIN


旗號的封包



tcp-flag


說明


:URG :


緊急指標



建立

TCP


連線



ClientServer


SYN




??


SYN+ACK


ACK




?



中止


TC P


連線



ClientServer


FIN+ACK


??







ACK












?





FIN+ACK


ACK







?



ACK :


確認回報號碼




PSH :


接收端盡快將此資料傳給應用程式



RST :


重置該連線


(


對不存在的埠號請求連線


)


SYN :

< p>
將序號同步以產生連線


(TCP


開始傳送即產生一 個序號






syn=


起始序號


+1)


FIN :


發送端完成資料傳送



表示


SYN


位元被開啟,而


ACK



FIN


位元被關閉的 封包,


這是發起連線的狀態


(


等於


--tcp-flags SYN,RST


,ACK SYN)


--syn






PROTOCOL




udp(-p udp)


,則另外可設定的參數


(


參數值前面加


”!”


代表


”Not”)



短參數



--sport


--dport


長參數



--source-port


--destination- port


參數值



n:m


n:m


說明



指定來源



Port




n




m


的範圍



指定目的



Port




n




m


的範圍





PROTOCOL




icmp


,另外可設定


(


參 數值前面加


”!”


代表


”Not”)< /p>



長參數



--icmp-type


參數值



NAME


說明



ICMP


封包的類別名稱或代碼:


(


參閱


#iptables



p icmp -h)


例如:


echo request(ping,8)


??


echo reply(pong,0)




MATCH (-m)


被指定時,可另外設定的參數

< p>
(


參數值前面加


”!”


代 表


”Not”)



MATCH


mac


參數



--mac-source


參數值



MAC ADDRESS


說明



網路卡位址


xx:xx:xx:xx:xx:xx


備註



需為乙太網卡


&


PREROUTING



FORWARD

< br>,



INPUT chains


5


/


12


limit



--limit


--limit-burst


RATE


NUMBER


n,m


符合的最大平均值



符合的上限值



來源



Port


目的



Port


XX/[s,m,h]





multiport


--source-port




mark


owner





state


--destination-port


n,m


--port


--mark


--uid-owner


--gid-owner


--pid-owner


--sid-owner


--state


n,m


VALUE/MASK


UID


GID


PID


SID


STATE[,state..]


來源與目的


Port


相同




標記封包資訊



使用者識別碼



群組識別碼



行程識別碼



Session


識別碼



封包的狀態


:


NEW


INVALID


ESTABLISHED


RELATED


NEW


:新連線產生的封包或




和非雙向連線的關連封包



INVALID


:和已知的連線沒



有關係的封包



ESTABLISHE D



雙向連線的


關連封包



RELATED


:和現有連線相關


的新連線封包


(



ftp- data



icmp)


IP


表頭內的



TOS





只能在


mangle table


使用



只有


OUTPUT chain


有用



tos


--tos


TOS


參閱


#iptables -m tos -h


例如:


iptables



A INPUT



p tcp



--sport 21



m state --state ESTABLISHED



-j ACCEPT



< p>
TARGET(


可指向自訂的


chain)


:不同的



Table


有不同的



Extension Target


Target


LOG


REJECT


nat


SNAT


DNAT


MASQUERADE


REDIRECT


mangle


TTL


MARK


TOS


Basic Target


一覽表



Target


ACCEPT


DROP


RETURN


說明



讓封包通過



丟棄封包



不作比對直接返回



說明



紀錄該封包資訊



退回該封包



轉譯來源位址



轉譯目的位址



轉譯來源位址成為



NIC


的位址



轉送至本機某個



Port


修改



Time To Live


資訊



標記該封包



設定



Type Of Service


資訊



Table


filter


6


/


12

-


-


-


-


-


-


-


-



本文更新与2021-02-28 10:43,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/680456.html

Linux网路安全讲义Netfilter机制与iptable的相关文章