---
# System prepended metadata

title: 進度

---

# 進度
 
## 必備知識(自行規劃時間看)
- [ ] dpdk 介紹&功能&定位
- [ ] dpdk 下載&編譯&hello_world
- [ ] Deep Packet Inspection
- [ ] OSI model
- [ ] Linux kerenl protocol stack
- [ ] L2 protocol
- [ ] IPv4
- [ ] TCP
- [ ] nDPI

## 每周進度
### ~ 2/13 : 
* git 指令、操作
* Makefile 撰寫
* gcc 

**Homework:**
1. 創一個 github 帳號，建立一個`itlab_git_practice`的專案，新增一個分支並命名為`develop`。
2. 用 C 語言寫一個簡易的 hello world 程式，撰寫 Makefile 讓使用者可以輸入`make`完成編譯。
3. 將上述程式與 Makefile 上傳至`itlab_git_practice`的`develop`分支。

### ~ 2/20 : 
1. VM 建立兩台 Ubuntu 機器，每台機器設置兩張網路卡，一張為 NAT (正常上網使用)，另一張設定內網(兩台主機互聯，一台使用 192.168.1.100、另一台 192.168.1.200)
    - 1.200 那台可用 GUI 介面比較方便操作
2. 在 1.100 那台機器上安裝 apache 並把首頁改成 
```htmlembedded=
<html>
    <h2>
        Test - 1
    </h2>
    <p>
        This is my test
    </p>
</html>
```
3. 並使用 tcpdump 監控內網那張網卡的流量
4. 在 1.200 上使用 tcpdump 監控內網網卡，並使用指令 `curl 192.168.1.100`，觀察 curl 得到的結果與 tcpdump 所抓到的資訊，並解釋使用 curl 指令時封包來回傳送的流程
5. 使用 `tcpdump -w` 參數將抓取到的封包存為 .pcap 檔，使用 wireshark 之類的工具分析並列出封包

https://hackmd.io/lyjPtxn8SSGijkvcNWMhjA

### ~ 3/12 : 
1. 重作上次工作，在 `192.168.1.100` 的機器上開啟 tcpdump 觀察 `curl 192.168.1.200` 的結果。
2. 解釋 `curl` 指令所做的工作與並對照 tcpdump 的封包作說明。 (參考 TCP 三向交握)

### ~3/15
1. 建立三台虛擬機，其連線方式如下所示：
![](https://i.imgur.com/ZCmaGQ7.png)
A <--> B <--> C ，A、C 之間部相連，其溝通僅透過 B 轉發達成。
2. 完成上述虛擬機連線設置，請使用 Ubuntu 18.04 server 或 desktop 搭配 `netplan` 完成上述配置，注意 A、C 屬於不同網域 (class C 不相同)，因此 B 是作為 router 功能的一台機器，請確實做好 B 的轉發功能。

https://hackmd.io/xTR5qJciSICgiMvNfoI9pA?view

### ~3/27
1. 在 1.202 主機上架設 DVWA，會需要使用道 Apache, php 跟 MySQL。
DVWA 是一種帶有多種弱點的網站，可以選擇弱點的強度，進而練習攻擊的技巧。
2. 在中間做轉發的機器安裝 Snort 並使用社群版本的規則，兩個在 Snort 官方網站都能找到。
Snort 是一個 IDS (入侵偵測防護系統)，可以根據你設定的規則進行封包的比對，發現與規則匹配的封包時，會根據規則所設定的行為做出警告、發送 email 等動作。
3. 在 0.101 的機器安裝 sqlmap，並對 1.202 的 DVWA Injection 練習的頁面進行 SQL injection 攻擊，並觀察是否能從 Snort 抓到攻擊的封包。

https://hackmd.io/oaZrSRhxQ3GpUdWIXGMUKg?view (unfinished)
