centos 防火牆與其一些規則設定

來源:互聯網
上載者:User

標籤:centos 防火牆 規則配置

開頭:資料來源網上搜尋,整理成自己的筆記形式

一.IPTABLES服務狀態的檢查:

  命令:service iptables status

情形1:防火牆服務已安裝,但還未運行

[[email protected] ~]# service iptables status 

iptables: Firewall is not running.

情形2:表示防火牆服務已安裝且已開啟,但還是未配置狀態。

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/82/B6/wKiom1de2bTxloGFAAAk7E8EJj0979.png" title="QQ圖片20160614000304.png" alt="wKiom1de2bTxloGFAAAk7E8EJj0979.png" />

情形3:表示防火牆服務尚未安裝

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/82/B4/wKioL1de29XC8sruAAAPNpOynIA219.png" title="QQ圖片20160614000304.png" alt="wKioL1de29XC8sruAAAPNpOynIA219.png" />

二.IPTABLES服務的安裝與開啟等維護方式:

  1. 安裝:(此處以yum為例) yum install -y iptables

2.開啟: service iptables start  與此相應的關閉: service iptables stop

三.IPTABLES的基礎配置知識

I:常見的參數:

-A  附加在末尾

-I  插入指定位置

-d  目的地址

-D  刪除某條規則        比如:iptables -D INPUT 8

-n  只顯示IP地址和連接埠號碼,不將ip解析為網域名稱  

-R  替換某條規則   比如: iptables -R INPUT 1 -s 192.168.0.1 -j DROP 把第一條規則替換為 指定源IP:192.168.0.1 不允許登入

-i  指定網卡名稱如eth0    #指定進入介面,要在INPUT鏈上定義

-o  指定網卡名稱如eth0    #指定傳出介面,要在OUTPUT鏈上定義

-m 模組調用   模組選項載入iptables功能模組

-L  查看規則的配置資訊  常與 --line-numbers 選項連用, 顯示規則的序號資訊

II.常見的操作:

  1. 清空所有規則: iptables -F

  2. 情況自訂的所有規則:  iptables -X

  3. 屏蔽IP段:

  形如:

    #屏蔽整個段(A類地址)即從192.0.0.1到192.255.255.254,則添加以下規則。

    -I INPUT -s 192.0.0.0/8 -j DROP

    #封IP段(B類地址)即從192.168.0.1到192.168.255.254,則添加以下規則。

    -I INPUT -s 192.168.0.0/16 -j DROP

    #封IP段(C類地址)即從192.168.200.1到192.168.200.254,則添加以下規則。

    -I INPUT -s 192.168.200.0/24 -j DROP

4.指定物理地址訪問:-m mac --mac-source

    形如 iptables -A INPUT -m mac --mac-source aa:bb:cc:dd:ee:ff -j ACCEPT

5.匹配資料包的欄位內容: -mstring --string "想要匹配的資料包中字串"

    形如:

    iptables -A FORWARD -p udp --dport 53 -m string --string "tencent"--algo kmp -j DROP

    #通過UDP協議並匹配關鍵字

    #--algo指定字串模式比對策略,支援KMP和BM兩種字串搜尋演算法,二者中任意指定一個即可。

6.網口轉寄配置

對於用作防火牆或網關的伺服器,一個網口串連到公網,其他網口的包轉寄到該網口實現內網向公網通訊,假設eth0串連內網,eth1串連公網,配置規則如下:

    iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

7.連接埠轉寄配置

  對於連接埠,我們也可以運用iptables完成轉寄配置:

    iptables -t nat -A PREROUTING -p tcp -d 192.168.0.1 --dport 80 -j DNAT --to 192.168.1.1:8080

以上命令將源IP:192.168.0.1的80連接埠的包轉寄到192.168.1.1的8080連接埠

8.指定網卡同時配置連續連接埠規則:iptables -A INPUT -i eth0 -p tcp -s 192.168.140.0/24 --dport 137:139 -j ACCEPT #允許訪問137到139連接埠 備忘:多連接埠的配置另外一種方式:通過逗號分隔連接埠。如 iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -j ACCEPT

四.規則儲存:

    1.service iptables save 或 iptables-save

      另存新檔的方式: service iptables save > /指定目錄

             iptables-save > /指定目錄

      備忘: 防火牆規則在沒儲存之前,重啟後是不生效的

    2.#添加到自啟動chkconfig
     chkconfig iptables on 

    3.還原規則的方式:

     service iptables start   或 iptables-restore < /規則儲存路徑

      備忘:注意規則表的儲存方式與還原方式是對應的,採用了什麼方式的儲存,就需要用什麼方式進行還原。

五.進階知識

  1. 規則表知識:

    五個規則表nat,mangle ,filter,raw,security 通過-t選項指定,預設為 filter。規則表的功能介紹:

    nat :擁有 Prerouting 和 postrouting 兩個規則鏈,主要功能為進行一對一、一對多、多對多等網址轉譯工作(SNATDNAT),由於轉譯工作的特性,需進行目的地網址轉譯的封包,就不需要進行來源網址轉譯,反之亦然,因此為了提升改寫封包的速率,在防火牆運作時,每個封包只會經過這個規則表一次。如果我們把封包過濾的規則定義在這個資料表裡,將會造成無法對同一包進行多次比對,因此這個規則表除了作網址轉譯外,請不要做其它用途。
    mangle:擁有 Prerouting、FORWARD 和 postrouting 三個規則鏈。
    除了進行網址轉譯工作會改寫封包外,在某些特殊應用可能也必須去改寫封包(TTL、TOS)或者是設定 MARK(將封包作記號,以進行後續的過濾),這時就必須將這些工作定義在 mangle 規則中,由於使用率不高,我們不打算在這裡討論 mangle 的用法。
    filter:這個規則表是預設規則表,擁有 INPUT、FORWARD 和 OUTPUT 三個規則鏈,這個規則表顧名思義是用來進行封包過濾的處理動作(例如:DROP、 LOG、 ACCEPT 或 REJECT),我們會將基本規則都建立在此規則表中。

    nat: 用於佈建封包,raw 中的資料包不會被系統跟蹤。

    security: 用於強制存取控制網路規則。

2.規則鏈:

    表由鏈組成,鏈是一些按順序排列的規則的列表。

    iptables一共有INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING五個規則鏈。對應的規則鏈可表述為:

    INPUT:網路資料包流向伺服器

    OUTPUT:網路資料包從伺服器流出

    FORWARD:網路資料包經伺服器路由

    PREROUTING, (prerouting, pre-route,預路由, 到達前)網路資料包到達伺服器時可以被修改

    POSTROUTING, (postrouting, post-route,流出前) 網路資料包在即將從伺服器發出時可以被修改

3.規則表中的常用的處理動作:ACCEPT、REJECT、DROP、REDIRECT、MASQUERADE、LOG、DNAT、SNAT、MIRROR、QUEUE、RETURN、MARK:

    ACCEPT: 將封包允許存取,進行完此處理動作後,將不再比對其它規則,直接跳往下一個規則鏈(natostrouting)。
    REJECT: 攔阻該封包,並傳送封包通知對方,可以傳送的封包有幾個選擇:ICMP port-unreachable、ICMP echo-reply 或是tcp-reset(這個封包會要求對方關閉聯機),進行完此處理動作後,將不再比對其它規則,直接 中斷過濾程式。簡單樣本如下:

    iptables -A FORWARD -p TCP --dport 22 -j REJECT --reject-with tcp-reset

    DROP: 丟棄封包不予處理,進行完此處理動作後,將不再比對其它規則,直接中斷過濾程式。

    REDIRECT: 將封包重新導向到另一個連接埠(PNAT),進行完此處理動作後,將 會繼續比對其它規則。這個功能可以用來實作通透式porxy 或用來保護 網頁伺服器。例如:

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080    

    LOG: 將封包相關訊息紀錄在 /var/log 中,詳細資料可以查閱 /etc/syslog.conf 組態檔,進行完此處理動作後,將會繼續比對其規則。例如:
iptables -A INPUT -p tcp -j LOG --log-prefix "INPUT packets"
    SNAT: 改寫封包來源 IP 為某特定 IP 或 IP 範圍,可以指定 port 對應的範圍,進行完此處理動作後,將直接跳往下一個規則(mangleostrouting)。對於snat,不管是幾個地址,必須明確的指定要snat的IP。假如我們的電腦使用ADSL撥號方式上網,那麼外網IP是動態,這時候我們可以考慮使用MASQUERADE 相應的範例如下:
iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 194.236.50.155-194.236.50.160:1024-32000

iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j MASQUERADE 

    MASQUERADE:改寫封包來源 IP 為防火牆 NIC IP,可以指定 port 對應的範圍,進行完此處理動作後,直接跳往下一個規則(mangleostrouting)。這個功能與 SNAT 略有不同,當進行 IP 偽裝時,不需指定要偽裝成哪個 IP,IP 會從網卡直接讀,當使用撥接連線時,IP 通常是由 ISP 公司的 DHCP 伺服器指派的,這個時候 MASQUERADE 特別有用。範例如下:
iptables -t nat -A POSTROUTING -p TCP -j MASQUERADE --to-ports 1024-31000     

    DNAT: 改寫封包目的地 IP 為某特定 IP 或 IP 範圍,可以指定 port 對應的範圍,進行完此處理動作後,將會直接跳往下一個規煉(filter:input 或 filter:forward)。範例如下:
iptables -t nat -A PREROUTING -p tcp -d 15.45.23.67 --dport 80 -j DNAT --to-destination
192.168.1.1-192.168.1.10:80-100
    MIRROR: 鏡射封包,也就是將來源 IP 與目的地 IP 對調後,將封包送回,進行完此處理動作後,將會中斷過濾程式。
    QUEUE: 中斷過濾程式,將封包放入隊列,交給其它程式處理。透過自行開發的處理常式,可以進行其它應用,例如:計算聯機費.......等。
    RETURN:結束在目前規則煉中的過濾程式,返回主規則煉繼續過濾,如果把自訂規則煉看成是一個子程式,那麼這個動作,就相當提早結束子程式並返回到主程式中。
    MARK: 將封包標上某個代號,以便提供作為後續過濾的條件判斷依據,進行完此處理動作後,將會繼續比對其它規則。範例如下:

iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 2

4.參考連結:

    I:http://beginman.cn/python/2015/09/08/linux-firewall/            II:https://wiki.archlinux.org/index.php/Iptables_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

    III:https://wiki.centos.org/zh/HowTos/Network/IPTables     

本文出自 “拾掇知識的片段” 部落格,請務必保留此出處http://wyh550.blog.51cto.com/10089932/1789371

centos 防火牆與其一些規則設定

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.