1. 程式人生 > >Linux添加防火墻、iptables的安裝和配置(親測)

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

accept verbose conf inpu wall ron -h 數據流 ack

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

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