目錄(持續(xù)更新)
基礎(chǔ)-第0章-安裝
基礎(chǔ)-第1章-基本操作
基礎(chǔ)-第2章-磁盤及文件系統(tǒng)管理
基礎(chǔ)-第3章-獲得幫助
基礎(chǔ)-第4章-用戶及權(quán)限基礎(chǔ)
基礎(chǔ)-第5章-網(wǎng)絡(luò)基本配置
基礎(chǔ)-第6章-管道,重定向及文本處理
基礎(chǔ)-第7章-系統(tǒng)啟動詳解
進階-第1章-日志服務(wù)
進階-第2章-DNS域名服務(wù)器
進階-第3章-FTP文件共享服務(wù)
進階-第4章-NFS文件共享服務(wù)
進階-第5章-SMB文件共享服務(wù)
進階-第6章-WEB服務(wù)Apache篇
進階-第7章-電子郵件服務(wù)
進階-第8章-Linux服務(wù)基礎(chǔ)及管理
高級-第1章-LVM邏輯卷
高級-第2章-高級權(quán)限ACL
高級-第3章-RAID提升速度及冗余
高級-第4章-高級網(wǎng)絡(luò)-網(wǎng)卡綁定,子端口
高級-第5章-SELinux安全系統(tǒng)基礎(chǔ)
高級-第6章-IPTable防火墻基礎(chǔ)
高級-第7章-Linux遠程管理-SSH、VNC
第6章 IPTable防火墻基礎(chǔ)
第一節(jié)
網(wǎng)絡(luò)訪問控制
Linux作為服務(wù)器,對外提供一些基于網(wǎng)絡(luò)服務(wù)
通常需要網(wǎng)絡(luò)訪問控制,類似防火墻
廠家愛你訪問控制包括:哪些IP可訪問的服務(wù)器,協(xié)議,接口,數(shù)據(jù)包修改
如可能受到某個IP攻擊,這時就禁止所有來自IP的訪問
Linux 內(nèi)核集成了網(wǎng)絡(luò)訪問控制功能 通過netfilter模塊實現(xiàn)
IPTables
用戶層我們可以哦那個過iptables程序?qū)etfilter進行控制管理
netfilter可以對數(shù)據(jù)進行允許 丟棄 修改操作
netfilter支持通過以下方式對數(shù)據(jù)包進行分類
源IP地址
目標(biāo)IP地址
使用接口
使用協(xié)議 ( TCP UDP ICMP )
端口號
連接狀態(tài) ( new ESTABLISHED RELATED INVALID)
過濾點
INPUT 出流量
FORWARD 轉(zhuǎn)發(fā)數(shù)據(jù)
OUTPUT 入流量
PREROUTING 路由前
POSTROUTING 路由后
過濾表
三種表:
filter (chain)用于對數(shù)據(jù)進行過濾 只用在 INPUT FORWARD OUTPUT 過濾點
nat用以多數(shù)據(jù)包的源,目標(biāo)IP地址進行修改 只用在 OUTPUT PREROUTING POSTROUTING過濾點
mangle用以對數(shù)據(jù)包進行高級修改 用于所有過濾點
常用功能
作為服務(wù)器
過濾本地流量
過濾本地發(fā)出流量
作為路由
過濾轉(zhuǎn)發(fā)流量
修改轉(zhuǎn)發(fā)數(shù)據(jù)
規(guī)則
通過規(guī)則對數(shù)據(jù)進行訪問控制
一個規(guī)則使用一行配置
規(guī)則按順序排列
當(dāng)收到發(fā)出轉(zhuǎn)發(fā)數(shù)據(jù)包時,使用規(guī)則對數(shù)據(jù)包進行匹配,按規(guī)則順序進行逐條匹配
數(shù)據(jù)包按照第一個匹配上的規(guī)則執(zhí)行相關(guān)動作:丟棄,放行,修改
沒有匹配規(guī)則,則使用默認(rèn)動作(每個檢查點都有默認(rèn)動作)
通過命令 iptables -t filter -A INPUT -s 192.168.1.1 -j DROP
表 鏈 匹配屬性 動作
表:規(guī)定使用的表(filter nat mangle 不同表有不同功能)
鏈:規(guī)定過濾點 INPUT FORWARD OUTPUT PREROUTING POSTROUTING
匹配屬性:規(guī)定匹配數(shù)據(jù)包的特征
匹配后的動作:放行 丟棄 記錄 ACCEPT DROP REJECT
第二節(jié)
基礎(chǔ)配置
表:規(guī)定使用的表
filter
nat
mangle
鏈:規(guī)定過濾點
INPUT
FORWARD
OUTPUT
PREROUTING
POSTROUTING
匹配屬性:
規(guī)定匹配數(shù)據(jù)包的特征
源,目標(biāo)地址 ,協(xié)議(TCP UDP ICMP )
端口號
接口
TCP狀態(tài)
匹配后的動作:
放行 ACCEPT
丟棄 DROP
記錄 REJECT (返回信息)
命令操作(臨時生效)
iptables status 查看默認(rèn)狀態(tài)
列出現(xiàn)有所有規(guī)則
iptables -L
插入一個規(guī)則
iptables -I INPUT 3 -p tcp --dport 22 -j ACCEPT
插入到規(guī)則第3條 所有端口22的TCP數(shù)據(jù)全部允許進入
刪除一個iptables規(guī)則
iptables -D INPUT 3
iptables -D INPUT -s 192.168.1.2 -j DROP
刪除所有規(guī)則
iptables -F
參數(shù)匹配
基于IP地址
-s 192.168.1.1 源地址
-d 10.0.0.0/8 目標(biāo)地址
基于接口
-i eth0 接收流量
-o eth1 發(fā)出流量
排除參數(shù)
-s '!' 192.168.1.0/24 !為取反操作
基于協(xié)議及端口
-p tcp --dport 23
-p udp --sport 23
-l icmp
例:
檢測到來自192.168.1.100攻擊 屏蔽所有這個IP的流量
iptables -A INPUT -s 192.168.1.100 -j DROP
屏蔽所有訪問80網(wǎng)頁服務(wù)的流量
iptables -A INPUT -s tcp --dport 80 -j DROP
屏蔽所有192.168.1.0到服務(wù)器的22端口ssh流量
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j DROP
iptables -A INPUT -i eth0 -j ACCEPT
FORWARD 路由設(shè)備使用
FORWARD 對所有數(shù)據(jù)轉(zhuǎn)發(fā)控制
如:禁止所有 從192.168.1.0/24 到目標(biāo)10.1.1.0/24 的流量
iptables -A FORWARD -s 192.168.1.0/24 -d 10.1.1.0/24 -j DROP
NAT
NAT 網(wǎng)絡(luò)地址轉(zhuǎn)換是用來對數(shù)據(jù)包的IP地址進行修改的機制,NAT分為兩種
SNAT 源地址轉(zhuǎn)換 常用偽裝內(nèi)部地址
DNAT 目標(biāo)地址轉(zhuǎn)換 通常用于跳轉(zhuǎn)
iptables 中實現(xiàn)的 NAT 功能是NAT 表
常用NAT
通過NAT 進行跳轉(zhuǎn) 轉(zhuǎn)發(fā)到192.168.1.10
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-dest 192.168.1.10
DNAT 只能用在PREROUTING上
通過NAT 進行出向數(shù)據(jù)跳轉(zhuǎn)
iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-dest 192.168.1.100:8080
通過NAT對數(shù)據(jù)偽裝 一般意義的NAT 將內(nèi)部地址全部偽裝為一個外部公網(wǎng)IP
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
所有內(nèi)網(wǎng)地址偽裝成eth0個公網(wǎng)IP地址
通過NAT隱藏IP
iptables -t nat -A POSTROUTING -j SNAT --to-source 1.2.3.4
保存配置文件
通過iptables修改需要寫入/etc/sysconfig/iptables配置文件
可以通過命令將iptables規(guī)則寫入配置文件 保存后會覆蓋
service iptables save
注意
遠程管理 修改iptables
需要允許來自客戶端主機的SSH流量確保是第一條iptable規(guī)則
以免失誤將自己鎖在外面