歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> iptables常用命令和實例復習

iptables常用命令和實例復習

日期:2017/2/28 14:51:14   编辑:Linux教程

一、IPTABLES的簡介

1. 簡介

IPTABLES/netfilter(http://www.netfilter.org) 其實大多數人都認為iptables是linux系統上的一個服務,其實不是的. 我們linux系統上的服務比如說httpd服務在啟動起來的時候,是不是在後台啟動一個相應的服務進程且在網卡上監聽一個端口,而iptables卻不然,那麼iptables到底是什麼呢?其實iptables只是一個工具而已.我們的linux系統有用戶空間,和內核空間,而iptables有兩個組件,一是netfilter, netfilter組件只是用來過濾防火牆規則,及作出相應的處理機制的,它是集成在內核中的一部分,也就是說它是工作在內核空間的,那麼大家都知道用戶是不可能直接跟內核空間打交道的,那麼netfilter只是工作在內核空間對規則進行處理的,那麼規則從何而來呢? 是從iptables的第二個組件iptables而來的,我們上面說了IPTABLES只是一個工作在用戶空間的一個工具而已,那麼用戶就使用這個工具的一個命令來跟工作在內核空間中的netfiter組件打交道的.其實IPTABLES防火牆就是這樣的.

二、IPTABLES的表和鏈

IPTABLES常用的表和鏈有三個filter表 nat表 mangle表, 和五個鏈 INPUT鏈 OUTPUT鏈 FORWARE鏈 POSTROUTING鏈 PREROUTING鏈, 下面來介紹下它們的各個功能呢個功能,

1.filter表

filter表主要是過濾數據包的,IPTABLES幾乎所有的數據包過濾都在此表中實現的,filter表也是IPTABLES中默認的表,此表中還包含三個鏈如下

1.1 INPUT鏈

過濾所有的目標地址是本機的數據包

1.2 OUTPUT鏈

過濾所有從本機出去的數據包

1.3 FORWORD鏈

過濾所有從本機路過的數據包

2.nat表

nat表主要是用於做網絡地址轉換的(NAT) 在IPTABLES中可以做SNAT(源地址轉換),DNAT(目標地址轉換),PNAT(即跟SNAT差不多,不一樣的是SNAT的源地址是固定的,而PNAT的源地址是不固定的,當使用ppp 或pppoe的方式連接互聯網的時候一般適應這中) 。 nat表中包含兩個鏈如下

2.1 PREROUTING鏈

在數據包到達防火牆的時候改變目標地址 DNAT應用於此鏈.

2.2 OUTPUT鏈

可以改變本地產生的數據包的目標地址

2.3 POSTROUTING鏈

在數據包離開防火牆的時候改變源地址,SNAT應用於次鏈

3. mangle表

mangle表主要是修改數據包頭部信息的,此表中包含以下5條鏈

3.1 PREROUTING鏈,

在數據包進入防火牆之後,也稱為路由前,

3.2 POSTROUTING鏈,

在數據包確定目標地址後,也稱為路由後,

3.3 OUTPUT鏈

從本機出去的時間包路由前

3.4 INPUT鏈

數據包進入本機後,路由後

3.5 FORWARD鏈

第一次路由判斷之後,最後一次路由判斷之前改變數據包

Copyright © Linux教程網 All Rights Reserved