㈠ netfilter
linux一般都是作為服務器使用,對外提供一些基於網絡的服務
通常我們都需要對服務器進行一些網絡訪問控制,類似防火牆的功能
常見的訪問控制包括:哪些IP可以訪問服務器,可以使用哪些協議,哪些接口,是否需要對數據包進行修改等等
如服務器可能受到來自某IP的攻擊,這時就要禁止來自該IP的所有訪問
linux的內核集成了網絡訪問的控制功能,通過netfilter模塊實現
linux內核通過netfilter模塊實現網絡訪問控制功能
在用戶層我們可以通過iptables程序對netfilter進行控制管理
netfilter可以對數據進行允許、丟棄、修改操作
netfilter支持以下方式對數據包進行分類:
●源IP地址
●目標IP地址
●使用接口
●使用協議
●端口號
●連接狀態
注釋:
① filtering point:過濾點,你需要選擇合適的過濾點
★ input:輸入的數據
★ forward:轉發的數據
★ output:服務器發出的數據
★ prerouting:路由前的數據
★ postrouting:路由後的數據
② table:netfilter的功能的劃分
★ filter:用以對數據進行過濾
★ nat:用以對數據包的源、目標地址進行修改
★ mangle:用以對數據包進行高級修改
當你需要創建一條訪問控制策略時,首先要選擇正確的過濾點,然後選擇合適的功能
常用功能(流量也就是數據包)
作為服務器使用
▲ 過濾到本機的流量:在input過濾點,使用filter表
▲ 過濾到本機發出的流量:在output過濾點,使用filter表
作為路由器使用
▲ 過濾轉發的流量:在forward過濾點,使用filter表
▲ 對轉發數據的源、目標IP 進行修改:在prerouting或postrouting過濾點,使用nat表