Iptables 詳解

一、Iptables說明

1.0 概述

netfilter/iptables :

IP信息包過濾系統(tǒng),實際上是由兩個組件netfilter和iptables組成

netfilter/iptables 關(guān)系:

netfilter組件也稱內(nèi)核空間,是內(nèi)核的一部分,由一些包過濾表組成的規(guī)則集來對信息包進(jìn)行過濾處理.

iptables組件稱為用戶空間, 它是一種可以通過插入、修改、刪除包過濾表中的規(guī)則的一種工具。配置完成后立即生效,內(nèi)置了filter、nat、mangle三張表。

iptables 三張表

filter: 負(fù)責(zé)過濾數(shù)據(jù)包,影響的規(guī)則鏈:input, output,forword
nat: 負(fù)責(zé)網(wǎng)絡(luò)地址的轉(zhuǎn)換,影響的規(guī)則鏈:prerouting, postrouting, output
mangle: 負(fù)責(zé)修改數(shù)據(jù)包內(nèi)容,可以用來做流量整形、數(shù)據(jù)包標(biāo)識等。影響的規(guī)則鏈:input, output,forword, prerouting, postrouting

raw 用于處理異常,包括的規(guī)則鏈: prerouting, output, 一般用不到。

iptables 五個鏈

input: 處理數(shù)據(jù)包目標(biāo)地址是本機的規(guī)則
output: 處理本機發(fā)送的數(shù)據(jù)包,即包源地址是本機的規(guī)則
forward: 匹配流經(jīng)過本機的數(shù)據(jù)包
prerouting: 用來修改目標(biāo)地址,用來做DNAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)例:端口映射
postrouting: 用來修改源地址,用來做SNAT(源地址轉(zhuǎn)換)例:內(nèi)網(wǎng)通過路由器NAT實現(xiàn)內(nèi)網(wǎng)多個PC公用一個公網(wǎng)IP地址進(jìn)行上網(wǎng)。

1.1 數(shù)據(jù)過濾流程

二、Iptables語法

語法結(jié)構(gòu):

iptables [-t 表名] 管理選項 [鏈名] [匹配條件] [-j 動作]

[-t 表名]:默認(rèn)為filter表
[鏈名]: 默認(rèn)所有鏈
[匹配條件]: 如需要所有ip生效可不填寫或填入:0:0:0:0/0

Iptables-cmd.png

管理選項

-A  在指定鏈的末尾添加(append)一條新的規(guī)則
-I  在指定鏈中插入(insert)一條新的規(guī)則,默認(rèn)在第一行添加
-D  刪除(delete)指定鏈中的某一條規(guī)則,可以按規(guī)則序號和內(nèi)容刪除
    需要確保鏈中的存在這條規(guī)則,否則報錯
-R  替換(replace)指定鏈中的某一條規(guī)則,可以按規(guī)則序號和內(nèi)容替換
-E  重命名用戶定義的鏈,不改變鏈本身
-F  清空(flush),不影響-P默認(rèn)規(guī)則
-N  新建(new-chain)一條用戶自己定義的規(guī)則鏈
-X  刪除指定表中用戶自定義的規(guī)則鏈(delete-chain)
-P  設(shè)置指定鏈的默認(rèn)策略(policy)
    iptables -P INPUT DROP  ==>修改默認(rèn)規(guī)則為DROP
-Z 將所有表的所有鏈的字節(jié)和數(shù)據(jù)包計數(shù)器清零
-[vn]L  列出(list)指定鏈中所有的規(guī)則進(jìn)行查看,輸出樣式可追加:
    -n  使用數(shù)字形式(numeric)顯示輸出結(jié)果
    -v  查看規(guī)則表詳細(xì)信息(verbose)的信息
    例:iptables -nvL

匹配條件

1.按網(wǎng)絡(luò)接口匹配

  1. -i eth0
    匹配是否從網(wǎng)絡(luò)接口eth0進(jìn)來
  2. -o eth0
    匹配是否往網(wǎng)絡(luò)接口eth0流出
  3. -s <ip>
    匹配是來自<ip>的數(shù)據(jù) ip: 來源地址
  4. -d <ip>
    匹配目的地址

2.按網(wǎng)絡(luò)協(xié)議匹配

  1. -p [tcp|udp|icmp]
    匹配網(wǎng)絡(luò)協(xié)議

3.按源端口匹配

  1. --sport <源端口號> 注: 可以是端口,也可是范圍
    例: --sport 1000 匹配源端口是1000的數(shù)據(jù)包
    --sport 1000:3000 匹配源端口是1000~3000的數(shù)據(jù)包(含1000,3000)
  2. --dport <目的端口號>

動作

  • ACCEPT 允許數(shù)據(jù)包通過
  • DROP 直接丟棄數(shù)據(jù)包,不給任何回應(yīng)信息
  • REJECT 拒絕數(shù)據(jù)包通過,必要時會給數(shù)據(jù)發(fā)送端一個響應(yīng)的信息。
  • MASQUERADE 偽裝一個公網(wǎng)IP
  • SNAT 源地址轉(zhuǎn)換
  • 例: iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT 1.1.1.1 => 將內(nèi)網(wǎng)ip轉(zhuǎn)換成公網(wǎng)ip(路由器原理)
  • LOG在/var/log/messages文件中記錄日志信息,然后將數(shù)據(jù)包傳遞給下一條規(guī)則

附加模塊 -m

  1. 按包狀態(tài)匹配 : -m mac --mac-source <mac地址>
  2. 按來源mac地址匹配
  3. 按包速率: -m limit --limit <速率>
  4. 多端口匹配: -p tcp -m multiport --dport <ip1>,<ip2>,<ip3> 必須與-p一起使用
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • iptables簡介 netfilter/iptables(簡稱為iptables)組成Linux平臺下的包過濾防...
    yshenhn閱讀 113,814評論 2 78
  • iptabels是與Linux內(nèi)核集成的包過濾防火墻系統(tǒng),幾乎所有的linux發(fā)行版本都會包含iptables的功...
    隨風(fēng)化作雨閱讀 4,988評論 1 16
  • iptables俗稱防火墻,或許我們已經(jīng)不在陌生,但是作為openstack基礎(chǔ),這里還是對其做一些補充,了解更多...
    ximitc閱讀 1,866評論 0 8
  • (本文源于轉(zhuǎn)載或摘抄整理) 一:前言 防火墻,其實說白了講,就是用于實現(xiàn)Linux下訪問控制的功能的,它分為硬件的...
    JackyTsuuuy閱讀 9,037評論 1 6
  • 一. 什么是防火墻 防火墻,就是用于實現(xiàn)Linux下訪問控制的功能的,它分為硬件的或者軟件的防火墻兩種。無論是在哪...
    InnocenceYWQ閱讀 1,125評論 0 3

友情鏈接更多精彩內(nèi)容