使用者工具

網站工具


linux:security:netfilter

NetFilter防火牆(未完成...)

先正名:NetFilter就是俗稱的iptable。事實上,iptable只是Linux防火牆的一個介面,真正幕後運作是以Kernel-Base的NetFilter,它是Linux kernel的一部分,因此執行效能是當然很好。

看圖說故事:

圖片來源:RedHat - Security Guide

  • chain:就是圖中藍色部分。

iptables Syntax

  • 往下新增規則 iptables -t [filter|nat|mangle] -A CHAIN <rule> -j <ACCEPT|DROP|REJECT>
  • 指定在第幾筆往上插入規則 iptables -t [filter|nat|mangle] -I CHAIN number <rule> -j <ACCEPT|DROP|REJECT>
  • 指定刪除第幾筆規則 iptables -D CHAIN number
  • 刪除指定CHAIN的所有規則 iptables -F CHAIN

iptables 之 rule Syntax

  • 來源ip或網域:
    -s 192.168.1.55 
    或 -s 192.168.1.0/24
  • 目地ip或網域:
    -d 192.168.1.55
    或 -d 192.168.0.0/24
  • udp/tcp 及來源阜口及目的阜口
    -p <udp|tcp> --dport portNmuber 或 -p <udp|tcp> --sport portnumber
  • icmp
    -p icmp --icmp-type  icmp類型
  • 進出介面
    -i eth0 (從哪個介面進來)  或  -o eth0 (從哪個介面出去)
  • 連線追蹤
    -m state --state <NEW|ESTABLISHED|RELATED|INVALID>
    NEW 建立連線的狀態
    ESTABLISHD 已成功連線的狀態
    RELATED   封包是與我們主機發送出去的封包有關 ; 常和 ESTABLISHD,RELATED 一起運用
    INVAL  無效的封包,例如資料破損的封包狀態

Table與Chain關係

網路封包首先必須經過mangle table,nat table,最後才是filter table

  1. filter(iptable預設)
    • INPUT
      處理流入的封包。
    • FORWARD
      處理流入的封包,經防火牆router table判斷非本機所要封包,轉送出去。
    • OUTPUT
      處理流出的封包。
  2. nat
    • PREROUTING
      處理流入的封包,未經防火牆路由之前。與DNAT有關:遠端連線者,存取防火牆內部LAN的伺服器過程
    • OUTPUT
      處理未經防火牆路由之前的流出封包
    • POSTROUTING
      處理防火牆路由之後的流出封包。與SNAT有關:就是典型家用ip分享器(router)讓內部網路都能連上網路的功用
  3. mangle(可以隨意改變封包表頭)
    • PREROUTING
    • FORWARD
    • INPUT
    • POSTROUTING

參考資料

linux/security/netfilter.txt · 上一次變更: 2013/07/06 01:28 (外部編輯)