iptables/netfilter原理及基本操做

簡介bash

防火牆(Firewall): 工做在主機或網絡邊緣,對進出的報文按事先定義的規則進行檢查,而且由匹配到的規則進行處理的一組硬件或軟件,甚至多是兩者的結合服務器

Firewall分類:主機防火牆(工做於主機邊緣);網絡防火牆(工做於網絡邊緣)網絡

iptables:只是防火牆規則的編寫工具,工做於用戶空間,編寫規則併發送到netfilter併發

netfilter:能使規則生效的防禦框架,工做於內核空間框架


Netfilter防禦原理ssh

在內核中的TCP/IP協議棧上選擇了5個點(又稱爲「卡哨」),這5個點是報文必定會流經的位置,並配置5個鉤子函數(hook_function);當有報文通過時,被鉤子函數鉤起,對規則進行檢查,並按照必定的機制(又可稱爲「功能」)完成處理ide

原理圖函數

wKioL1M2SmqTOZgXAANvBlvqKso048.jpg

說明:上圖顯示了Netfilter的實現原理,以及其主要的4大功能:raw,mangle,nat,filter工具

數據包經Netfilter的過濾匹配流程spa

圖1

wKiom1M2R0qA-hIpAAcIr8FurZg420.jpg

圖2

wKiom1M2R5nQ8yJdAA-8ENuAcv4511.jpg

說明1:圖1和圖2都是數據包流向的描述,我的感受圖2更加形象,能夠看出數據包經Netfilter的過濾匹配流程就是針對Netfilter的4大功能,在5個卡哨間停留匹配的過程

說明2:借用的網絡上的2張圖片,版權歸原做者全部


iptables的規則

表和鏈:

四表(對應4大功能):raw,mangle,nat,filter

五鏈(對應5個卡哨):PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

表和鏈的對應關係

  • raw:PREROUTING,OUTPUT

  • mangle:5鏈中的任意位置

  • nat:PREROUTING,POSTROUTING,OUTPUT

  • filter:INPUT,FORWARD,OUTPUT

iptables的規則匹配原理

wKiom1M2SLOj1dskAAQdV5V9lI0010.jpg

說明:iptables規則的添加需在指定表下的可用鏈上,即注意表和鏈的對應關係


iptables規則的保存與恢復

service iptables save
# 規則默認會保存在/etc/sysconfig/iptables文件中
# iptables啓動時,也會讀取此文件中的內容以設置規則
iptables-save > /path/to/some_rulefile # 手動導出規則文件
iptables-restore < /path/from/some_rulefile # 手動導入規則文件

遠程修改iptables規則時的小技巧

在遠程服務器上修改iptables規則時,防範規則生效錯誤(尤爲是ssh對應端口)被意外斷開鏈接的方法是:在執行任何iptables規則或腳本時,後跟一個計劃任務,指定5分鐘後清空全部規則,如

# 實際需執行的iptables規則在iptables.sh文件中,若規則執行成功無錯誤,取消計劃任務便可
sh /tmp/iptables.sh ; at -f clean_up.at now+5min

at計劃任務可參考:

#!/bin/bash
iptables -t raw -F
iptables -t mangle -F
iptables -t nat -F
iptables -t filter -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT


下一篇:iptables規則基本用法

相關文章
相關標籤/搜索