linux network monitoring
DESCRIPTION
Network monitoring concept and monitoring tools in Linux.TRANSCRIPT
網路監控
by netman<[email protected]>
主題大綱● 必備網路基礎知識● 協定行為● 常見網路問題與防御● 網路監控與分析工具
Part I
必備網路基礎知識
先從封包說起 ...
所謂網路連線其實就是兩個端點的連線
連線兩端透過封包 (packet)傳遞資料
封包基本由 header 與 payload 組成
封包以封裝方式傳遞
談到封裝,就得了解OSI了 ...
網路設計都參考是 OSI模型來設計的
●設備規格●電子信號轉換●傳輸媒體 (線材 )規範
L1 實體層
●網路卡的實體地址 (Physical Address)●虛擬電路 (Virtual Circuit)連接和邏輯連結 (Logical Link) 的建立和結束● 控制框包的傳送和錯誤檢測方式● 框包的傳送及接收順序和傳遞方式● 判定框包的建立及重組分界●檢測框包的確認﹐以及在得不到回應或重複發送的情形下進行修復的程序● 處理實體層的轉換和管理● 對接收框包進行檢錯和確認●檢查發送框包的實體地址以確保資料能正確的被送抵目的地之網路層
L2資料連接層
●如果封包不是屬于同一個網路的時候﹐會將之交由router處理●控制數據流量﹐當 router的緩衝區飽和的時候﹐會通
知數據傳輸設備使用其它路徑或暫停發送封包●當封包體積超過 router的MTU(Maximum Transmission Unit)的數值的時候﹐允許 router對封包進行重組後再進行傳送。 (一些所謂的增加modem上網速度的軟體﹐就是因為可以對電腦的 MTU數值進行最佳化﹐儘量減少 router的封包重組﹐以達到最高的數據傳輸效率。 ) ●負責MAC地址和網路地址 (如 IP地址﹑ IPX地址 )之間的解釋和轉換
L3網路層
● “ ” “ ”接管由上層協定傳來的資料﹐並進行 分拆 和 打包 等工作。●利用點對點的方式進行資料傳送和回應的確認。●在得到接收端之資料緩衝區飽和信息之後﹐暫時停止資料發送。●能在單一位址上處理不同的程式協定 (如 ftp http﹑ ﹑telnet等 )﹐並分別進行追蹤及轉換。
L4傳送層
●允許程式以電腦名稱註冊成為網路上唯一的地址。●在電腦之間建立﹑監測﹑和結束虛擬電路 (Virtual Circuit) 。●負責電腦之間的信息同步﹐監測資料溝通狀態﹐並對錯誤信息做出處理。
L5會談層
●字元碼轉換﹐例如﹕ ASCII碼和 EDCDIC碼之間的轉換。●資料形態轉換﹐例如﹕ CR碼和 CR-LF碼﹑整數和浮點數之間的轉換。●對資料進行壓縮和加密﹐以提高速度和增加安全性。
L6表現層
●定義的應用協定功能﹐例如 FTP HTTP TELNET﹐ ﹐ 等。●負責客戶端和伺服端的連接。
L7應用層
其他網路模型跟 OSI的對應
分層的功用
● 分工– 各層只負責該層協定的任務– 可針對特定協定修改而無需全部重寫– 更具彈性地擴充或開發全新協定
● 合作– 每一層都是上下層的界面– 完成的處理再往上 /往下交給另一層來處理– 網路傳輸往往需要多個層級的協定共同處理
封裝 (Encapsulation)
● 封裝– ” ”傳送端先把傳送資料 裝 進上層協定的欄位– 協定加上表頭 (header) “ ”後再整個 裝 到下一層協定的負載 (payload)欄位
– 逐層的往下封裝成封包後再送出
● 解封裝– 接收段把封包收進來之後根據最外層的表頭先交給底層協定處理
– 完成後移除已處理的表頭交給上層協定– 逐層移除表頭一直往上處理獲得最終資料
TCP/IP協定的封裝
TCP/IP協定家族
TCP封包表頭
UDP封包表頭
IP封包表頭
ICMP封包表頭
ICMP類別
ICMP錯誤碼( type 3)
ARP 封包表頭
封包範例
Part II
協定行為
FTP連線通道 (L7)
TCP連線建立 (L4)
TCP連線結束
TCP連線狀態
TCP連線確認
NAT工作原理 (L3)
PING工作原理 (L3)
● 發送端送出 Echo Request (ICMP Type 8)● 回應端傳回 Echo Reply (ICMP Type 0)● 兩者成功再進行下一輪傳送,并增加序號
Traceroute工作原理 (L3)
● 發送端出第一個封包之 TTL為 1● 第一個 router扣掉 1之後 TTL為 0 ,則送出
Time Exceeded (ICMP Type 11)回發送端,發送端得知第一個 Router 之 IP
● 發送下一個封包并 TTL增量 1,如此到達第二個 router的時候 TTL為 0,再送 ICMP回來則知道第二個 router的 IP
● 重復上述步驟直到封包送達目的地就可以得出每個站 router的 IP
ARP協定 (L2)
Part III
常見網路問題與防御
實體線路 (L1)
● 佈線系統– 接頭鬆脫– 線路損毀– 訊號干擾
● 設備問題– 電力故障– 設備掛點– 錯誤配置
資料連接層 (L2)
● ARP– ARP Caching
– ARP Poisoning
– ARP Spoofing
– MAC Conflict
● 架構問題– Loop
– SPT
– VLAN
IP連接層 (L3)
● IP Conflict● IP Block
– ACL
– Firewall
● Routing– Static
– Dynamic
– NAT
NAT問題
名稱解析問題
● DNS系統漏洞– DNS cache poisoning
– 假的 DNS server
– Men in the middle attack
– Domain hijacking
– DNS指向被竄改
服務層級問題● 服務未啟動
– Stand Along
– Super Deamon
● 服務受阻擋
– Firewall
– Super Deamon
– TCP Wrapper
– PAM
– ACL
● 服務異常
– Over Loading
– DOS
其他
● 機房– 冷卻、電力、配線
● 天災– 水災、火災、地震、海嘯、火山、殞石 ...
● 人禍– 拔錯電源、網路線、誤關設備– 施工不慎– 恐怖攻擊
入侵行為
● 利用程式漏洞– Web Application
– Service
– Operating System
● 蠻力破解● 竊聽● MIM(Man In the Middle)● 社交工程
竊聽行為
● 竊聽設備– Hub v.s. Switch
– Wireless
– Mirror Port
● ARP Poisoning● MIM(Man In the Middle)
服務阻斷攻擊
● Flooding– TCP
– UDP
– ICMP
– Application
● 弱點利用– Buffer Overflow
– Format String
– Injection
問題防御
● 網路連線可用度提升● 依循標準 / SOP
● 偵測設備 /機制● 加密連線● 更新漏洞● 應災計劃
SSH封裝非加密連線
● ssh -L 10110:10.0.0.1:110 4.3.2.1
Part IV
網路監控與分析工具
tcpdump
tcpdump
● http://www.tcpdump.org/● CLI 模式的封包截取工具● 使用 libpcap 作為封包處理函式庫● 大多數 Unix-based 作業系統均內建
Wireshark
Wireshark
● http://www.wireshark.org/● 早期名稱為 ethereal
● 可作為 sniffer 截取封包來分析● 亦可重組封包取出資料區● 提供圖形界面
Wireshark● 選擇網路界面
Wireshark● 側錄封包
Wireshark● 封包重組
ntop
ntop● http://www.ntop.org/● 即時的流量分析 /統計工具● 可接受
– Mirror Traffic
– NetFlow/sFlow
– In-Line Analysis
mrtg
mrtg● http://www.mrtg.org/● Multi Router Traffic Grapher● 利用 SNMP、或客製指令抓取資料,並產生趨勢圖表
● 可產生日 /週 /月 / 年下之平均數據● 常用來紀錄
– 網路界面流量– 主機負載 (CPU/Memory/ … etc)
– 磁碟使用率
mrtg
Nagios
Nagios
● http://www.nagios.org/● Open Source / Free 的監控工具● 網路狀態監控工具● 可發出即時 Alert
● 常用於觀察– 主機服務– 網路節點狀態
Nagios
Nagios
Nagios
Zabbix
Zabbix
● http://www.zabbix.com/● Open Source / Free 的監控工具● 網路狀態監控工具● 支援許多作業系統● 可即時發出 Alert
Zabbix
Zabbix
Zabbix
OpenNMS
OpenNMS
● http://www.opennms.org/● Open Source / Free 的網管工具 (NMS)
● 運作於 Java+Tomcat● Demo Site● http://demo.opennms.org/
OpenNMS
OpenNMS
cacti
cacti● http://www.cacti.net/● 利用 php + mysql + rrdtool 畫出各種圖表的網管軟體
● 常用來取代傳統的 mrtg
● 可為各常用設備定義 template,套用方便
cacti
NetFlow / sFlow
NetFlow / sFlow● NetFlow● 由網路設備將通過之封包資訊匯出至接收機● –封包資訊
– Source IP
– Destination IP
– Source Port
– Destination Port
– Protocol
– Interface
– ToS
NetFlow / sFlow 架構
Q & A