防護墻服務

iptables的基本認識
       Netfilter組件:
內核空間,集成在linux內核中
擴展各種網絡服務的結構化底層框架
內核中選取五個位置放了五個Hook(勾子)function(INPUT、OUTPUT、FORWARD、PREROUTING、POST ROUTING),而這五個hoot function 向用戶開放,用戶可以通過一個命令工具(iptables)向其寫入規則。

由信息過濾表(table)組成,包含控制IP包處理的規則集(rules),規則被分組放在鏈(chain)上。

三種報文流向:

流入本機:PREROUTING —> INPUT —>用戶空間進程
流出本機:用戶空間進程 —>OUTPUT —>POSTROUTING
轉發:PREROUTING —> FORWARD –> POSTROUTING

防火墻工具

       iptables:

命令行工具,工作在用戶空間
用來編寫規則,寫好的規則被送往netfilter,告訴內核如何去處理信
息包 .
      firewalld:
CentOS 7引入了新的前端管理工具
管理工具:
firewall-cmd 命令行
firewall-config 圖形
iptables的組成
iptables由四個表和五個鏈以及一些規則組成
四個表table:filter, nat, mangle, raw
filter表:過濾規則表,根據預定義的規則過濾符合條件的數據包 ;
nat表:network address translation 地址轉換規則表
mangle:修改數據標記位規則表
Raw:關閉NAT表上啟用的連接跟蹤機制,加快封包穿越防火墻速度
優先級由高到低的順序為:raw–>mangle—>nat–>filter
五個內置鏈chain:

             INPUT OUTPUT FORWARD PREROUTI


Netfilter表和鏈對應關系:
防護墻服務



數據包過濾匹配流程:

防護墻服務



內核中數據包的傳輸過程
內核中數據包的傳輸過程 :

當一個數據包進入網卡時,數據包首先進入PREROUTING鏈, 內核根據

數據包目的IP判斷是否需要轉送出去;

如果數據包就是進入本機的,數據包就會沿著圖向下移動,到達 INPUT

鏈。數據包到達INPUT鏈后,任何進程都會收到它。本 機上運行的程序

可以發送數據包,這些數據包經過OUTPUT鏈 ,然后到達POSTROTING

鏈輸出 ;

如果數據包是要轉發出去的,且內核允許轉發,數據包就會向右 移動,

經過FORWARD鏈,然后到達POSTROUTING鏈輸出。



iptables規則

規則rule:根據規則的匹配條件嘗試匹配報文,對匹配成功的報文根據規
則定義的處理動作作出處理
匹配條件:默認為與條件,同時滿足
基本匹配:IP,端口,TCP的Flags(SYN,ACK等)
擴展匹配:通過復雜高級功能匹配
處理動作:稱為target,跳轉目標。
內建處理動作:ACCEPT,DROP,REJECT,SNAT,DNAT
,MASQUERADE,MARK,LOG…
自定義處理動作:自定義chain,利用分類管理復雜情形
規則要添加在鏈上,才生效;添加在自定義上不會自動生效
鏈chain:
內置鏈:每個內置鏈對應于一個鉤子函數
自定義鏈:用于對內置鏈進行擴展或補充,可實現更靈活的規則組織
管理機制;只有Hook鉤子調用自定義鏈時,才生效.
iptables添加要點
iptables規則添加時考量點:

要實現哪種功能:判斷添加在哪張表上

報文流經的路徑:判斷添加在哪個鏈上

報文的流向:判斷源和目的

匹配規則:業務需要

鏈上規則的次序,即為檢查的次序,因此隱含一定的法則 :

同類規則(訪問同一應用),匹配范圍小的放上面

不同類規則(訪問不同應用),匹配到報文頻率較大的放上面

將那些可由一條規則描述的多個規則合并為一個

設置默認策略

實驗環境準備:

Centos7: systemctl stop firewalld.service

systemctl disable firewalld. service

Centos6:service iptables stop; chkconfig iptables off

iptables命令
規則格式:iptables [-t table] SUBCOMMAND chain [-m matchname [per-match-options]] -j targetname [per-targetoptions]
-t table:
raw, mangle, nat, [filter]默認
SUBCOMMAND:
        1、鏈管理:

-N:new, 自定義一條新的規則鏈

-X:delete,刪除自定義的空的規則鏈

-P:Policy,設置默認策略;對filter表中的鏈而言,其默認策略有:

ACCEPT:接受

DROP:丟棄

REJECT:拒絕

-E:重命名自定義鏈;引用計數不為0的自定義鏈不能夠被重命名,

也不能被刪除.

       2 、查看:

-L:list, 列出指定鏈上的所有規則,本選項須置后

-n:numberic,以數字格式顯示地址和端口號

-v:verbose,詳細信息

-vv 更詳細

-x:exactly,顯示計數器結果的精確值,而非單位轉換后的易讀值

–line-numbers:顯示規則的序號

     常用組合: –vnL
                        –vvnxL –line-numbers
                        -S selected,以iptables-save 命令格式顯示鏈上規則
        3、規則管理:

-A:append,追加

-I:insert, 插入,要指明插入至的規則編號,默認為第一條

-D:delete,刪除

(1) 指明規則序號

(2) 指明規則本身

-R:replace,替換指定鏈上的指定規則編號

-F:flush,清空指定的規則鏈

-Z:zero,置零

     iptables的每條規則都有兩個計數器 :
              (1) 匹配到的報文的個數
              (2) 匹配到的所有報文的大小之和
          chain:PREROUTING,INPUT,FORWARD,OUTPUT, POSTROUTING
匹配條件:
      基本:通用的,PARAMETERS
      擴展:需加載模塊,MATCH EXTENTIONS
        1、基本匹配條件:無需加載模塊,由iptables/netfilter自行提供

[!] -s, –source address[/mask][,…]:源IP地址或范圍

[!] -d, –destination address[/mask][,…]:目標IP地址或范圍

[!] -p, –protocol protocol:指定協議,可使用數字如0(all)

protocol: tcp, udp, icmp, icmpv6, udplite,esp, ah, sctp, mh or

“all“ 參看:/etc/protocols

[!] -i, –in-interface name:報文流入的接口;只能應用于數據 報文流入

環節,只應用于INPUT、FORWARD、PREROUTING鏈

[!] -o, –out-interface name:報文流出的接口;只能應用于數 據報文流

出的環節,只應用于FORWARD、OUTPUT、POSTROUTING鏈

      2 、擴展匹配條件:需要加載擴展模塊(/usr/lib64/xtables/*.so) ,方可生效
          查看幫助 man iptables-extensions
       (1)隱式擴展:在使用-p選項指明了特定的協議時,無需再用-m選項 指明
                擴展模塊的擴展機制,不需要手動加載擴展模塊。
     tcp協議的擴展選項:

[!] –source-port, –sport port[:port]:匹配報文源端口, 可為端口范圍

[!] –destination-port,–dport port[:port]:匹配報文目標 端口,可為范圍

[!] –tcp-flags mask comp mask 需檢查的標志位列表,用,分隔。

例如: SYN,ACK,FIN,RST comp 在mask列表中必須為1的標志

位列表,無指定則必須 為0,用,分隔。

          允許訪問SSH服務:

            防護墻服務

          

         允許訪問HTTPD服務的防火墻策略
防護墻服務


          示例:

–tcp-flags SYN,ACK,FIN,RST SYN 表示要檢查的標志位為SYN,ACK,FIN,RST四個,其中SYN必須為1,余 下的必須為0

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

–tcp-flags ALL ALL

–tcp_flags ALL NONE

[!] –syn:用于匹配第一次握手

相當于:–tcp-flags SYN,ACK,FIN,RST SYN

       udp

[!] –source-port, –sport port[:port]:匹配報文的 源端口;

可以是端口范圍

[!] –destination-port,–dport port[:port]:匹配報 文的目標端口;

可以是端口范圍

      icmp

[!] –icmp-type {type[/code]|typename}

type/code

0/0 echo-reply icmp應答

8/0 echo-request icmp請求

(2)顯式擴展:必須使用-m選項指明要調用的擴展模塊的擴展 機制,要手動

加載擴展模塊:

[-m matchname [per-match-options]]

防護墻服務

防護墻服務





原創文章,作者:shenjialong,如若轉載,請注明出處:http://www.www58058.com/85174

(0)
shenjialongshenjialong
上一篇 2017-08-20
下一篇 2017-08-21

相關推薦

  • LVS負載均衡WordPress

    LVS:        LVS是四層協議的開源負載均衡器,工作在netfilter框架INPUT鏈中,它根據不同的算        法將用戶的請求調度給后端服務器,它不受sockt套接字文件限制,性能比nginx七層       …

    Linux干貨 2017-05-18
  • linux學習第三天

            Linux學習第三天 Bash特性及文件系統介紹 cat /etc/shells cat命令進入/etc/shells/下面查看有幾種shell FHS (文件系統遵循FHS定義)     /bin  供所有用戶使用基本的用戶命令程序文件   …

    Linux干貨 2016-10-18
  • 計算機與操作系統

    計算機系統=Hardware+Software Linux操作系統=GNU/kernel+程序 (user space) ————– apps   shell    (人機交互接口) lib call(半層)  (kernel space) —&#…

    Linux干貨 2017-02-14
  • N26-博客作業-week3

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 ~]# who | cut -d” ” -f1 | sort -u 2、取出最后登錄到當前系統的用戶的相關信息。 ~]# last -n 1 3、取出當前系統上被用戶當作其默認shell的最多的那個shell。 ~]# cut /etc/pas…

    Linux干貨 2017-02-19
  • 從新開始,堅持記錄

    從新開始,從心開始,記錄自己的學習,不逼自己一把,永遠不知道自己的潛力。

    Linux干貨 2016-12-05
  • 軟raid實現raid5

    現在Linux系統有磁盤情況如下 現在從sda,sdb,sdc,sdd 分區取出10G 的空間做raid5. 第一步:建立分區 現在執行fdisk ?/dev/sd* 命令分區沖這四個磁盤劃分10G分區 分別是sda6,sdb1,sdc1,sdd1。 具體操作如下: 分區完之后,執行#partx -a /dev/sd* ?讓分區生效。具體效果如下: 分區完成…

    2017-12-06
欧美性久久久久