1. 程式人生 > >1. 網路基礎

1. 網路基礎

一. 網路基礎

OSI七層網路模型

應用層                  網路服務與終端使用者的一個介面
表示層                  資料的表示、安全、壓縮
會話層                  建立、管理、終止會話
傳輸層                  定義傳輸層的協議埠號,以及流控和差錯校驗
網路層                  進行邏輯地址定址,實現不同網路之間的路徑選擇
資料鏈路層               建立邏輯連線、進行硬體地址定址、差錯校驗
物理層                  建立、維護、斷開物理連線


二. TCP/IP協議基礎


三. iptables基礎原理

Linux防火牆概述

Linux系統的防火牆功能是由核心實現的
    - 2.0版本的核心中, 包過濾機制是ipfw, 管理工具是ipfwadm
    - 2.2版本的核心中, 包過濾機制是ipchain, 管理工具是ipchains
    - 2.0版本的核心中, 包過濾機制是netfilter, 管理工具是iptables
    

netfilter
    - 位於Linux核心中的包過濾防火牆功能體系
    - 稱為Linux防火牆的"核心態"
    

iptables
    - 位於/sbin/iptables, 是用來管理防火牆的命令列工具
    - 為防火牆體系提供過濾規則/策略, 決定如何過濾或處理到達防火牆主機的資料包
    - 稱為Linux防火牆的"使用者態"
    
                    - 習慣上, 以上兩種稱呼都可以代表Linux防火牆


iptables的四表五鏈

規則鏈

規則鏈
    - 規則的作用在於對資料包進行過濾或處理, 根據處理時機的同, 各種規則被組織在不同的“鏈中”
    - 規則鏈是防火牆規則/策略的集合
    
預設的5種規則鏈
    - INPUT          處理入站資料包
    - OUTPUT         處理出站資料包
    - FORWARD        處理轉發資料包
    - PREROUTING     選擇路由前處理資料包
    - POSTROUTING    選擇路由後處理資料包

規則表

規則表
    - 具有某一類相似用途的防火牆規則, 按照不同處理時機區分到不同的規則鏈以後, 被歸置到不同的"表"中
    - 規則表是規則鏈的集合

預設的4個規則表
    - raw表           確定是否對該資料包進行狀態跟蹤
    - mangle表        為資料包設定標記
    - nat表           修改資料包中的源、目的IP地址或埠
    - filter表        確定是否放行該資料包(過濾)

四. iptables常見命令

iptables命令的語法格式
    - iptables [-t 表名] 管理選項 [鏈名] 條件匹配 -j 執行動作

預設原則
    - 不指定表名時, 預設表示filter表
    - 不指定鏈名時, 預設表示表內所有鏈

例項1

本機ip為   192.168.184.10
現在想禁止ip為 192.168.184.20  的機器通過 ssh 連線本機

步驟如下:

iptables  -h     // 可以先看看iptables的用法

iptables -t filter  -A INPUT  -s 192.168.184.20 -p tcp  --dport 22 -j DROP
        1. 在filter表  INPUT鏈上 加規則(-A增加 -D刪除)
        2. -p 指定協議   -dport  在哪個埠
        3. -j DROP  丟棄/拒絕
        
         
iptables -L -n      
    -L  list
    -n  顯示詳細資訊
    

得到結果如下 :
Chain  INPUT   (policy ACCEPT)
target  prot  opt  source             destination
DROP    tcp   --   192.168.184.20      0.0.0.0/0   tcp dpt:22

Chain  FORWARD (policy ACCEPT)
target  prot  opt  source             destination

Chain  OUTPUT   (policy ACCEPT)
target  prot  opt  source             destination


例項2

本機ip  192.168.184.30
想要 禁止ip為  192.168.184.10 的機器 訪問其web服務  即禁止訪問80埠

命令如下

iptables -A INPUT  -s 192.168.184.10 -p tcp  --dport 80 -j DROP

iptables -L -n

結果如下

Chain  INPUT   (policy ACCEPT)
target  prot  opt  source             destination
DROP    tcp   --   192.168.184.10      0.0.0.0/0   tcp dpt:80

Chain  FORWARD (policy ACCEPT)
target  prot  opt  source             destination

Chain  OUTPUT   (policy ACCEPT)
target  prot  opt  source             destination

測試

在ip為 192.168.184.10的主機中  輸入 curl http://192.168.184.30:80
發現無法訪問