前言
如果說程式語言是與電腦溝通的方式,那麼網路協定就是電腦與電腦之間溝通的共同語言。對資安人員來說,理解 TCP/IP 協定不是選修,而是必修。無論你想進行滲透測試、分析惡意流量、設定防火牆規則,還是理解各種網路攻擊的原理,都必須先搞懂網路是怎麼運作的。
這篇文章將從最基礎的概念開始,帶你理解 TCP/IP 協定的核心知識。我會盡量用生活化的比喻來解釋抽象的概念,並在最後示範如何用工具實際觀察網路封包。
為什麼資安人員必須懂 TCP/IP?
在深入技術細節之前,先讓我們看看 TCP/IP 知識在資安工作中的實際應用:
滲透測試:掃描目標主機的開放埠口、識別執行的服務、分析網路架構,這些都需要理解 TCP/IP。
封包分析:當你用 Wireshark 捕捉網路流量時,如果看不懂那些封包代表什麼意思,就只是在看一堆亂碼。
攻擊手法理解:SYN Flood、ARP Spoofing、DNS Hijacking、Man-in-the-Middle⋯⋯這些攻擊手法的名稱本身就包含了協定名稱,不懂協定就無法理解攻擊原理。
防火牆與 IDS 設定:設定防火牆規則需要指定協定、埠口、IP 位址;分析入侵偵測系統的警報需要理解異常流量的特徵。
事件調查:當發生資安事件時,分析網路日誌、追蹤攻擊來源、還原攻擊過程,都仰賴對網路協定的理解。
網路通訊的基本概念
在進入 TCP/IP 之前,我們先建立一些基本概念。
什麼是協定(Protocol)?
協定就是一套雙方都同意遵守的規則。想像你要寄一封國際信件:
- 信封上要寫收件人地址、寄件人地址
- 地址的格式有固定寫法(國家、城市、街道、門牌)
- 要貼足夠的郵票
- 郵局會根據地址決定如何轉送
網路協定也是類似的概念。它規定了:
– 資料要用什麼格式包裝
– 要包含哪些必要資訊(來源、目的地等)
– 資料如何傳送和接收
– 出錯時如何處理
什麼是封包(Packet)?
當你在網路上傳送資料時,資料不會一次全部送出,而是被切割成許多小塊,每一塊就叫做「封包」。
為什麼要這樣做?想像一條馬路,如果有一輛超長的卡車佔據整條路,其他車都動不了。但如果把貨物分裝到很多小貨車上,大家就可以交替使用道路。網路封包的概念類似——把資料分成小塊,讓網路資源可以被多人共用。
每個封包除了攜帶一部分資料外,還會包含「標頭」(Header)資訊,記錄這個封包要送到哪裡、從哪裡來、是第幾個封包等資訊。
OSI 模型與 TCP/IP 模型
要理解網路通訊,我們需要一個框架來組織各種協定。最常被提到的是 OSI 七層模型和 TCP/IP 四層模型。
OSI 七層模型
OSI(Open Systems Interconnection)是一個理論模型,把網路通訊分成七層,每一層負責特定的功能:
┌─────────────────────────────────────────────────────────┐
│ 第 7 層:應用層(Application Layer) │
│ → 使用者直接接觸的層,如網頁瀏覽器、電子郵件 │
│ → 協定:HTTP、HTTPS、FTP、SMTP、DNS、SSH │
├─────────────────────────────────────────────────────────┤
│ 第 6 層:表現層(Presentation Layer) │
│ → 資料格式轉換、加密解密、壓縮解壓縮 │
│ → 例如:SSL/TLS 加密、JPEG 圖片編碼 │
├─────────────────────────────────────────────────────────┤
│ 第 5 層:會議層(Session Layer) │
│ → 建立、管理、終止應用程式之間的連線 │
│ → 例如:NetBIOS、RPC │
├─────────────────────────────────────────────────────────┤
│ 第 4 層:傳輸層(Transport Layer) │
│ → 端點對端點的資料傳輸、流量控制、錯誤處理 │
│ → 協定:TCP、UDP │
├─────────────────────────────────────────────────────────┤
│ 第 3 層:網路層(Network Layer) │
│ → 邏輯定址、路由選擇、封包轉送 │
│ → 協定:IP、ICMP、ARP │
├─────────────────────────────────────────────────────────┤
│ 第 2 層:資料連結層(Data Link Layer) │
│ → 實體定址(MAC 位址)、訊框處理、錯誤偵測 │
│ → 例如:Ethernet、Wi-Fi、交換器運作 │
├─────────────────────────────────────────────────────────┤
│ 第 1 層:實體層(Physical Layer) │
│ → 實際的電子訊號、光訊號、無線電波傳輸 │
│ → 例如:網路線、光纖、無線電波、Hub │
└─────────────────────────────────────────────────────────┘
一個簡單的記憶口訣(從第 7 層到第 1 層):All People Seem To Need Data Processing
對應:Application、Presentation、Session、Transport、Network、Data Link、Physical
TCP/IP 四層模型
在實務上,我們更常使用 TCP/IP 模型,它把 OSI 的七層簡化成四層:
┌─────────────────────────────────────────────────────────┐
│ 應用層(Application Layer) │
│ → 對應 OSI 的第 5、6、7 層 │
│ → HTTP、HTTPS、FTP、SSH、DNS、SMTP、Telnet │
├─────────────────────────────────────────────────────────┤
│ 傳輸層(Transport Layer) │
│ → 對應 OSI 的第 4 層 │
│ → TCP、UDP │
├─────────────────────────────────────────────────────────┤
│ 網路層(Internet Layer) │
│ → 對應 OSI 的第 3 層 │
│ → IP、ICMP、ARP │
├─────────────────────────────────────────────────────────┤
│ 網路介面層(Network Interface Layer) │
│ → 對應 OSI 的第 1、2 層 │
│ → Ethernet、Wi-Fi │
└─────────────────────────────────────────────────────────┘

資料封裝的過程
當你在瀏覽器輸入網址按下 Enter,資料會從最上層開始,一層一層往下封裝:
使用者:我要看 www.example.com 的網頁
應用層:產生 HTTP 請求
┌──────────────────────────┐
│ HTTP 請求資料 │
└──────────────────────────┘
↓
傳輸層:加上 TCP 標頭(來源埠口、目的埠口等)
┌─────────┬────────────────┐
│TCP 標頭 │ HTTP 請求資料 │
└─────────┴────────────────┘
↓
網路層:加上 IP 標頭(來源 IP、目的 IP 等)
┌─────────┬─────────┬──────────────┐
│IP 標頭 │TCP 標頭 │ HTTP 請求資料 │
└─────────┴─────────┴──────────────┘
↓
網路介面層:加上乙太網路標頭和尾端
┌──────────┬─────────┬─────────┬──────────────┬─────┐
│乙太網標頭│IP 標頭 │TCP 標頭 │ HTTP 請求資料 │ FCS │
└──────────┴─────────┴─────────┴──────────────┴─────┘
↓
轉換成電子訊號透過網路線傳出去
接收端會進行相反的過程,一層一層拆開封裝,最後把 HTTP 請求交給網頁伺服器處理。
網路層:IP 協定
IP(Internet Protocol)是網路層最重要的協定,負責將封包從來源送到目的地。
IP 位址
IP 位址就像網路世界的門牌號碼,用來識別網路上的每一台設備。目前有兩個版本:
IPv4:由 4 組數字組成,每組 0-255,例如 192.168.1.100。總共可以表示約 43 億個位址,目前已經不夠用了。
IPv6:由 8 組十六進位數字組成,例如 2001:0db8:85a3:0000:0000:8a2e:0370:7334。位址空間極大,足夠未來使用。
本文主要以 IPv4 為例。
特殊的 IP 位址
有些 IP 位址有特殊用途,身為資安人員必須熟悉:
私有 IP 位址(不會在公開網路上使用):
– 10.0.0.0 ~ 10.255.255.255(Class A)
– 172.16.0.0 ~ 172.31.255.255(Class B)
– 192.168.0.0 ~ 192.168.255.255(Class C)
迴路位址(Loopback):
– 127.0.0.1:指向本機自己,常用於測試
廣播位址:
– 255.255.255.255:向同一網段所有設備廣播
APIPA 位址:
– 169.254.x.x:當 DHCP 取得 IP 失敗時自動指派
子網路遮罩(Subnet Mask)
子網路遮罩用來區分 IP 位址中哪些部分是「網路位址」,哪些是「主機位址」。
IP 位址: 192.168.1.100
子網路遮罩: 255.255.255.0
轉成二進位:
IP: 11000000.10101000.00000001.01100100
遮罩: 11111111.11111111.11111111.00000000
├────── 網路部分 ──────┤├─主機─┤
網路位址:192.168.1.0(前 24 位元)
主機位址:100(後 8 位元)
另一種表示方式是 CIDR 標記法:192.168.1.100/24,意思是前 24 位元是網路部分。
IP 封包結構
IP 封包的標頭包含許多重要資訊:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL | ToS | Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TTL | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source IP Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination IP Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options (if any) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
幾個重要欄位:
- Version:IP 版本(4 或 6)
- TTL(Time To Live):封包的存活時間,每經過一個路由器減 1,歸零就丟棄(防止封包無限循環)
- Protocol:上層協定(6 = TCP、17 = UDP、1 = ICMP)
- Source IP Address:來源 IP 位址
- Destination IP Address:目的 IP 位址
資安相關:IP Spoofing
因為 IP 封包的來源位址是由發送方填寫的,攻擊者可以偽造來源 IP,這就是「IP Spoofing」。這種技術常用於:
- DDoS 攻擊:偽造來源 IP 讓受害者無法追蹤真正的攻擊來源
- 繞過存取控制:某些系統只允許特定 IP 存取,偽造 IP 可能繞過這種限制
- 反射攻擊:把來源 IP 設成受害者的 IP,讓第三方伺服器的回應「反射」到受害者
傳輸層:TCP 與 UDP
傳輸層負責端點對端點的資料傳輸。兩個最重要的協定是 TCP 和 UDP。
埠口(Port)的概念
一台電腦可能同時執行多個網路程式(瀏覽器、郵件軟體、遊戲等),埠口號碼用來區分資料要交給哪個程式處理。
埠口號碼範圍是 0-65535,分成三類:
Well-Known Ports(0-1023):保留給常見服務
– 20, 21:FTP
– 22:SSH
– 23:Telnet
– 25:SMTP
– 53:DNS
– 80:HTTP
– 443:HTTPS
– 3389:RDP
Registered Ports(1024-49151):註冊給特定應用程式
– 3306:MySQL
– 5432:PostgreSQL
– 8080:HTTP 替代埠口
Dynamic/Private Ports(49152-65535):動態分配給客戶端程式
TCP(Transmission Control Protocol)
TCP 是一個「連線導向」的協定,提供可靠的資料傳輸。
TCP 的特點:
– 可靠性:確保資料完整送達,遺失會重傳
– 有序性:封包會按照順序重組
– 流量控制:防止發送方傳太快,接收方來不及處理
– 錯誤檢測:透過校驗和檢測資料是否損壞
適用場景:網頁瀏覽、檔案傳輸、電子郵件等需要確保資料完整的應用
TCP 三向交握(Three-Way Handshake)
這是建立 TCP 連線的過程,也是資安人員必須熟悉的重要概念:
客戶端 伺服器
│ │
│ ① SYN (seq=100) │
│ ──────────────────────────────────────► │
│ 「嘿,我想建立連線,我的序號是 100」 │
│ │
│ ② SYN-ACK (seq=300, ack=101) │
│ ◄────────────────────────────────────── │
│ 「好的,我收到了。我的序號是 300, │
│ 期待你的下一個封包序號是 101」 │
│ │
│ ③ ACK (seq=101, ack=301) │
│ ──────────────────────────────────────► │
│ 「收到,連線建立完成」 │
│ │
│ ═══════ 連線建立,開始傳輸資料 ═══════ │
│ │
- SYN:客戶端發送 SYN(同步)封包,表示想建立連線
- SYN-ACK:伺服器回應 SYN-ACK,表示同意連線
- ACK:客戶端發送 ACK(確認),連線建立完成
TCP 四向揮手(Four-Way Handshake)
結束連線的過程:
客戶端 伺服器
│ │
│ ① FIN │
│ ──────────────────────────────────────► │
│ 「我要結束連線了」 │
│ │
│ ② ACK │
│ ◄────────────────────────────────────── │
│ 「好的,我知道了」 │
│ │
│ ③ FIN │
│ ◄────────────────────────────────────── │
│ 「我這邊也準備好結束了」 │
│ │
│ ④ ACK │
│ ──────────────────────────────────────► │
│ 「好,掰掰」 │
│ │
資安相關:SYN Flood 攻擊
SYN Flood 是一種經典的 DoS 攻擊:
- 攻擊者發送大量 SYN 封包(通常用偽造的來源 IP)
- 伺服器回應 SYN-ACK 並等待 ACK
- 因為來源 IP 是假的,ACK 永遠不會來
- 伺服器的連線佇列被塞滿,無法處理正常請求
防禦方式包括:SYN Cookies、限制同一 IP 的連線數、防火牆過濾等。
TCP 封包標誌位元(Flags)
TCP 封包有幾個重要的標誌位元:
| 標誌 | 全名 | 用途 |
|---|---|---|
| SYN | Synchronize | 發起連線 |
| ACK | Acknowledgment | 確認收到 |
| FIN | Finish | 結束連線 |
| RST | Reset | 強制重置連線 |
| PSH | Push | 立即將資料推送給應用程式 |
| URG | Urgent | 緊急資料 |
在滲透測試中,Nmap 等工具會利用不同的標誌組合來進行埠口掃描:
- SYN 掃描:發送 SYN,收到 SYN-ACK 表示埠口開放
- FIN 掃描:發送 FIN,某些系統對關閉的埠口會回 RST
- NULL 掃描:不設任何標誌
- XMAS 掃描:設定 FIN、PSH、URG 標誌
UDP(User Datagram Protocol)
UDP 是一個「非連線導向」的協定,提供快速但不可靠的傳輸。
UDP 的特點:
– 不可靠:不保證資料送達,也不會重傳
– 無序:封包可能亂序到達
– 無連線:不需要先建立連線,直接發送
– 低延遲:少了確認機制,速度更快
– 標頭小:只有 8 bytes(TCP 標頭至少 20 bytes)
適用場景:即時串流、線上遊戲、DNS 查詢、VoIP 等
UDP 封包結構
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
相比 TCP,UDP 的標頭簡單很多。
TCP vs UDP 比較
| 特性 | TCP | UDP |
|---|---|---|
| 連線方式 | 連線導向 | 非連線導向 |
| 可靠性 | 可靠(確認、重傳) | 不可靠 |
| 順序 | 保證順序 | 不保證 |
| 速度 | 較慢 | 較快 |
| 標頭大小 | 20-60 bytes | 8 bytes |
| 流量控制 | 有 | 無 |
| 使用場景 | HTTP、FTP、SSH、SMTP | DNS、DHCP、串流、遊戲 |
應用層常見協定
應用層是使用者最直接接觸的一層,以下介紹幾個重要的協定。
HTTP/HTTPS
HTTP(HyperText Transfer Protocol) 是網頁傳輸的基礎協定,使用埠口 80。
HTTP 請求方法:
– GET:取得資源
– POST:提交資料
– PUT:更新資源
– DELETE:刪除資源
– HEAD:只取得標頭
– OPTIONS:查詢支援的方法
HTTP 是明文傳輸,所有資料(包括密碼)都可以被中間人看到。
HTTPS 就是 HTTP + TLS/SSL 加密,使用埠口 443。現代網站都應該使用 HTTPS。
資安相關
- 中間人攻擊:攻擊者可以攔截並修改 HTTP 流量
- SSL Stripping:強制將 HTTPS 降級為 HTTP
- 憑證相關攻擊:偽造憑證、憑證驗證繞過
DNS(Domain Name System)
DNS 將網域名稱(如 www.google.com)轉換成 IP 位址,使用埠口 53(通常是 UDP,大型回應用 TCP)。
DNS 查詢過程:
使用者輸入 www.example.com
│
▼
┌──────────────────┐
│ 本機 DNS 快取 │ ─── 有快取 ──► 直接回傳 IP
└──────────────────┘
│ 無快取
▼
┌──────────────────┐
│ 本地 DNS 伺服器 │ ─── 有快取 ──► 回傳 IP
└──────────────────┘
│ 無快取
▼
┌──────────────────┐
│ 根域名伺服器 │ ──► 「去問 .com 伺服器」
└──────────────────┘
│
▼
┌──────────────────┐
│ .com 域名伺服器 │ ──► 「去問 example.com 伺服器」
└──────────────────┘
│
▼
┌──────────────────┐
│ example.com 伺服器│ ──► 「IP 是 93.184.216.34」
└──────────────────┘
│
▼
回傳給使用者
資安相關
- DNS Spoofing/Cache Poisoning:污染 DNS 快取,將網域指向惡意 IP
- DNS Tunneling:利用 DNS 查詢來傳輸資料,繞過防火牆
- DNS Amplification Attack:利用 DNS 進行 DDoS 反射放大攻擊
DHCP(Dynamic Host Configuration Protocol)
DHCP 自動分配 IP 位址給網路上的設備,使用埠口 67(伺服器)和 68(客戶端)。
DHCP 過程(DORA):
1. Discover:客戶端廣播「誰可以給我 IP?」
2. Offer:DHCP 伺服器回應「我可以給你這個 IP」
3. Request:客戶端「好,我要這個 IP」
4. Acknowledge:伺服器「OK,這個 IP 給你了」
資安相關
- DHCP Starvation:耗盡所有可用 IP,導致正常設備無法連網
- Rogue DHCP:架設假的 DHCP 伺服器,分配惡意的網路設定
ARP(Address Resolution Protocol)
ARP 將 IP 位址轉換成 MAC 位址(實體網卡位址)。
當電腦 A(192.168.1.10)要傳資料給電腦 B(192.168.1.20):
1. A 廣播:「192.168.1.20 的 MAC 位址是什麼?」
2. B 回應:「我是 192.168.1.20,我的 MAC 是 AA:BB:CC:DD:EE:FF」
3. A 記住這個對應關係(ARP 快取)
資安相關:ARP Spoofing
這是區域網路中非常常見的攻擊:
- 攻擊者對受害者說:「我是閘道器」(偽造 ARP 回應)
- 攻擊者對閘道器說:「我是受害者」
- 所有流量都會經過攻擊者 → 中間人攻擊!
正常情況:
受害者 ◄──────────────────────────────► 閘道器 ◄───► Internet
ARP Spoofing 後:
受害者 ◄───► 攻擊者 ◄───► 閘道器 ◄───► Internet
(中間人)
ICMP(Internet Control Message Protocol)
ICMP 用於網路診斷和錯誤報告。最常見的應用是 ping 和 traceroute。
常見 ICMP 類型:
– Type 0:Echo Reply(ping 回應)
– Type 3:Destination Unreachable
– Type 8:Echo Request(ping 請求)
– Type 11:Time Exceeded(TTL 歸零)
資安相關
- Ping of Death:發送超大的 ICMP 封包造成系統崩潰(已修補)
- ICMP Flood:大量 ping 造成 DoS
- ICMP Tunneling:利用 ICMP 封包傳輸資料
實戰:使用 Wireshark 觀察封包
理論講了這麼多,現在讓我們實際觀察網路封包!
安裝 Wireshark
Windows/macOS:到 https://www.wireshark.org 下載安裝
Linux(Debian/Ubuntu):
sudo apt update
sudo apt install wireshark
sudo usermod -aG wireshark $USER
# 登出再登入讓群組生效
基本操作
- 開啟 Wireshark
- 選擇要監聽的網路介面(通常選有流量的那個)
- 開始擷取封包
觀察 TCP 三向交握
- 開啟 Wireshark 開始擷取
- 在瀏覽器開啟任意網站(如 http://example.com)
- 停止擷取
- 在過濾器輸入:
tcp.flags.syn == 1
你應該可以看到 SYN 封包。找到對應的封包,右鍵選擇「Follow > TCP Stream」可以看到完整的連線過程。
常用過濾語法
# 過濾特定 IP
ip.addr == 192.168.1.100
# 過濾來源 IP
ip.src == 192.168.1.100
# 過濾目的 IP
ip.dst == 192.168.1.100
# 過濾特定埠口
tcp.port == 80
udp.port == 53
# 過濾 HTTP 流量
http
# 過濾 DNS 流量
dns
# 過濾 TCP SYN 封包
tcp.flags.syn == 1 && tcp.flags.ack == 0
# 組合過濾
ip.addr == 192.168.1.100 && tcp.port == 443
觀察 DNS 查詢
- 開啟 Wireshark 開始擷取
- 在終端機執行:
nslookup google.com - 停止擷取
- 過濾:
dns
你可以看到 DNS 查詢(Query)和回應(Response),包含查詢的網域名稱和回傳的 IP 位址。
觀察 ARP
- 清除 ARP 快取:
- Windows:
arp -d *(需管理員權限) - Linux:
sudo ip neigh flush all
- Windows:
- 開啟 Wireshark,過濾
arp - ping 同一網段的其他設備
- 觀察 ARP Request 和 Reply
實用指令整理
Windows
# 查看 IP 設定
ipconfig /all
# 查看路由表
route print
# 查看 ARP 快取
arp -a
# 查看連線狀態
netstat -ano
# DNS 查詢
nslookup example.com
# 追蹤路由
tracert example.com
# 測試連線
ping example.com
Linux
# 查看 IP 設定
ip addr
# 或
ifconfig
# 查看路由表
ip route
# 或
route -n
# 查看 ARP 快取
ip neigh
# 或
arp -a
# 查看連線狀態
ss -tuln
# 或
netstat -tuln
# DNS 查詢
dig example.com
# 或
nslookup example.com
# 追蹤路由
traceroute example.com
# 測試連線
ping example.com
# 查看封包(需要 root)
tcpdump -i eth0
# 查看特定埠口的封包
tcpdump -i eth0 port 80
資安應用總整理
學完 TCP/IP 基礎,你可以開始探索以下資安主題:
網路掃描
使用 Nmap 掃描目標:
# 基本掃描
nmap 192.168.1.1
# SYN 掃描(半開放掃描)
nmap -sS 192.168.1.1
# UDP 掃描
nmap -sU 192.168.1.1
# 掃描特定埠口
nmap -p 80,443,22 192.168.1.1
# 服務版本偵測
nmap -sV 192.168.1.1
中間人攻擊(學習用途)
使用 arpspoof(Kali Linux):
# 開啟 IP 轉發
echo 1 > /proc/sys/net/ipv4/ip_forward
# ARP 欺騙
arpspoof -i eth0 -t 192.168.1.100 192.168.1.1
arpspoof -i eth0 -t 192.168.1.1 192.168.1.100
⚠️ 警告:只能在你有授權的環境中練習!
防禦建議
根據本文介紹的攻擊手法,對應的防禦措施:
| 攻擊 | 防禦措施 |
|---|---|
| IP Spoofing | 入口過濾、uRPF |
| SYN Flood | SYN Cookies、Rate Limiting |
| ARP Spoofing | 靜態 ARP、Dynamic ARP Inspection |
| DNS Spoofing | DNSSEC、DNS over HTTPS |
| 中間人攻擊 | 使用 HTTPS、VPN、憑證驗證 |
延伸學習資源
想要深入學習,推薦以下資源:
書籍
– 《TCP/IP Illustrated》by W. Richard Stevens(經典教材)
– 《Computer Networking: A Top-Down Approach》
線上資源
– Wireshark 官方文件:https://www.wireshark.org/docs/
– RFC 文件:https://www.rfc-editor.org(協定的正式規格)
實作練習
– TryHackMe:有專門的網路基礎房間
– Hack The Box:實際的滲透測試練習
– PicoCTF:適合初學者的 CTF 平台
工具
– Wireshark:封包分析
– Nmap:網路掃描
– tcpdump:命令列封包擷取
– Scapy:Python 封包操作庫
總結
這篇文章涵蓋了 TCP/IP 協定的基礎知識:
- 網路模型:OSI 七層與 TCP/IP 四層的對應關係
- IP 協定:IP 位址、子網路遮罩、封包結構
- 傳輸層:TCP 的三向交握、四向揮手、UDP 的特性
- 應用層協定:HTTP、DNS、DHCP、ARP、ICMP
- 資安相關:各種網路攻擊手法與防禦方式
- 實戰工具:Wireshark 使用與常用網路指令
網路協定的知識體系龐大,這篇文章只是入門。但有了這些基礎,你已經可以開始進行封包分析、理解滲透測試工具的運作原理,以及更深入地學習各種網路攻擊與防禦技術。
記住,最好的學習方式就是動手實作。打開 Wireshark,開始觀察你電腦上的網路流量吧!透過實際觀察封包,你會更深刻地理解這些協定是如何運作的。
下一步,你可以嘗試:
– 用 Wireshark 分析你日常的網路活動
– 學習使用 Nmap 進行網路掃描
– 在虛擬環境中練習 ARP Spoofing
– 研究 TLS/SSL 握手過程
– 學習如何設定防火牆規則
祝你學習順利!🔒

