Linux下iptables的簡介和自己的記錄
歡迎轉載,請註明作者、出處。
一、iptables基礎:(封包過濾、封包重定向、NAT等功能)
->規則(rules)
->鏈(chains)
->表(tables)
->iptables傳輸資料包的過程
1.規則:
->規則一般的定義為:如果資料包頭符合這樣的條件,就這樣處理這個資料包
->規則儲存在核心空間的資訊包過濾表中,這些規則分別指定了源地址、目的地址、傳輸協議和服務型別
->當資料包與規則匹配時,iptables就根據規則所定義的方法來處理這些資料包,如放行(accept)、拒絕(reject)和丟棄(drop)等。
->配置防火牆的主要工作就是新增、修改、刪除這些規則
2.鏈
->鏈是資料包傳播的路徑,每一條鏈其實就是眾多規則中的一個檢查清單,每一條鏈中可以有一條或數條規則。
->當資料包到達鏈時,會從鏈中的第一條規則開始檢查。如果滿足條件,就會根據該條規則所定義的方法處理該資料包,否則就繼續檢查下一條規則。如果資料包不符合鏈中任意一條規則,就會按照預先定義的預設策略來處理資料包。
3.表
a.filter表:包過濾(iptables的預設表)
包含:
->INPUT鏈(處理進入的資料包)
->FORWARD鏈(處理轉發的資料包)
->OUTPUT鏈(處理本地生成的資料包)
filter表中,只允許對資料包進行接受、丟棄的操作,無法對資料包進行更改
b.nat表:網路地址轉換
包含:
->PREROUTING鏈(修改即將到來的資料包)
->OUTPUT鏈(修改在路由之前本地生成的資料包)
->POSTROUTING鏈(修改即將出去的資料包)
c.mangle表:(對指定包進行修改,使用相對較少)
包含:
->PREROUTING鏈
->INPUT鏈
->FORWARD鏈
->OUTPUT鏈
->POSTROUTING鏈
二、資料包的傳輸過程:
__________________________________________________________
| |
| 進入的資料包 輸出的資料包 |
| | ∧ |
| ∨ | |
| PREROUTING鏈 ------>FORWARD鏈條 ---> POSTROUTING鏈 |
| | ∧ |
| ∨ | |
| INPUT鏈 ------>內部處理過程 --> OUTPUT鏈條 |
|________________________________________________________|
1.當一個資料包進入網路卡時,首先進入PREROUTING鏈,核心根據資料包目的IP判斷是否需要轉送出去
2.如果是進入本機的,資料包就會達到INPUT鏈,經過內部處理,然後經過OUTPUT鏈,最後到達POSTROUTING鏈輸出
3.如果資料包是要轉發出去的,且核心允許轉發,資料包就會到達FORWARD鏈,然後到達POSTROUTING鏈輸出
三、iptables命令格式
一般格式:iptables [ -t 表 ] -命令 匹配 [ -j 動作 ]
1.表選項
指定命令應用於哪個表:filter、nat、mangle
2.命令選項
-P(--policy) <鏈名> :定義預設策略
-L(--list) <鏈名> :檢視iptables規則列表
-A(--append) <鏈名> :在規則列表的最後增加1條規則
-I(--insert) <鏈名> :在指定位置插入1條規則
-D(--delete) <鏈名> :從規則列表中刪除1條規則
-R(--replace)<鏈名> :替換規則列表中的某條規則
-F(--flush) <鏈名> :刪除表中所有規則
-Z(--zero) <鏈名> :將表中資料包計數器和流量計數器歸零
3.匹配選項
-i <網路介面名> :指定資料包從哪個網路介面進入,如eth0、eth1等
-o <網路介面名> :指定資料包從哪個網路介面輸出,如eth0、eth1等
-p <協議型別> :指定資料包匹配的協議,如TCP、UDP、ICMP等
-s <源地址或子網> :指定資料包匹配的源地址
--sport <源埠號> :執行資料包匹配的源埠號,可用"起始埠號:結束埠號"
-d <目標地址或子網> :指定資料包匹配的目標地址
--dport <目標埠號>:指定資料包匹配的目標埠號,可用"起始埠號:結束埠號"
4.動作選項
ACCEPT 接受資料包
DROP 丟棄資料包
REJECT 拒絕資料包
REDIRECT將資料包重新轉到本機或另一臺主機的某個埠
SNAT 源地址轉換
DNAT 目標地址轉換
MASQUERADE NAT技術
LOG 將符合規則的資料包的相關資訊記錄在日誌中
四、iptables命令示範
1.filter表預設接收
iptables -P INPUT ACCEPT
(沒有-t <表名> 則預設為filter表)
2.nat表預設丟棄
iptable -t nat -P OUTPUT DROP
3.檢視規則
iptables [ -t 表名 ] -L [ 鏈名 ]
iptables -L
iptables -t nat
iptables -t mangle
4.禁止訪問百度:
iptables -A INPUT -s -j DROP
說明:
在訪問百度網站的例子中
對於INPUT :是(s)源地址,本機是(d)目的地址
對於OUTPUT:本機是(s)源地址,是(d)目的地址
因此禁止訪問百度網站的方法有兩種:
iptables -A INPUT -s -j DROP
iptables -A OUTPUT -d -j DROP
修改防火牆的檔案:/etc/sysconfig/iptables
================================================================
防火牆設定-案例
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26355921/viewspace-1248086/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- iptables基礎原理和使用簡介
- Linux下的Shell簡介Linux
- Linux下的sendmail簡介(轉)LinuxAI
- Linux下的目錄介紹(轉)Linux
- Linux下的目錄介紹(zt)Linux
- 簡單記錄下wkhtmltoimage的使用HTML
- linux下的鍵盤記錄Linux
- linux命令下jq的用法簡介Linux
- linux vi的簡介和使用Linux
- 自己簡單的的DNS設定,記下來(轉)DNS
- Linux中iptables防火牆的簡單配置Linux防火牆
- Linux下Epoll簡介Linux
- Linux防火牆介紹和iptables常用命令Linux防火牆
- Linux下的目錄介紹[全精](轉)Linux
- Linux下iptables安全配置Linux
- Linux下mysql的歷史操作記錄LinuxMySql
- Linux防火牆iptables學習筆記(三)iptables命令詳解和舉例Linux防火牆筆記
- iptables防火牆如何記錄日誌防火牆
- ubuntu下iptables的配置Ubuntu
- linux下IPTABLES配置詳解Linux
- C語言小白記錄自己的錯題和總結C語言
- Linux下繫結網路卡的操作記錄Linux
- linux下使用者操作記錄審計環境的部署記錄Linux
- Linux 筆記分享一:Linux 簡介Linux筆記
- 記錄一下,linux釋放記憶體的方法Linux記憶體
- linux下清除Squid快取的方法記錄LinuxUI快取
- Linux下修改系統編碼的操作記錄Linux
- Burp Suite學習記錄1 - 簡介UI
- Linux 防火牆:關於 iptables 和 firewalld 的那些事Linux防火牆
- 簡單記錄一下 laravel-swoole 的基本使用Laravel
- 記錄一下簡單的執行 Laravel Mix 命令Laravel
- linux 下增加硬碟簡單介紹Linux硬碟
- 記錄下:iOS事件的事件的傳遞和響應iOS事件
- 記錄自己面試遇到的難題及分析面試
- POI 和 easyExcel 的簡介Excel
- Linux下3種常用的網路測速工具簡介Linux
- linux環境下的"螞蟻"-wget使用簡介 (轉)Linuxwget
- linux環境下的"螞蟻"-wget使用簡介(轉)Linuxwget