---
# System prepended metadata

title: 1101 LSA 期中考

---

# 1101 LSA 期中考
[TOC]
## 規則
![](https://i.imgur.com/hJueRO7.png)

- 如有問題請舉手發問
- 請勿編輯本頁面
- 請勿以私訊或聊天室等**任何方式**彼此溝通
    - 當然也請不要直接實體溝通啦... 那算作弊哦
- 可以上網自由地找資料。
- **筆試**請依題號依序答題，並在答案卷上標明題號，==未依序答題者，該題以零分計算==
- 請確定執行正確，再找助教 DEMO
	- DEMO 時，助教發現答案錯誤，**還有一次更正的機會**，若同一題第二次 DEMO，答案還是錯誤，便 **無法** 擁有再更改的權利（即為該題錯誤）
- 上機考時間只到 **9 點**，筆試時間視同學作答情況調整

**We Are Watching You.**

## 甲. 上機 56+5%

:::info
10.100.10.x -> 對外

10.100.100.x -> internal

10.100.200.x -> DMZ
:::

### A. 檔案權限設定 4%
1. 請在家目錄底下建一個檔案名稱為 `1101LSA_學號`，並依照以下條件設定存取權限 (2%)
    - 擁有者可以 「 讀、寫、執行 」
    - 跟擁有者同一群組的可以 「 讀、執行 」
    - 其他人只能 「執行 」
    - 無論任何人在執行當下都會自動被變身為「此檔案擁有者」的身份和權限
2. 檔案**執行**時會顯示以下內容： (2%)
    ```txt=
    你的名字 :
    你的學號 :
    ```
    > Hint: 在檔案內寫指令，執行此檔案時會自動執行寫在檔案內的指令
    > 
    > ex : 
    > 
    > 檔案內容 : ifconfig
    > 
    > 執行結果 : enp0s3: flags=4163<UP,BROADCAST,RUNNING,M...... (執行 ifconfig 這個指令的執行結果)
### B. Forward Agent  4%
開啟並設定 Forward Agent 功能，使私鑰在 firewall 上進行轉送，不需要透過帳號密碼才能連進 internal zone 和 DMZ
![](https://hackmd.io/_uploads/H1Zj38_9F.jpg)


### C. iptables 20% 

MOLi 大學的阿明近期想針對學校資安部分做加強
想要先幫學生們過濾封包抵擋攻擊
並保護防火牆，只留需要的功能其餘皆不准進來
便委託小美幫忙架設，
阿明針對防火牆要夠酷提了幾點要求：

:::danger
題目沒講的不能做到

EX: internal zone 不能 ping DMZ 的設備
:::

![](https://i.imgur.com/QnQlN4C.png)

1. internal zone 的所有要去外網的封包會經由 firewall 送出去 (3%)
2. 在 firewall 開 port 80 (public network) 導向 DMZ 中的 web-server 的 80 port，並且 web-server 要能夠知道使用者的 IP (3%)
3. DMZ 可以透過 firewall 向 lsa.kija.io 建立 http 連線 (3%)
4. 准許外網 ssh 連線至 firewall (3%)
5. internal zone 中的 student 可以透過 private IP ssh 連線至 DMZ 中的 web-server，並且 web-server 要能夠知道使用者的 IP (3%)
6. 所有對外的 DNS request 皆會被 firewall 導向 1.1.1.1 (3%)
7. (WARRING) INPUT, FORWARD chain 預設的 policy 為 DROP (2%)
 
只要不符合以上要求，就是個不夠酷的防火牆
各位小美們，請幫忙小明實作個防火牆

:::info
檢驗方式(可能不只用以下方式檢驗)
通用：看 iptables 的規則
1 會也只會透過 firewall 向外網發出封包(ex: ping 8.8.8.8)
2 在學校開起瀏覽器，打上 firewall 的 ip 可成功顯示網頁
4 從學校網路任意電腦可 ssh 至 firewall
5 看相關設定
6 tcpdump
:::

### D. Web Server 28% (可以分次 DEMO)
![](https://hackmd.io/_uploads/r1yy5KOcK.png)


---
:::danger
由於 web server 需架在 DMZ 上，DMZ 需要完成 iptables 的第四條指令才能連進 web server  </br>
如果不知道如何設定 iptables 第三、四題的指令，可以跟助教索取答案，但總分會扣 8 分
:::
**以下 service 需架在 DMZ 中的 web server 上**
- 使用 nginx 設定以下 domain name 使他們連到對應的網頁
    - `s<學號>-lb.1101.lsa`
        - `:80` : load balance
    - `s<學號>-proxy.1101.lsa`
        - `:80` : proxy 到 `lsa.kija.io`
    - `s<學號>-apache.1101.lsa` 
        - `:8091` : 老師的各項資訊
    - `s<學號>-lighttpd.1101.lsa` 
        - `:8092` : 助教們的中文姓名
        - `:8092/~<username>` : 課程資訊
    
- **apache** (8091)
    - 連線 8091 port，會顯示老師的各項資訊
        ```htmlmixed=
        <head>
                <meta charset='UTF-8'>
                <h1>LSA 的老師</h1>
                <h2>中文名字：（請作答）</h2>
                <h2>英文全名：（請作答）</h2>
                <h2>常用 ID：（請作答）</h2>
        </head>
        ```
    :::info
    **配分標準 (7%)**
    - 連線成功且網頁顯示無誤 (7%)
    - 連線成功但網頁顯示有誤 (4%)
    - 連線失敗 (0%)
    :::
- **lighttpd** (8092)
    - 連線 8092 port，會顯示 5 位正職助教的名字
        ```htmlmixed=
        <head>
                <meta charset='UTF-8'>
                <h1>助教們的中文名字</h1>
                <h2>（請在此處填寫 5 位正職助教的名字（有在台上出現過的））</h2>
        </head>    
        ```
    - 在網址後加入 `/~<username>`，顯示課程資訊
        > `<username>` 是 `s<你的學號>`
        ```txt=
        本課程的
        中文名稱: {請填寫內容}
        英文名稱: {請填寫內容}
        英文縮寫: {請填寫內容}
        ```
    
    :::info
    **配分標準 (7%)**
    - 連線成功且網頁顯示無誤 (7%)
    - 連線成功但網頁顯示有誤 (4%)
    - 連線失敗 (0%)
    :::
- **nginx** (80)
    - 連線 80 port，load balance 到以下網頁
        - `apache` 老師的各項資訊
        - `lighttpd` 助教們的中文姓名
    - proxy 到 `lsa.kija.io`
    
    :::info
    **配分標準 (7%)**
    - 連線成功且網頁顯示無誤 (7%)
    - 連線成功但網頁顯示有誤 (4%)
    - 連線失敗 (0%)
    :::

### E. [加分題] 火車快飛 5%
做不出來夠酷的防火牆，至少做個有點酷的火車吧
- 在 firewall 主機新建一個使用者 `train`，登入此使用者之後會**直接**自動執行印出火車的指令，執行結束後，就直接登出

## 乙. 筆試 70+15%
### A. 綜合 20+3%
1. Open Source 與 Free Software 的差別是？ (2%)
2. 以學生角度，使用 Linux 的好處與壞處 (4%)
3. Ubuntu 最新的 LTS 版是？(2%)
4. 全世界公認的根域名伺服器的數量有多少? (2%)

5. 請說明 FTPS 與 SFTP 的不同 (4%)
6. 如何使用 `dig` 指令指定使用 `8.8.8.8`  這台 DNS server 查詢 `www.google.com` 的 IP？請寫出完整指令。 (2%)
7. 若我想針對單一使用者 `testUser` ，對 `LSAtest` 這個檔案的權限只有**讀及執行**，我要下甚麼指令 (2%)
    > testUser 不是檔案擁有者，也不與檔案擁有者同一 group
    > 
    > hint : 不是用 chmod 喔
8. 在使用 rsync 時，若希望備份出來的檔案與原始檔案有相同的屬性，並且在網路頻寬少、電腦 CPU 強的狀況下，建議加上什麼參數指令比較好？ (2%)
9. [加分題] 3 位愛心助教的名字 (3%)



### B. iptables 20%

1. 請問為什麼 student 無法連上 http://163.22.17.121，但 `Pubilc Network` 的人卻可以呢? (10%)
2. 請問要**修改**對 firewall 的 iptables 下得哪些指令使 student 可以連上 http://163.22.17.121？ (10%)

- 下圖為網路架構圖
![](https://hackmd.io/_uploads/BJQ4fmm9K.png)

- 對 firewall 的 iptables 下以下指令：
```shell=
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to 10.31.24.25:80
sudo iptables -A FORWARD -d 10.31.24.25 -p tcp --dport 80 -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth3 -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -o eth3 -j MASQUERADE
```
- student 那台的 routing table 為：

Destination|Gateway|Genmask|Flags|Metric|Ref|Use|Iface|
|----------|-------|-------|-----|------|---|---|-----|
0.0.0.0|10.211.38.1|0.0.0.0|UG|0|0|0|eth0|
10.211.38.0|0.0.0.0|255.255.255.0|U|0|0|0|eth0

- http-service 在 80 port 有提供 http 服務
- http-service 無做任何網路阻擋（如 iptables


### C. 子網路遮罩 30%

![](https://hackmd.io/_uploads/S1zZYqO9t.png)

1. What is eth1 IP? (2%)
    > eth1 use the first usable IP of the whole NAT network.
    - eth1 使用整個 NAT 網路中第一個可用的 IP
2. What is eth2 IP? (2%)
    > eth2 use the second to last usable IP of the whole NAT network.
    - eth2 使用整個 NAT 網路中倒數第二個可用的 IP
3. What is eth3 IP? (2%)
    > eth3 use the last usable IP of the whole NAT network.
    - eth3 使用整個 NAT 網路中最後一個可用 IP
    > eth3 is in a private network
    - eth3 在內網
4. What the max number of IP Student Zone can have? (2%)
    > Student Zone only has one gateway
    - Student Zoen 只有一個 gateway
    > The gateway only has one network interface which hold one IP
    - 該 IP 是 gateway 擁有的唯一網路介面卡
5. If firewall want to broadcast on DMZ What IP it will call? (2%)
    > firewall 想在 DMZ 上 broadcast，該使用哪個 IP ?
6. 如果你是 Mr.郭你會如何分配網路? (15+5%)

    說明：
    :::info
    - 使用 IPv4 協定
    - 分配的 IP 是使用 Private IP
    :::
    題目敘述：
    :::info
    有一個 MOLi 大學，有三個院，根據統計每層樓使用網路的裝置大概有 4000 左右，每個院都有無線網路跟有線網路，現在身為網管的 Mr.郭要分配網路 IP。  
    BT 學院有 5 層樓，老俞學院有 4 層樓，Foca 學院有 7 層樓。

    - (必要條件 - 1) 要從 IP 可以看出是哪個院的封包，以方便管理
    - (必要條件 - 2) 各院要可以互相溝通
    - (加分條件 - 1) 從 IP 可以看出是透過無線網路還是有線網路來連上網路
    - (加分條件 - 2) 其他未列舉之條件，但可以更好管控網路
    :::
### D. [加分題] 支語警察 7%
![](https://hackmd.io/_uploads/Bkfqb9Qqt.png =300x)
- 故事背景 :
    - 小明剛修 LSA ，上網找資料的時候發現很多看不懂的支那用語，請你幫他把下面的句子翻譯成臺灣用語 (中英混雜也可以)
- 題目 :
    - 我激活了一個網絡端口，他是應用程序默認的套接字，因為他會優化宿主機與客戶端的報文交換質量，並且軟件的計算機內存使用量也會是最少。
    > 找到 13 個 7 分、10 個 6 分、7 個 4 分、3 個 2 分、1 個 1 分 (要翻譯正確才算喔)

### E. [加分題] 大家來找碴 5%
:::danger
**不要在裡面做任何改動，只需查看原因！**
:::

1. 為什麼 `www.google.com` 並沒有辦法如我想做的導向 `127.0.0.1`
    - host: mid-1.lsa.kija.io
    - user: lsa
    - key: [Download link](https://u.pcloud.link/publink/show?code=XZoLsNXZv9KiEqHMei0Njvq1y6MFu5kzNiFX)