Linux添加防火牆、iptables的安裝和配置(親測)


 

iptables基礎


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

規則鏈:


1.INPUT    ——進來的數據包應用此規則鏈中的策略
2.OUTPUT     ——外出的數據包應用此規則鏈中的策略
3.FORWARD  ——轉發數據包時應用此規則鏈中的策略
4.PREROUTING  ——對數據包作路由選擇前應用此鏈中的規則
(記住!所有的數據包進來的時侯都先由這個鏈處理)
5.POSTROUTING ——對數據包作路由選擇后應用此鏈中的規則
(所有的數據包出來的時侯都先由這個鏈處理)

-A 在指定鏈的末尾添加(append)一條新的規則 -D 刪除(delete)指定鏈中的某一條規則,可以按規則序號和內容刪除 -I 在指定鏈中插入(insert)一條新的規則,默認在第一行添加 -R 修改、替換(replace)指定鏈中的某一條規則,可以按規則序號和內容替換 -L 列出(list)指定鏈中所有的規則進行查看 -E 重命名用戶定義的鏈,不改變鏈本身 -F 清空(flush) -N 新建(new-chain)一條用戶自己定義的規則鏈 -X 刪除指定表中用戶自定義的規則鏈(delete-chain) -P 設置指定鏈的默認策略(policy) -Z 將所有表的所有鏈的字節和數據包計數器清零 -n 使用數字形式(numeric)顯示輸出結果 -v 查看規則表詳細信息(verbose)的信息 -V 查看版本(version) -h 獲取幫助(help)


規則表之間的優先順序:

Raw——mangle——nat——filter
規則鏈之間的優先順序(分三種情況):

第一種情況:入站數據流向

       從外界到達防火牆的數據包,先被PREROUTING規則鏈處理(是否修改數據包地址等),之后會進行路由選擇(判斷該數據包應該發往何處),如果數據包 的目標主機是防火牆本機(比如說Internet用戶訪問防火牆主機中的web服務器的數據包),那么內核將其傳給INPUT鏈進行處理(決定是否允許通 過等),通過以后再交給系統上層的應用程序(比如Apache服務器)進行響應。

第二沖情況:轉發數據流向

       來自外界的數據包到達防火牆后,首先被PREROUTING規則鏈處理,之后會進行路由選擇,如果數據包的目標地址是其它外部地址(比如局域網用戶通過網 關訪問QQ站點的數據包),則內核將其傳遞給FORWARD鏈進行處理(是否轉發或攔截),然后再交給POSTROUTING規則鏈(是否修改數據包的地 址等)進行處理。

第三種情況:出站數據流向
       防火牆本機向外部地址發送的數據包(比如在防火牆主機中測試公網DNS服務器時),首先被OUTPUT規則鏈處理,之后進行路由選擇,然后傳遞給POSTROUTING規則鏈(是否修改數據包的地址等)進行處理。

 

 

iptables 的安裝與配置

 

由於centos7默認是使用firewall作為防火牆,下面介紹如何將系統的防火牆設置為iptables。

#停止firewall 
systemctl stop firewall.service

#禁止firewall開機啟動 
systemctl disable firewall.service

 

#安裝iptables 
yum install iptables-services

 

 

#編輯防火牆文件 (建議都在配置文件配置,不要命令配置
vi /etc/sysconfig/iptables 
#添加80和3306端口 等等(自己配置)
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT   
       #80端口開放

-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT    #3306端口開放

-I INPUT -s 113.106.93.110 -p tcp --dport 8089 -j DROP                         #禁止指定IP訪問 8089

-I INPUT -s 113.106.93.110 -p tcp --dport 8080 -j ACCEPT                    #開放固定ipIP訪問 8080

 

#重啟防火牆使配置文件生效  
systemctl restart iptables.service

#設置iptables防火牆為開機啟動項 
systemctl enable iptables.service

 

service iptables  start          #啟動服務

service iptables  stop     #停止服務

service iptables  restart  #重啟服務

 

關閉SELINUX 
vi /etc/selinux/config 
 #注釋以下配置 
 SELINUX=enforcing 
 SELINUXTYPE=targeted 
  
 #增加以下配置 
 SELINUX=disabled 
  
 #使配置立即生效 
 setenforce 0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM