影象處理reject option什麼意思

  • 作者:由 匿名使用者 發表于 攝影
  • 2022-08-25

影象處理reject option什麼意思vm3zj4aup32017-06-01

iptables的歷史以及工作原理1。iptables的發展:iptables的前身叫ipfirewall(核心1。x時代),這是一個作者從freeBSD上移植過來的,能夠工作在核心當中的,對資料包進行檢測的一款簡易訪問控制工具。但是ipfirewall工作功能極其有限(它需要將所有的規則都放進核心當中,這樣規則才能夠執行起來,而放進核心,這個做法一般是極其困難的)。當核心發展到2。x系列的時候,軟體更名為ipchains,它可以定義多條規則,將他們串起來,共同發揮作用,而現在,它叫做iptables,可以將規則組成一個列表,實現絕對詳細的訪問控制功能。他們都是工作在使用者空間中,定義規則的工具,本身並不算是防火牆。它們定義的規則,可以讓在核心空間當中的netfilter來讀取,並且實現讓防火牆工作。而放入核心的地方必須要是特定的位置,必須是tcp/ip的協議棧經過的地方。而這個tcp/ip協議棧必須經過的地方,可以實現讀取規則的地方就叫做netfilter。(網路過濾器)作者一共在核心空間中選擇了5個位置,1。核心空間中:從一個網路介面進來,到另一個網路介面去的2。資料包從核心流入使用者空間的3。資料包從使用者空間流出的4。進入/離開本機的外網介面5。進入/離開本機的內網介面2。iptables的工作機制從上面的發展我們知道了作者選擇了5個位置,來作為控制的地方,但是你有沒有發現,其實前三個位置已經基本上能將路徑徹底封鎖了,但是為什麼已經在進出的口設定了關卡之後還要在內部卡呢?由於資料包尚未進行路由決策,還不知道資料要走向哪裡,所以在進出口是沒法實現資料過濾的。所以要在核心空間裡設定轉發的關卡,進入使用者空間的關卡,從使用者空間出去的關卡。那麼,既然他們沒什麼用,那我們為什麼還要放置他們呢?因為我們在做NAT和DNAT的時候,目標地址轉換必須在路由之前轉換。所以我們必須在外網而後內網的介面處進行設定關卡。這五個位置也被稱為五個鉤子函式(hookfunctions),也叫五個規則鏈。1。PREROUTING(路由前)2。INPUT(資料包流入口)3。FORWARD(轉發管卡)4。OUTPUT(資料包出口)5。POSTROUTING(路由後)這是NetFilter規定的五個規則鏈,任何一個數據包,只要經過本機,必將經過這五個鏈中的其中一個鏈。3。防火牆的策略防火牆策略一般分為兩種,一種叫“通”策略,一種叫“堵”策略,通策略,預設門是關著的,必須要定義誰能進。堵策略則是,大門是洞開的,但是你必須有身份認證,否則不能進。所以我們要定義,讓進來的進來,讓出去的出去,所以通,是要全通,而堵,則是要選擇。當我們定義的策略的時候,要分別定義多條功能,其中:定義資料包中允許或者不允許的策略,filter過濾的功能,而定義地址轉換的功能的則是nat選項。為了讓這些功能交替工作,我們制定出了“表”這個定義,來定義、區分各種不同的工作功能和處理方式。我們現在用的比較多個功能有3個:1。filter定義允許或者不允許的2。nat定義地址轉換的3。mangle功能:修改報文原資料我們修改報文原資料就是來修改TTL的。能夠實現將資料包的元資料拆開,在裡面做標記/修改內容的。而防火牆標記,其實就是靠mangle來實現的。小擴充套件:對於filter來講一般只能做在3個鏈上:INPUT,FORWARD,OUTPUT對於nat來講一般也只能做在3個鏈上:PREROUTING,OUTPUT,POSTROUTING而mangle則是5個鏈都可以做:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTINGiptables/netfilter(這款軟體)是工作在使用者空間的,它可以讓規則進行生效的,本身不是一種服務,而且規則是立即生效的。而我們iptables現在被做成了一個服務,可以進行啟動,停止的。啟動,則將規則直接生效,停止,則將規則撤銷。iptables還支援自己定義鏈。但是自己定義的鏈,必須是跟某種特定的鏈關聯起來的。在一個關卡設定,指定當有資料的時候專門去找某個特定的鏈來處理,當那個鏈處理完之後,再返回。接著在特定的鏈中繼續檢查。注意:規則的次序非常關鍵,誰的規則越嚴格,應該放的越靠前,而檢查規則的時候,是按照從上往下的方式進行檢查的。三.規則的寫法:iptables定義規則的方式比較複雜:格式:iptables[-ttable]COMMANDchainCRETIRIA-jACTION-ttable:3個filternatmangleCOMMAND:定義如何對規則進行管理chain:指定你接下來的規則到底是在哪個鏈上操作的,當定義策略的時候,是可以省略的CRETIRIA:指定匹配標準-jACTION:指定如何進行處理比如:不允許172。16。0。0/24的進行訪問。iptables-tfilter-AINPUT-s172。16。0。0/16-pudp——dport53-jDROP當然你如果想拒絕的更徹底:iptables-tfilter-RINPUT1-s172。16。0。0/16-pudp——dport53-jREJECTiptables-L-n-v#檢視定義規則的詳細資訊四:詳解COMMAND:1。鏈管理命令(這都是立即生效的)-P:設定預設策略的(設定預設門是關著的還是開著的)預設策略一般只有兩種iptables-PINPUT(DROP|ACCEPT)預設是關的/預設是開的比如:iptables-PINPUTDROP這就把預設規則給拒絕了。並且沒有定義哪個動作,所以關於外界連線的所有規則包括Xshell連線之類的,遠端連線都被拒絕了。-F:FLASH,清空規則鏈的(注意每個鏈的管理許可權)iptables-tnat-FPREROUTINGiptables-tnat-F清空nat表的所有鏈-N:NEW支援使用者新建一個鏈iptables-Ninbound_tcp_web表示附在tcp表上用於檢查web的。-X:用於刪除使用者自定義的空鏈使用方法跟-N相同,但是在刪除之前必須要將裡面的鏈給清空昂了-E:用來Renamechain主要是用來給使用者自定義的鏈重新命名-Eoldnamenewname-Z:清空鏈,及鏈中預設規則的計數器的(有兩個計數器,被匹配到多少個數據包,多少個位元組)iptables-Z:清空2。規則管理命令-A:追加,在當前鏈的最後新增一個規則-Inum:插入,把當前規則插入為第幾條。-I3:插入為第三條-Rnum:Replays替換/修改第幾條規則格式:iptables-R3…………-Dnum:刪除,明確指定刪除第幾條規則3。檢視管理命令“-L”附加子命令-n:以數字的方式顯示ip,它會將ip直接顯示出來,如果不加-n,則會將ip反向解析成主機名。-v:顯示詳細資訊-vv-vvv:越多越詳細-x:在計數器上顯示精確值,不做單位換算——line-numbers:顯示規則的行號-tnat:顯示所有的關卡的資訊五:詳解匹配標準1。通用匹配:源地址目標地址的匹配-s:指定作為源地址匹配,這裡不能指定主機名稱,必須是IPIP|IP/MASK|0。0。0。0/0。0。0。0而且地址可以取反,加一個“!”表示除了哪個IP之外-d:表示匹配目標地址-p:用於匹配協議的(這裡的協議通常有3種,TCP/UDP/ICMP)-ieth0:從這塊網絡卡流入的資料流入一般用在INPUT和PREROUTING上-oeth0:從這塊網絡卡流出的資料流出一般在OUTPUT和POSTROUTING上2。擴充套件匹配2。1隱含擴充套件:對協議的擴充套件-ptcp:TCP協議的擴充套件。一般有三種擴充套件——dportXX-XX:指定目標埠,不能指定多個非連續埠,只能指定單個埠,比如——dport21或者——dport21-23(此時表示21,22,23)——sport:指定源埠——tcp-fiags:TCP的標誌位(SYN,ACK,FIN,PSH,RST,URG)對於它,一般要跟兩個引數:1。檢查的標誌位2。必須為1的標誌位——tcpflagssyn,ack,fin,rstsyn=——syn表示檢查這4個位,這4個位中syn必須為1,其他的必須為0。所以這個意思就是用於檢測三次握手的第一次包的。對於這種專門匹配第一包的SYN為1的包,還有一種簡寫方式,叫做——syn-pudp:UDP協議的擴充套件——dport——sport-picmp:icmp資料報文的擴充套件——icmp-type:echo-request(請求回顯),一般用8來表示所以——icmp-type8匹配請求回顯資料包echo-reply(響應的資料包)一般用0來表示2。2顯式擴充套件(-m)擴充套件各種模組-mmultiport:表示啟用多埠擴充套件之後我們就可以啟用比如——dports21,23,80六:詳解-jACTION常用的ACTION:DROP:悄悄丟棄一般我們多用DROP來隱藏我們的身份,以及隱藏我們的連結串列REJECT:明示拒絕ACCEPT:接受custom_chain:轉向一個自定義的鏈DNATSNATMASQUERADE:源地址偽裝REDIRECT:重定向:主要用於實現埠重定向MARK:打防火牆標記的RETURN:返回在自定義鏈執行完畢後使用返回,來返回原規則鏈。七:狀態檢測:是一種顯式擴充套件,用於檢測會話之間的連線關係的,有了檢測我們可以實現會話間功能的擴充套件什麼是狀態檢測?對於整個TCP協議來講,它是一個有連線的協議,三次握手中,第一次握手,我們就叫NEW連線,而從第二次握手以後的,ack都為1,這是正常的資料傳輸,和tcp的第二次第三次握手,叫做已建立的連線(ESTABLISHED),還有一種狀態,比較詭異的,比如:SYN=1ACK=1RST=1,對於這種我們無法識別的,我們都稱之為INVALID無法識別的。還有第四種,FTP這種古老的擁有的特徵,每個埠都是獨立的,21號和20號埠都是一去一回,他們之間是有關係的,這種關係我們稱之為RELATED。所以我們的狀態一共有四種:NEWESTABLISHEDRELATEDINVALID八:SNAT和DNAT的實現由於我們現在IP地址十分緊俏,已經分配完了,這就導致我們必須要進行地址轉換,來節約我們僅剩的一點IP資源。那麼透過iptables如何實現NAT的地址轉換呢?1。SNAT基於原地址的轉換基於原地址的轉換一般用在我們的許多內網使用者透過一個外網的口上網的時候,這時我們將我們內網的地址轉換為一個外網的IP,我們就可以實現連線其他外網IP的功能。所以我們在iptables中就要定義到底如何轉換:定義的樣式:比如我們現在要將所有192。168。10。0網段的IP在經過的時候全都轉換成172。16。100。1這個假設出來的外網地址:iptables-tnat-APOSTROUTING-s192。168。10。0/24-jSNAT——to-source172。16。100。1這樣,只要是來自本地網路的試圖透過網絡卡訪問網路的,都會被統統轉換成172。16。100。1這個IP。那麼,如果172。16。100。1不是固定的怎麼?我們都知道當我們使用聯通或者電信上網的時候,一般它都會在每次你開機的時候隨機生成一個外網的IP,意思就是外網地址是動態變換的。這時我們就要將外網地址換成MASQUERADE(動態偽裝):它可以實現自動尋找到外網地址,而自動將其改為正確的外網地址。所以,我們就需要這樣設定:iptables-tnat-APOSTROUTING-s192。168。10。0/24-jMASQUERADE這裡要注意:地址偽裝並不適用於所有的地方。2。DNAT目標地址轉換對於目標地址轉換,資料流向是從外向內的,外面的是客戶端,裡面的是伺服器端透過目標地址轉換,我們可以讓外面的ip透過我們對外的外網ip來訪問我們伺服器不同的伺服器,而我們的服務卻放在內網伺服器的不同的伺服器上。如何做目標地址轉換呢?:iptables-tnat-APREROUTING-d192。168。10。18-ptcp——dport80-jDNAT——todestination172。16。100。2目標地址轉換要做在到達網絡卡之前進行轉換,所以要做在PREROUTING這個位置上九:控制規則的存放以及開啟注意:你所定義的所有內容,當你重啟的時候都會失效,要想我們能夠生效,需要使用一個命令將它儲存起來1。serviceiptablessave命令它會儲存在/etc/sysconfig/iptables這個檔案中2。iptables-save命令iptables-save>/etc/sysconfig/iptables3。iptables-restore命令開機的時候,它會自動載入/etc/sysconfig/iptabels如果開機不能載入或者沒有載入,而你想讓一個自己寫的配置檔案(假設為iptables。2)手動生效的話:iptables-restore

Top