---
# System prepended metadata

title: Week 09(2020/11/19) - LSA midterm exam(ord 版)
tags: ['1091', ' lsa']

---

---
tags: 1091, lsa
---

Week 09(2020/11/19) - LSA midterm exam(ord 版)
===
[TOC]
## 規則：
![](https://i.imgur.com/hJueRO7.png)

- 如有問題請舉手發問。
- 請在 AWS 上實作。
- 請勿編輯本頁面。
- 請勿以私訊或聊天室等任何方式彼此溝通。
    - 當然也請不要直接實體溝通啦... 那算作弊哦
- 可以上網自由地找資料、補充這學期相對應的共筆頁面。
- 請確定執行正確，再找助教 DEMO，僅 **部份**題目 需要 DEMO
	- 會標記在題目上
	- 除了 Webserver 外，DEMO 時，助教發現答案錯誤便 **無法** 擁有再更改的權利（即為該題錯誤）
        

**We Are Watching You.**


## 1. SSH 5％
- 請建立 3 台 AWS EC2 的 Ubuntu VM
- 並將下列 ssh 公鑰寫入各個 VM 的特定檔案中，讓助教能以 **無密碼** 的方式 ssh 進你的所有 server 中
- P.S.: 助教擁有私鑰 
:::success
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCMCsWRObWBj5mv8FdWFNEb17TDTnlVH6yT1QAOemfsCsjIc1VTTGi1t7HkQJegSJdORNJe2ezSU1vPYhuOCWsnzC2x7tD2aAhrs3SlecR5pMYyhfCsOW+hP8ypb6aaHFSMK49fQf2QGhg80z3pwF1CDIO/3SfhjZR2eA69IsoopgmZ71Q8XmS790GPCNCsBdMkHRgTqJGp8DloxLkuMJQr8ouzm9JpKnnq2Uh0QCHRuRlonKkt/TQXntLR7htaniHjGe/wOcqfzxYfGTLDsPP7rbgZ3tMdttB0IFqGi1jNCdmnpQH15LSY+GnapaBgQekwtIrXsGucUYhM8e2L9dDz 1091lsamideumtest

:::


## 2. 檔案權限與設定 5％
請在家目錄底下建一個叫 `1091-lsa-您的學號` 的資料夾，並依照以下條件設定存取權限

- 擁有者可以「 **讀、寫、執行** 」
- 跟擁有者同一群組的可以「 **讀、執行** 」
- 其他人就只想給它「 **讀** 」而已

## 3. [需要 DEMO] Webserver 與 Load balance 65% 

請建立 3 台 EC2 VM (皆需完成 **題1—SSH** 才可實作)
分別實作 Nginx, Apache, Lighttpd server

請依照要求完成以 IP , domain name, 或 port 區分 virtual host 並呈現出不同顯示畫面，詳細架構連接如下圖：

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


### A. <span class="vm">VM-1</span> Nginx server

1. (10％) 輸入 ==<public_domain_**ip**>== 會得到以下頁面
(請依照下列格式作答並顯示在網頁上)： 
	- (10％) 成功輸出並且輸出內容正確
	- (5％) 成功輸出但輸出內容錯誤
	- (0％) 未成功輸出
```htmlmixed=
<head>
        <meta charset='UTF-8'>
        <h1>課程相關</h1>

        <h2>中文全名：（請填入此處）</h2>
        <h2>英文全名：（請填入此處）</h2>
        <h2>英文縮寫：（請填入此處）</h2>

</head>
```
2. (5％)輸入 ==<public_domain_**ip**>:8080== 會 proxy 到 [Mr.郭網頁](https://vincentinttsh.github.io/)


:::success
請使用 [NO-IP 免費提供 public domain name](
https://www.noip.com/) 
取得兩個如 **題3** 與 **題4** 規定之 domain name
EX:
(以學號 106213014 為例，請依據自己的學號做替換)
106213014-apache.hopto.org
106213014-lighttpd.hopto.org
:::
3. (20％) 輸入 ==<學號>-apache.hopto.org== 會導向 Apache server 的頁面 **（詳細格式請看 VM-2）**
	- (10％) ==:80 (port)== : 助教資訊
	
	- (10％) ==:80 (port)/~<username> (預設使用者)== : 學生個人資訊 

4. (15％) 輸入 ==<學號>-lighttpd.hopto.org== 會導向 Lighttpd server 的頁面 **（詳細格式請看 VM-3）**
	- (10％) ==:80 (port)== : 老師相關訊息
	
	- (5％) ==:8080 (port)== : 連到 1sa.bluet.org 

5. (15％)輸入 ==<public_domain_**name**>== 會在以下 3 個網頁間做 load balance 
	- (5％) 網頁顯示 — 助教的名字 (Apache)
	- (5％) 網頁顯示 — 老師的資訊 (Lighttpd)
	- (5％) 網頁顯示 — 老師的網頁 (Lighttpd proxy)

### B. <span class="vm">VM-2</span> Apache server
1. 在 port = 80 時，請作答並以下列格式顯示內容：

```htmlmixed=
<head>
        <meta charset='UTF-8'>
        <h1>助教們的中文名字</h1>
        <h2>（請在此處填寫所有助教名字，包含愛心助教共 5 位）</h2>
</head>    
```
2. 網址後增加 `/~<username> (預設使用者)` 可 show  出以下學生資訊：
```htmlmixed=
<head> 
        <meta charset='UTF-8'>
        <h1>本次作答學生資訊</h1>
        <h2>姓名：（請填寫名字）</h2>
        <h2>學號：（請填寫學號）</h2>
</head>       
```



### C. <span class="vm">VM-3</span> Lighttpd server
1. 在 port = 80（Default） 時，請作答並以下列格式顯示內容：

```htmlmixed=
<head>
        <meta charset='UTF-8'>
        <h1>LSA 的老師</h1>
        <h2>中文名字：（請作答）</h2>
        <h2>英文全名：（請作答）</h2>
        <h2>常用 ID：（請作答）</h2>
        <h2>Telegram ID：（請作答）</h2>
        <h2>Facebook 個人檔案的名稱：（請作答）</h2>
</head>
  
```
2. 在 port = 8080 時，請 proxy 到 lsa.bluet.org


## 4. [需要 DEMO] 查詢主機狀態資訊 20％
1. (5％) 建立了許多服務後，想看一下 port 的佔用狀況，並希望能符合以下條件的方式呈現。

```= 
address, port 要以數值方式呈現 
只列出正在使用中的 port
要 show 出屬於每個 socket 的 PID 和 Program name
只要 TCP 協定
```
2. (5％) 請將**前面的指令** 的輸出，加以過濾，只顯示特定兩個欄位 **`Local Address`、`PID/Program name`** 的**結果**（不要求顯示欄位名稱）
    - 為了好看，這兩欄輸出時，中間請加一個空白
3. (5％) 續題二結果，而因 lab 做的東西 port 剛好都是 **`80`** 開頭，所以請再幫我過濾出包含 **80** 這個數值的列
4. (5％) 續題三結果，有個指令能將輸入的字串**顯示**於螢幕並同時**儲存**進指定的檔案中，請將前面指令的輸出結果同時顯示並保存進 **`/etc/output.txt`** 中 ==cat==
(hint:)

## 5. [需要 DEMO] 安裝服務 15％
:::info
1. 請安裝 `proftpd` 服務並確認狀態為開啟，接著使用 `filezilla` 登入
2. 請開啟匿名（anonymous）登入，並使用 `filezilla` 測試，可看到 welcome.msg
:::
1. (5％) 請安裝 `proftpd` 服務並確認狀態為開啟 
2. (10％) 請開啟匿名（anonymous）登入，透過 ftp 指令成功連上 ftp server，能夠在伺服器根目錄看到檔案 welcome.msg ==能連上、有檔案==

## 6. Hostname / DNS 10％
1. (5％) 把 AWS 上的三台 server 的 **hostname** 改成 lsa-學號-{proxy or apache}, ex:
(1) lsa-學號-nginx
(2) lsa-學號-apache
(3) lsa-學號-lighttpd
:::info

- 測試重開機後還是維持更改後的 hostname
- 請確認 ping 跟 sudo 時都是正常的
- 在指令提示列的中 的顯示也是正確的（如下圖反白處） 
![](https://i.imgur.com/F0SxsoI.png)
:::


2. (5％) ping www 時會自動尋找到 www.ncnu.edu.tw
    - 意即不論 ping 什麼東西，找不到時都會去尋找 ncnu.edu.tw




<style>
.vm {
	background-color: #CD5C5C;
	color: white;
	font-size: 20px;
	font-weight: bolder;
	border-radius: 50% 20% / 10% 40%;
}
</style>
