溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

IPTABLS命令怎么用

發(fā)布時間:2021-11-11 15:24:49 來源:億速云 閱讀:128 作者:小新 欄目:安全技術

這篇文章給大家分享的是有關IPTABLS命令怎么用的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

iptables簡介

    netfilter/iptables(簡稱為iptables)組成Linux平臺下的包過濾防火墻,與大多數(shù)的Linux軟件一樣,這個包過濾防火墻是免費的,它可以代替昂貴的商業(yè)防火墻解決方案,完成封包過濾、封包重定向和網(wǎng)絡地址轉換(NAT)等功能。

iptables基礎

    規(guī)則(rules)其實就是網(wǎng)絡管理員預定義的條件,規(guī)則一般的定義為“如果數(shù)據(jù)包頭符合這樣的條件,就這樣處理這個數(shù)據(jù)包”。規(guī)則存儲在內(nèi)核空間的信息包過濾表中,這些規(guī)則分別指定了源地址、目的地址、傳輸協(xié)議(如TCP、UDP、ICMP)和服務類型(如HTTP、FTP和SMTP)等。當數(shù)據(jù)包與規(guī)則匹配時,iptables就根據(jù)規(guī)則所定義的方法來處理這些數(shù)據(jù)包,如放行(accept)、拒絕(reject)和丟棄(drop)等。配置防火墻的主要工作就是添加、修改和刪除這些規(guī)則。

iptables和netfilter的關系:

    這是第一個要說的地方,Iptables和netfilter的關系是一個很容易讓人搞不清的問題。很多的知道iptables卻不知道netfilter。其實iptables只是Linux防火墻的管理工具而已,位于/sbin/iptables。真正實現(xiàn)防火墻功能的是netfilter,它是Linux內(nèi)核中實現(xiàn)包過濾的內(nèi)部結構。

iptables傳輸數(shù)據(jù)包的過程

IPTABLS命令怎么用

可以簡單理解為:

  1. 若數(shù)據(jù)包是發(fā)送到本機,則經(jīng)過PREROUTING--》INPUT;

  2. 若數(shù)據(jù)包是需要本機轉發(fā),則經(jīng)過PREROUTING--》FORWORD-->POSTROUTING;

3.   若數(shù)據(jù)包是本機發(fā)出的,則要經(jīng)過OUTPUT--》POSTROUTING.

iptables的規(guī)則表和鏈:

    表(tables)提供特定的功能,iptables內(nèi)置了4個表,即filter表、nat表、mangle表和raw表,分別用于實現(xiàn)包過濾,網(wǎng)絡地址轉換、包重構(修改)和數(shù)據(jù)跟蹤處理。

   鏈(chains)是數(shù)據(jù)包傳播的路徑,每一條鏈其實就是眾多規(guī)則中的一個檢查清單,每一條鏈中可以有一條或數(shù)條規(guī)則。當一個數(shù)據(jù)包到達一個鏈時,iptables就會從鏈中第一條規(guī)則開始檢查,看該數(shù)據(jù)包是否滿足規(guī)則所定義的條件。如果滿足,系統(tǒng)就會根據(jù)該條規(guī)則所定義的方法處理該數(shù)據(jù)包;否則iptables將繼續(xù)檢查下一條規(guī)則,如果該數(shù)據(jù)包不符合鏈中任一條規(guī)則,iptables就會根據(jù)該鏈預先定義的默認策略來處理數(shù)據(jù)包。

四張表和五個鏈的關系圖:IPTABLS命令怎么用

規(guī)則表與鏈的關系
1.filter表——三個鏈:INPUT、FORWARD、OUTPUT
作用:過濾數(shù)據(jù)包  內(nèi)核模塊:iptables_filter.
2.Nat表——三個鏈:PREROUTING、POSTROUTING、OUTPUT
作用:用于網(wǎng)絡地址轉換(IP、端口) 內(nèi)核模塊:iptable_nat
3.Mangle表——五個鏈:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
作用:修改數(shù)據(jù)包的服務類型、TTL、并且可以配置路由實現(xiàn)QOS內(nèi)核模塊:iptable_mangle(別看這個表這么麻煩,咱們設置策略時幾乎都不會用到它)
4.Raw表——兩個鏈:OUTPUT、PREROUTING
作用:決定數(shù)據(jù)包是否被狀態(tài)跟蹤機制處理  內(nèi)核模塊:iptable_raw

表的一般順序:Raw——mangle——nat——filter。

iptables命令和規(guī)則寫法:如圖

IPTABLS命令怎么用

IPTABLS命令怎么用

關于添加/除去/編輯規(guī)則的命令的一般語法如下:

iptables [-t table] command [match] [target]

一條iptables規(guī)則包含如下4個基本元素:表,命令,匹配,目標。

iptables

    -N:創(chuàng)建新的鏈

    -X:刪除鏈

    -F:清空鏈上的規(guī)則

    -Z:計數(shù)器置零

    -P:設置默認策略

規(guī)則:

   -A:添加一條規(guī)則,在最后位置。

   -I:插入一條規(guī)則,可以指定插入為第n條。

   -R:替換一條規(guī)則,指定替換第n條。

   -D:刪除一條規(guī)則。

匹配條件:

   基本匹配:

     -s:源地址

     -d:目標地址

     -p:指定協(xié)議(tcp|udp|icmp)

     -i:指定數(shù)據(jù)流入接口,只能在前半段的鏈上。(prerouting|input|forword)

     -o:指定數(shù)據(jù)流出接口,在后半段的鏈上。(forword|output|postrouting) 

   擴展匹配:

     隱式擴展:

       若限定-p udp  --dport

                     --sport

       若限定-p tcp  --dport

                     --sport

                     --tcp-flags 檢查tcp鏈接的標志位       包括這些(URG,ACK,SYN,FIN,RST,PSH,ALL,NONE)。

           --syn  匹配第一次握手syn=1的狀態(tài),也可寫為

                    --tcp-flags ACK,SYN,FIN,RST SYN

      若限定-p icmp  --icmp-flags

     顯示擴展:

        -m state

        -m muliport

特別說明:

iptables雖然也有服務腳本,但是它并不是服務,腳本的作用是把寫入的規(guī)則全部啟用。

服務腳本在 /etc/rc.d/init.d/iptables。

腳本配置文件  /etc/sysconfig/iptables-config。

規(guī)則保存位置  /etc/sysconfig/iptables。

簡單實例:

(1)接受來自指定IP地址和指定端口的流入的數(shù)據(jù)包:(放行ssh遠程連接)

 #iptables -A  INPUT  -s   192.168.1.0/24 -d 192.168.1.104  -p tcp --dport 22  -j ACCEPT

 #iptables -A  OUTPUT -s   192.168.1.105 -d 192.168.1.0/24 -p tcp --sport 22  -j ACCEPT

(2)只接受來自指定端口(服務)的數(shù)據(jù)包:

#iptables -D INPUT --dport 80 -j DROP

(3)允許轉發(fā)所有到本地(198.168.10.13)smtp服務器的數(shù)據(jù)包:

#iptables -A FORWARD -p tcp -d 198.168.10.13 --dport smtp -i eth0 -j ACCEPT

(4)允許轉發(fā)所有到本地的udp數(shù)據(jù)包(諸如即時通信等軟件產(chǎn)生的數(shù)據(jù)包):

#iptables -A FORWARD -p udp -d 198.168.80.0/24 -i eth0 -j ACCEPT

(5)拒絕發(fā)往WWW服務器的客戶端的請求數(shù)據(jù)包:

#iptables -A FORWARD -p tcp -d 198.168.80.11 --dport www -i eth0 -j REJECT

(6)允許目的為指定端口的tcp數(shù)據(jù)包進入:

#iptables -A INPUT -p tcp -m multiport --destination-port 21,53,80,25,110 ACCEPT

(7)允許來源為指定端口的tcp數(shù)據(jù)包進入:

#iptables -A INPUT -p tcp -m multiport --source-port 21,53,80,25,110 ACCEPT

(8)丟掉SYN和ACK標志位置位的數(shù)據(jù)包:

#iptables -A INPUT-p tcp --tcp-flags ALL SYN,ACK DROP

感謝各位的閱讀!關于“IPTABLS命令怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI