###### tags: `lsa` # 113 LSA 期中考題_筆試 :::info ## 規則 ![](https://i.imgur.com/hJueRO7.png) - 如有問題請舉手發問。 - 請勿編輯本頁面。 - 請勿以私訊或聊天室等任何方式彼此溝通。 - 當然也請不要直接實體溝通啦... 那算作弊哦 - **通訊軟體請關閉** - 可以上網自由地找資料、補充這學期相對應的共筆頁面。 - 可使用 ChatGPT ,但不可直接照抄,請吸收內容之後,在腦中整理過、在機器上驗證過後,以自己重新整理過的方式回答。如助教判定沒有吸收過就回答,該題 0 分。(其實很容易分辨,也有工具能檢測) - 上機需要 DEMO,DEMO 時若助教發現答案錯誤,學生可以有一次修正機會。 - 筆試部分,Google 表單繳交前,請舉手找助教,在助教面前繳交。 - 請用**學校信箱**回答問卷 :::danger **沒在助教面前繳交者,視同沒交** ::: - 提早完成可以提早離開。 - 如果時間到還沒完成,老師與助教會視情況決定是否開放延長作答時間。 - 如果考試中監考者(老師及助教)視個別情形有額外給提示,那是額外的,不是義務也不是權益。如果有同學真的只是打錯字或只差臨門一腳,是否提示的決定權在監考者身上。 ::: :::warning 本次考試作答環境以 Ubuntu 22.04 為主 ::: **We Are Watching You.** ## 甲、筆試題 ### 一、基礎(23%) 小貝和室友共用一台伺服器,並且各自有各自的帳號。 小貝新增了一個純文字檔案叫做 `homework_A.txt` 來儲存他的作業解答,放在自己家目錄中的 `~/bei` 資料夾裡,接下來他有一些操作,請給出能達成這些指令的操作。 1. 小貝想要備份這個檔案,備份檔叫做 `homework_B`。`homework_A.txt` 與 `homework_B` 兩個檔案個別更改的時候,彼此之間不會影響到彼此(1%) 2. 小貝怕室友會偷偷跑過來偷看自己的作業,又怕好不容易備份的 `homework_B` 自己會不小心動到,所以決定對這兩個檔案做一些設定:(3%) - 把 `homework_A.txt` 的權限改成只有自己可讀可寫,其他人都別想動這份檔案 - 把 `homework_B` 的權限改成只有自己可讀,其他人都別想動這份檔案 3. 最後小貝把 `homework_A.txt` 完成了,他覺得這檔名好醜,他想改名成 `完成啦`(1%) 4. 在 `~/bei` 中,小貝建立一個資料夾 `img`,裡面放了一些照片,由於**要和他人共用這些照片**,權限是`777`。小貝希望這個資料夾裡的照片只有自己和 root 可以刪除。(2%) 5. 老師叫小貝去施展某種魔法,讓之後所有新創的使用者家目錄都會自動預設有個叫 `lsa` 的空檔案(3%) 6. 老師突然叫小貝幫小利建立帳號,要讓小利也可以使用伺服器,並且過程中會自動產生小利自己的家目錄。(2%) 7. 室友小羅突然忘記他在伺服器上的密碼,小貝可以更改什麼檔案,協助他把密碼清空,並且小羅的家目錄不會消失。(3%) 8. 小貝想要找根目錄底下的某個資料夾,但他忘記是哪一個,只記得是 `s` 開頭的。要如何印出根目錄底下所有(且只有) `s` 開頭的資料夾?(4%) 9. 小瓦是個火車狂熱者,他喜歡有事沒事就打 `sl` 指令,有天他突發奇想,想要跑 `sl` 的同時也能把小火車輸出到檔案 `bubu` 裡面(2%) 10. 小羅希望系統能每分鐘將 `date` 指令的輸出儲存到家目錄底下的 `date.txt` 這份檔案,且不會蓋過舊的輸出(2%) ### 二、檔案傳輸 (6%) 某天 BlueT 叫 A 同學交作業到一個有開 SFTP 服務、叫做 `lsa.moli.rocks` 的伺服器上,於是 A 同學想要利用遠端檔案傳輸工具,把存在**本機**(local)上的 `~/lsa/homework.txt` 傳到這台**遠端** server 的 `/home/student/ex1/homework.txt`。 1. 請問下列哪個選項不是能達成這件事的工具: (2%) - sl - scp - rsync - sftp 2. 請選出正確下指令的順序,讓 A 同學能達成這件事(假設 client 和 server 目前工作目錄都在自己的家目錄底下) (2%) 1. `put homework.txt` 2. `cd ex1` 3. `sftp student@lsa.moli.rocks` 4. `lcd lsa` - ( A ) 3412 - ( B ) 1234 - ( C ) 4312 - ( D ) 3241 3. 請問若要用 scp 這套工具來做到這件事,要打的指令何者為正確? (2%) - `scp ~/lsa/homework.txt student@lsa.moli.rocks:/home/student/ex1/homework.txt` - `scp student@lsa.moli.rocks:~/lsa/homework.txt /home/student/ex1/homework.txt` - `scp /home/student/ex1/homework.txt ~/lsa/homework.txt` - `scp student@lsa.moli.rocks:/home/student/ex1/homework.txt ~/lsa/homework.txt` ### 三、遠端連線 (4%) 1. 請問下列哪些通訊協定的流量是未加密經由網路傳輸? (2%) - HTTPS (SSL/TLS) - Telnet - SSH - FTP 2. 以下列表中,請問用哪一個方法驗證身分最可以預防中間人攻擊帶來的危險? (2%) - Hash 雜湊函式 - 對稱式加密 - 非對稱式加密 - 帳號、密碼 ### 四、網路規劃相關 (20%,各 2%) - 如何查看本機的所有網卡及其分配的 IP 位址 - 有一網段 `192.168.1.0/26`,請說明此網段的網路位置及廣播位置、可分配的 IP 位址、最多可容納多少主機 (需仔細說明這個數字如何計算) - 如何查看目前系統內的路由表? 如果需要新增一條預設的路由,應該怎麼做? - `ping` 的作用是什麼? 如果希望限制 `ping` 的次數為 5 次,應該如何達成? - 如何看出系統上所有正在執行的網路服務,以及其監聽的位址及通訊埠? - 如何知道在向 `google.com` 發出連線時,封包傳輸路徑經過哪些跳點 (hop)? - 如何使用系統內建的防火牆允許進入的 SSH 連線? 如何使用系統內建的防火牆阻擋進入的 ping 連線? - 如何使用 `telnet` 進行 HTTP 請求? 試說明步驟與內容 - 想要知道目前系統使用的 NAT 規則,可以使用什麼本學期有教的指令? - 想要讓本機在解析 `example.local` 這個域名時,解析結果會是 `10.0.0.10` 這個位置,要怎麼做? 如何驗證有成功綁定? ### 五、web server(3%) - nginx config 檢查 - 在生產環境,我們不希望因為有部分設定檔的問題影響到運作中的 web server,所以在啟用 新增/更改 的設定檔前會檢查並確保設定檔的基本語法沒有問題。請問在 nginx 要如何達成 ? ### 六、除錯(3%) - 目前檔案結構 ``` root@ubuntu22:/lsa$ tree -rp [drwxrwxr-x] . ├── [-rw-rw-r--] test.txt └── [drwxrwxr-x] test 1 directory, 1 files ``` - 建立一個軟連結:`ln -s ./test.txt ./test/` ``` root@ubuntu22:/lsa$ tree -rp [drwxrwxr-x] . ├── [-rw-rw-r--] test.txt └── [drwxrwxr-x] test └── [lrwxrwxrwx] test.txt -> ./test.txt 1 directory, 2 files ``` - 存取軟連結檔案,會有以下 error,請問為甚麼,以及如何解決(讓軟連結的檔案可以被正常存取)? ``` root@ubuntu22:/lsa$ cat test/test.txt cat: test/test.txt: Too many levels of symbolic links ``` :::info ref https://unix.stackexchange.com/questions/141436/too-many-levels-of-symbolic-links ::: ### 七、Firewall(20%) #### DMZ (20%) :::info ![image](https://hackmd.io/_uploads/H123SzX71x.png) **初始環境** - 防火牆的 policy 都是 `ACCEPT` 且沒有任何規則 - Firewall 有 3 個網路介面 | NIC | IP | |:------ |:---------------- | | `eth0` | `192.168.0.1/24` | | `eth1` | `192.168.1.1/24` | | `eth2` | `192.168.2.1/24` | - routing table 如下: | Destination | Genmask | Iface | |:------------- |:--------------- |:------ | | `192.168.0.0` | `0.0.0.0` | `eth0` | | `192.168.1.0` | `255.255.255.0` | `eth1` | | `192.168.2.0` | `255.255.255.0` | `eth2` | ::: 1. 解釋為何需要 DMZ 這樣的架構(2%) 2. 如何啟用 Firewall 轉發封包的功能(2%) 3. 試將 DMZ 的主機以及 LAN 的主機的 default gateway 設定成 Firewall(2%) > 接下來的題目,請說明要如何設定防火牆的規則以及所有涉及的指令 4. Internet 能夠透過防火牆的 80 通訊埠連到 DMZ 內部的 web server,但無法連到 LAN 的內部主機 (2%) 5. DMZ 內部的主機要能夠透過防火牆連線到外網,但無法主動連線到 LAN 內部(2%) 6. LAN 能夠透過防火牆連到外網,也能夠透過防火牆連線到 DMZ 內部(2%) 7. 若希望 LAN 只能使用 `ssh` 連接到 DMZ 應該如何設定 DMZ 中的主機以及修改防火牆規則(2%) 8. 若希望 DMZ 內的主機只能瀏覽 Internet 的網頁應該如何修改防火牆規則(6%) ## 丙、加分題 1. 列出以下助教分享的一個課程主題(各1%) - 蓬萊人偶 - Josh - 家正 - 葉芷妤 - 吳凱賀 2. 本課程因颱風假停課的兩個日期?(各1%) 3. sudo apt upgrade 最少可以按幾個按鍵輸入完畢,是哪幾個按鍵(2%) 4. ~~幫助教或老師介紹對象並撮合成功,自告奮勇毛遂自薦也可以 (10%)~~