匿名
尚未登入
登入
頂極製作所
搜尋
檢視 緯育 2026-0422 的原始碼
出自頂極製作所
命名空間
頁面
討論
更多
更多
頁面操作
閱讀
檢視原始碼
歷史
←
緯育 2026-0422
由於下列原因,您沒有權限進行編輯此頁面的動作:
您請求的操作只有這個群組的使用者能使用:
管理員
您可以檢視並複製此頁面的原始碼。
<h3>熟悉各式網路相關工具的使用介紹</h3> 本次課程全面介紹了在 Linux 與 Windows 環境下,各種用於網路連線、檔案傳輸及下載的工具與技術。課程首先從 Linux 文字介面下的網路工具切入,涵蓋了文字網頁瀏覽器(如 Lynx、W3M)、遠端連線工具(SSH)、檔案下載工具(Wget、LFTP、SCP)以及網路測試與監控工具,目標是讓學員了解各工具的用途,以便日後能自行查詢使用。其中,SSH 被視為最重要的必會指令,並詳細解說其基本語法、首次連線流程及遠端執行指令的進階用法。<br><br> 接著,課程轉向 Windows 環境,介紹如何啟用 OpenSSH 客戶端,並重點講解多款基於 SSH 的圖形化工具,如 PuTTY、Penyu anting 及功能更強大的 MTPuTTY,比較其分頁管理、連線儲存等優缺點。此外,課程也回顧了較舊的 Telnet 協定,說明其明文傳輸的低安全性特性,以及在區域網路(如連線印表機、BBS 站台 PTT)中的應用場景。<br><br> 最後,課程深入探討了多種檔案傳輸方式。從傳統的 FTP 指令(如 GET、PUT)及其處理不同作業系統編碼問題的 BINARY 指令,到功能更強大的 LFTP 工具,再到加密的 FTPS 和 SFTP。講師特別強調了安裝 OpenSSH Server 會預設啟用 SFTP,可能帶來安全風險,並提出了權限管理的建議。課程也詳細介紹了常用的下載工具 Wget 及其續傳、背景執行等實用參數,以及基於 SSH 的安全單檔複製工具 SCP。講師同時也分享了關於網路輿論操作(網軍)的觀察,提醒學員對網路資訊保持警覺。 === 文字介面網路工具介紹 === * 課程目標與方法 ** 本次課程旨在介紹多種網路工具,重點在於讓學員知道這些工具的名稱及其用途。 ** 由於時間限制,無法深入介紹每個工具的歷史,但鼓勵學員自行上網查找類似的工具,因為同類型工具非常多。 ** 熟悉這些工具需要透過實習和練習,課程主要目的是介紹工具的功能與可達成的目的。 * 文字網頁瀏覽器 ** 在 Linux 環境下,尤其是官方網站,網頁內容常以文字為主、圖片較少,因此適合使用文字型瀏覽器。 ** Lynx:其中一種文字瀏覽器,使用方式為 lynx [網址]。 ** W3M:講師個人較推薦的另一種文字瀏覽器,因為其排版更接近原始網頁的樣子。安裝指令為 apt install w3m。 ** 操作方式:主要使用鍵盤的上下左右鍵進行導覽,按 Tab 鍵可以在不同連結或元素間切換。若要下載檔案,將游標移動到下載連結上按 Enter 即可。 ** 適用情境:在無法使用圖形化介面,或進入禁止攜帶個人設備(如手機)的公司,需要臨時上網查詢資料時非常有用。 * 其他網路工具類型 ** 下載/上傳工具:介紹了用於在文字介面下透過指令下載或上傳檔案的工具。 ** 網路測試與查詢工具:包含網路測速、封包測試、網路掃描與網路監控(查看網路進出封包狀況)等工具。 === 遠端連線工具 === * SSH 指令的重要性 ** SSH 是 Linux 中專門用於遠端連線的指令,被講師強調為「一定要會的」工具。 ** 不僅 Linux,Windows 10 及之後的版本、macOS、甚至手機作業系統(如 Android)都內建或可以安裝 SSH 客戶端。 * 基本語法與連線流程 ** 簡易連線:ssh [IP位址]。當使用此方式時,系統會預設使用目前本機登入的帳號去嘗試登入遠端主機。 ** 首次連線:第一次連線到某台主機時,系統會顯示該主機的 SHA 指紋 (fingerprint),並詢問是否信任。必須輸入 yes 才能繼續連線,之後就不會再詢問。 ** 指定使用者連線 (建議用法):ssh [使用者名稱]@[IP位址]。這是講師最推薦的用法,可以明確指定要用哪個帳號登入遠端主機。例如,ssh root@192.168.100.20。 ** 登入驗證:連線後,系統會提示輸入指定帳號在「遠端主機」上的密碼。 * 範例操作 ** 從 Ubuntu 連線到 CentOS (IP: 192.168.100.20),若直接執行 ssh 192.168.100.20,系統會用 Ubuntu 當前的帳號去登入 CentOS。 ** 正確指定帳號的方式為 ssh root@192.168.100.20,接著輸入 CentOS 的 root 密碼(如 123456)即可成功登入。 ** 登入成功後,終端機畫面會切換到遠端主機的命令列環境,可以執行該系統的所有指令,如 cd、ls 等。 * 進階用法:遠端執行指令 ** 語法:ssh [使用者名稱]@[IP位址] '[指令]'。 ** 功能:此語法會在登入遠端主機後立即執行指定的指令,執行完畢後便會自動登出並跳回本機。 ** 範例:ssh root@192.168.100.20 'cat /etc/passwd' 會連線到遠端主機,顯示 /etc/passwd 檔案的內容,然後立刻斷線。 * 在Windows中啟用OpenSSH Client ** 操作路徑:透過「設定」 -> 「系統」 -> 「選用功能」來管理。 ** 安裝方法:在「查看可用功能」中找到 OpenSSH Client 並進行安裝。微軟已將許多Linux工具(如OpenSSH)整合至Windows的選用功能中,取代了過去在「程式和功能」中的安裝方式。 ** 相關功能:此區塊也包含其他Windows功能,例如Hyper-V(Windows專業版內建的虛擬機)、TFTP Client、Telnet Client等。 * 正確安裝OpenSSH Client ** 目的區分:當使用者目的僅是連線到遠端伺服器時,應只安裝OpenSSH-Client。 ** 常見錯誤:許多教學會指導使用者安裝完整的openssh-server套件(例如透過apt install openssh-server),這會讓本機同時安裝上伺服器端(SSH Server)與客戶端(SSH Client),導致本機也開啟了被遠端連線的服務,帶來不必要的安全風險。 ** 正確指令:正確的做法是單獨安裝客戶端套件,例如在某些Linux發行版中,套件名稱可能為openssh-clients。 === 圖形化介面 (GUI) 連線工具 === * PuTTY ** 基本用法:輸入遠端主機的IP位址(例如192.168.10.20)與Port(SSH預設為22)即可連線。 ** 功能設定:可以調整外觀(Appearance)如字型大小,但操作上可能不如MobaXterm快速。 ** 儲存連線設定:可以在設定完成後,為該連線命名(例如class-2)並儲存(Save),方便未來快速載入(Load)並連線。 * Penyu anting (P-uting) ** 特性:此工具是一個基於PuTTY核心的「外殼」程式,提供了一個看似更簡潔的中文介面。 ** 核心:其所有功能與設定資訊完全來自PuTTY。它只是將PuTTY的複雜功能先行隱藏,連線後再提供設定選項。 ** 狀態:講師測試時發現此工具似乎已無法正常使用,建議使用者若有興趣可尋找更新版本。 * MTPuTTY (Multi-Tabbed PuTTY) ** 特性:同樣是PuTTY的外殼程式,但提供了更強大的功能。 ** 主要優點: *** 提供分頁功能,可以在單一視窗管理多個連線。 *** 側邊欄可顯示已儲存的連線清單,方便快速點擊連線。 *** 支援儲存帳號密碼,實現點擊兩下即可自動登入。 ** 安全性考量:講師個人不偏好儲存密碼,因為一旦電腦被他人存取,所有連線將暴露風險。建議的做法是每次手動輸入密碼,或使用更安全的金鑰驗證。 ** 其他選擇:講師提到業界也有其他工具如Xshell,使用者可依據個人偏好選擇。講師個人偏好簡單、免安裝、程式小的工具。 === Telnet 工具與協定 === * Telnet 介紹 ** 定義:Telnet是一個早期的遠端連線工具與協定,在早期網際網路時代非常流行,例如用於登入BBS站台。 ** 非明文傳輸:Telnet在傳輸過程中,帳號密碼均為明文(未加密),安全性極低。 ** Port:其預設通訊埠為23。但Telnet工具不僅限於此,也可以用來連接其他服務的Port,例如FTP的21 Port。 * 使用 Telnet ** Windows啟用:在Windows中,Telnet客戶端預設不安裝,需至「選用功能」中手動勾選啟用。 ** 連線指令:telnet [IP位址] [Port]。若不指定Port,預設為23。例如連線FTP伺服器:telnet 10.1.0.58 21。 ** 操作限制:使用Telnet連線FTP時,雖可登入並執行USER、PASS、ls等基本指令,但無法執行需要開啟資料通道(Data Port)的指令(如檔案傳輸),因為Telnet本身無法控制客戶端開啟Port。 ** 區域網路應用:現今主要應用於區域網路內,對一些不需高安全性的設備進行管理,例如印表機、交換器等。這些設備內部通常運行Linux系統,可透過Telnet進行基本設定與狀態查詢。 * 連線 PTT (telnet ptt.cc) ** PTT是台灣知名BBS站,使用Telnet協定連線。 ** 安全性議題:雖然Telnet是明文傳輸,但PTT帳號被盜用的情況相對較少。講師推測原因是PTT會記錄使用者最近幾次的登入IP位址,盜用者容易被追查,從而降低了盜用動機。 ** 脫離字元:在中文版作業系統中,標準的Telnet脫離指令 Ctrl + ] 無法正常觸發,導致使用者難以從Telnet提示符中退出。 * 講師分享:印表機破解經驗 ** 背景:講師公司購買了一台印表機,廠商為保留後續維修服務的控制權,不願提供管理者密碼。 ** 過程:講師透過網路搜尋該型號印表機的技術手冊(PDF),找到了原廠預設的重設(reset)密碼,並成功登入後台。 ** 發現:登入後發現可以修改列印張數的計數器。講師打趣說,早知如此當初就該選擇租賃方案,透過修改計數來降低成本。 === 檔案傳輸與下載工具 === * 基本FTP指令 ** ftp指令是使用者必須掌握的基本技能之一,在命令列中輸入 ftp [網址或IP] 即可開始連線。 ** PUT:上傳多個檔案。 ** GET:下載多個檔案。 ** mkdir:建立目錄(若有權限)。 ** CD:切換目錄。 ** BINARY:設定檔案傳輸模式為二進位。當本地作業系統與伺服器的編碼不同時,使用此指令可確保下載的檔案與伺服器上的檔案完全一致,避免亂碼問題。 ** HELP:查詢可用的FTP指令。講師提到,不同FTP伺服器(如微軟FTP)的HELP指令輸出可能差異很大。 * LFTP 工具 ** 介紹:LFTP是一個功能更強大的FTP客戶端工具,可透過yum install等方式安裝。 ** 優點: *** 支援Tab鍵自動補全檔名與路徑,解決了傳統FTP指令列操作不便的問題。 *** 支援HTTP和HTTPS協定自動下載。 ** 操作方式: *** 連線:lftp [IP位址]。 *** 登入:進入後使用user [帳號]指令進行登入。也可以在連線時使用lftp -u [帳號] [IP位址]直接登入,但密碼會記錄在歷史指令中,有安全風險。 *** 指令:登入後的操作指令如ls、cd、get與傳統FTP相似。處理帶有空白的檔名時需使用單引號將檔名括起來。 * 安全FTP (FTPS & SFTP) ** 說明:當傳統FTP的明文傳輸不安全時,可使用加密的替代方案。 ** FTPS:使用TLS進行加密。 ** SFTP:使用SSH通道進行加密。 * SFTP 的特性與安全風險 ** 自動安裝:安裝OpenSSH Server時,會強制附帶安裝SFTP Server。 ** 指令:可使用sftp指令進行連線,連線方式與SSH類似,例如 sftp root@192.168.10.10。 ** 預設權限風險:預設情況下,使用者透過SFTP登入後,不僅能存取自己的家目錄,還能切換到系統其他目錄(如根目錄 /)進行瀏覽和檔案操作,只要其帳號有對應的權限。這會帶來嚴重的安全隱患。 ** 應對措施:講師提到其YouTube頻道有影片教學,內容包括: 1. 如何將SFTP Server功能關閉。 2. 如果仍需使用SFTP,如何設定將使用者鎖定在其自己的家目錄,防止其存取系統其他位置。 * Wget 下載工具 ** 基本用法 *** 最常用的方式是 wget [網址],直接下載網路上的檔案。 ** 常用參數 *** -c 或 --continue:續傳模式。如果下載中斷,再次執行指令會從上次中斷的地方繼續下載(需要伺服器支援)。 *** -q 或 --quiet:安靜模式。執行時不會顯示下載進度條等資訊。 *** -b 或 --background:背景執行。執行後會立即返回命令提示符,讓下載任務在背景進行。 *** -t [次數] 或 --tries=[次數]:設定重試次數。-t 0 代表無限次重試。 *** -w [秒數] 或 --wait=[秒數]:設定每次重試之間的等待時間。 *** --user 和 --password:用於下載需要帳號密碼驗證的FTP或HTTP資源。指令格式為 wget ftp://[帳號]:[密碼]@[IP位址]/[檔案路徑]。 ** 其他參數 *** --spider:測試連結是否存在,但不會實際下載檔案。 *** --limit-rate=[速度]:限制下載速度,例如 --limit-rate=100k。 * SCP (Secure Copy) 工具 ** 功能介紹 *** SCP是基於SSH協定的安全檔案複製工具,用於在網路間加密傳輸單一檔案或目錄。 *** 使用前提:遠端目標主機必須已安裝並啟用SSH Server。 *** 指令格式:scp [來源] [目的]。 ** 操作範例 *** 下載檔案:將遠端檔案複製到本地。 *** scp [使用者名稱]@[遠端IP]:[遠端檔案路徑] [本地路徑] *** 範例:scp root@192.168.10.10:/path/to/file.txt . (將遠端檔案下載到目前目錄)。 *** 上傳檔案:將本地檔案複製到遠端。 *** scp [本地檔案路徑] [使用者名稱]@[遠端IP]:[遠端路徑] ** 常用參數 *** -P [埠號]:指定SSH埠號(大寫P)。 *** -p:保留檔案的原始屬性(修改時間、存取時間、權限等)。 *** -r:遞迴複製。當需要複製整個目錄及其內容時使用。 [[檔案:2026-0423-01.png|800px]] === 前置測試與網路排錯 === * 逐步開機與連通性檢查(PING 8.8.8.8),定位本機至邊界設備(「小烏龜」路由器/光纖盒)間問題,觀察指示燈異常。 * DHCP/TMS無相依可任意順序啟動;DNS短暫無回應時可能切換至次要DNS,重試可恢復。 * Kanai-1對外及DNS皆通;Kanai-2預期取得固定IP與DNS/ID後即正常。依BS順序檢視設定檔(含CNAP FILE)確保ID與網路設定一致。 === 網頁開發環境與套件組合(LAMP/WAMP/LNMP)=== * LAMP:Linux+Apache+MySQL→MariaDB;LNMP以Nginx替代Apache以提升高併發效能;WAMP在Windows以整合包快速起環境,設定風格仍沿用Linux。 * Linux常用套件管理(apt install)安裝Apache/Nginx、MariaDB/MySQL、PHP,設定檔多在/etc/;教學常先以Windows起環境,再因效能轉Linux。 * Nginx可在不改後端程式下顯著提升效能,減少硬體擴充壓力;Apache亦具代理能力。 === Web與瀏覽器歷史與主流 === * 早期由CERN httpd與WorldWideWeb(W3)起源,NCSA Mosaic推廣,延續至Netscape/IE之爭;Mozilla基金會延續為Firefox;微軟以Chromium為Edge核心。 * Web伺服器市占:Apache與Nginx長期主流;瀏覽器以Chrome為大宗,Firefox/Safari次之,Edge基於Chromium。 === 網頁與網站基本概念、HTTP/HTTPS與前端呈現 === * 網頁由HTML、CSS、JavaScript與各類圖檔組成;未指定路徑時回傳首頁(index.)。 * HTTP版本(0.9/1.0/1.1/2/3),GET取得資源;HTML為標記語言由瀏覽器解析。 * CSS提供樣式與版面;JavaScript在用戶端執行特效與互動,並可回傳環境資訊以減輕伺服端負載。 * HTTPS目標為身分確認與資料完整性,以TLS/SSL保護傳輸;瀏覽器日益強制HTTPS,未加密網站預設警示或阻擋。 === 網站被瀏覽器看到的完整組成與分工 === * Web伺服器(IIS/Apache/Nginx/Jetty/Tomcat)提供靜態檔案;找不到檔案則回404。 * 動態內容透過CGI/WSGI/FastCGI交給ASP/PHP/Python/Java等執行,結果再回傳給Web伺服器。 * 資料庫:Oracle、MS SQL、MariaDB、PostgreSQL、MongoDB、SQLite;需掌握建庫/授權/刪庫基本語法,設計與維運可與專職分工。 * 使用者端瀏覽器負責渲染與執行JS。 * 維運責任在安裝、安全與效能;前後端與DB程式屬開發責任。 === 正向代理與反向代理 === * 正向代理位於使用者與外網之間,提供快取加速與頻寬節省;常部署於Gateway/Router/Firewall或獨立主機,常見軟體Squid/Privoxy/TinyProxy/Apache。 * 反向代理位於公開IP,外部僅知代理位址;具快取、負載平衡(輪詢)、故障移轉、DOS/DDoS緩解、TLS終止與壓縮卸載、降後端負載等優點。常見軟體Nginx/Apache/Squid/HAProxy。 * HAProxy提供可視化管理介面觀察後端健康、連線數、NIC使用。 === Nginx架構、效能與配置 === * 併發模型比喻:多櫃檯非同步服務對比早期單櫃檯同步阻塞;Nginx以Master/Worker多進程與事件驅動實現高併發。 * 擅長靜態資源傳送,低資源占用;動態內容透過FastCGI/WSGI與PHP/Python等協作。 * 不停機升級(熱升級)與快速支援新標準(TLS1.3、HTTP/2、HTTP/3)。 * 開源版與商業版(Nginx Plus)差異:Plus提供進階健康檢查、回報與原廠支援。「nginx」小寫指軟體,「NGINX」大寫常指公司。 * 主程式與主態檔為核心;早期透過精簡編譯固化模組以極致效能,後期支援動態載入但可能稍降效能。 * 組態檔:/etc/nginx/nginx.conf為主檔,include載入conf.d與sites-enabled/.conf;sites-enabled以符號連結指向sites-available。 * 站點根目錄預設/var/www/html;index優先順序可調整(index.php置前以PHP首頁優先)。 * 資安建議:移除具指紋的預設頁(如index.nginx-debian.html),避免暴露系統資訊。 * PID與log:PID慣例位於/run或/var/run;error log於/var/log(依發行版目錄命名)。 * FastCGI設定:解開location ~ .php並include snippets/fastcgi-php.conf;fastcgipass使用unix socket(同機最佳,如/run/php/php8.3-fpm.sock)或TCP 127.0.0.1:9000/遠端IP:9000(跨機需開防火牆)。 * workerprocesses設auto依CPU核心;worker_connections預設如768,可依官方估算方法上調(如7680)。 === 三臺主機架構與步驟 === * Web Server 1與Web Server 2(內部):皆安裝Nginx與PHP-FPM,Web Server 1撰寫index.php首頁(含HTML骨架與PHP區塊),以gethostname輸出「Hello, I am Web Server X」辨識主機;Web Server 2透過rsync定時同步Web Server 1內容(可由排程每5/10分鐘觸發)。 * Web Server 0(對外):僅安裝Nginx,配置反向代理與基本負載平衡(upstream輪詢至Web Server 1/2),不放網站內容與PHP,所有外部請求先至反代再轉內部執行。 * 主機複製與設定:由母機clone後修改hostname與IP(外部公開端與內部固定IP規劃),完成ping/DNS測試。 * 套件安裝:apt install nginx php-fpm;若失敗先apt update;注意PHP-FPM版本匹配(課程示範8.3)。 === 名詞釐清:URL、URN、URI === * URL為統一資源定位,代表網路唯一位置。 * URN為統一資源名稱,口語常以含路徑與檔名的「下載位置」描述。 * URI為統一資源標示符,為上位集合,包含URL與URN。 === 雲端與生態 === * 市占概況:Apache與Nginx分庭抗禮;IIS式微;Cloudflare與AWS在雲端生態占比高。實務建議同時熟悉AWS與Cloudflare,名詞與作法需對齊。 [[檔案:2026-0504-01.png|800px]] === 使用 Cron 進行排程同步 === * Cron 介紹與設定 ** 系統中預設應已安裝 cron,其主設定檔位於 /etc/crontab。 ** 可使用 vi /etc/crontab 指令來編輯排程表。 ** 排程表的每一行代表一個排程任務,格式為:時間 帳號 執行的指令。 ** 排程設定沒有順序問題,可以寫在檔案的任何位置。 * Cron 時間欄位語法 ** 時間欄位共有五個,口訣為:「分、時、日、月、週」。 ** (星號) 代表每個單位(例如每分鐘、每小時)。 ** /n 代表每隔 n 個單位執行。例如: *** /10 :代表每隔 10 分鐘執行一次。 *** /5 :代表每隔 5 分鐘執行一次。 ** 1:代表指定的單位。例如在「時」的欄位寫 1,代表每天的凌晨 1 點。 ** 範例 /5 的意思是:每週的每一天的每小時的每隔 5 分鐘執行一次。 * 設定同步排程 ** 使用 root 帳號執行 rsync 指令來進行檔案同步。 ** 完整的排程指令範例為:/5 root rsync -a /var/www/html/ 192.168.100.32:/var/www/html/。 ** rsync 指令中的 -v 選項在此不建議使用,因為每隔五分鐘執行會產生大量輸出訊息。 ** 指令中的來源是本地路徑 (/var/www/html/),目的地是遠端伺服器路徑 (192.168.100.32:/var/www/html/)。 * 驗證與除錯 ** 設定完成後,修改來源伺服器(Web Server 1)的 index.php 檔案,例如增加 "v2" 標記。 ** 在客戶端(Client1)使用 curl 指令(例如 curl 192.168.100.31 和 curl 192.168.100.32)來檢查目標伺服器(Web Server 2)的內容是否在排程時間到達後同步更新。 ** 如果同步未成功,通常是排程中的指令寫錯。 ** cron 的執行錯誤不會直接顯示在螢幕上,但可以透過查看日誌(log)來找到問題,例如使用 journalctl 指令。 * 排程頻率建議 ** 不建議將排程間隔設得太短(如 1 分鐘)。 ** 如果同步頻率太快,一旦有同事誤傳了錯誤的檔案,錯誤會迅速擴散到所有伺服器,來不及補救。 ** 建議的頻率為 10 分鐘或 1 小時,這樣在發生錯誤時,還有時間從其他未同步的伺服器上找回正確的檔案。 === 2. Nginx 虛擬主機與多網站管理 === * 問題背景:為何用 IP 存取與用域名存取看到不同網站 ** 當使用者直接用 IP 位址存取網站時,HTTP 請求的 Host 標頭會是該 IP 位址。 ** Nginx 伺服器會根據 Host 標頭來決定要將請求導向哪一個網站設定(server 區塊)。 ** 如果沒有 server 區塊的 servername 精確匹配該 IP 位址,Nginx 會將請求導向預設的 server(通常是設定檔中的第一個或標記為 defaultserver 的那一個)。 * 解決方案:修改 Nginx 設定檔 ** 可以在目標網站的 server 區塊中,將 IP 位址加入到 servername 指令後面。 ** 例如:servername twebwt8.com 192.168.10.200;。 ** 修改設定檔後,必須重新載入或重啟 Nginx 服務。 * 單一伺服器託管多網站 ** 一台 Nginx 伺服器可以透過設定多個 server 區塊來託管多個不同的網站。 ** 每個 server 區塊代表一個虛擬主機,可以有自己獨立的 servername(域名)和 root(網站根目錄)。 * 預設網站(Default Site)的應用 ** 當使用者透過未匹配任何 servername 的方式存取時,會看到預設網站。 ** 開發者可將預設網站設計成公司主頁或介紹頁。 === Nginx 反向代理與負載平衡 (Upstream) === * 環境準備與安裝 ** 在 web server 0 伺服器上操作,只需安裝 Nginx,不需安裝 PHP。 * 建立反向代理設定檔 ** 建議在 /etc/nginx/conf.d/ 目錄下建立新的 .conf 檔案(如 reverse.conf)。 ** 定義 Upstream 資源池: *** 使用 upstream 區塊定義一個後端主機的資源池,並為其命名(如 GoToWeb)。 *** 在區塊內,使用 server 指令列出所有後端主機的 IP 位址和埠號(如 server 192.168.10.131:80;)。 ** 設定 Server 與 Location 區塊: *** 建立一個 server 區塊,監聽埠號(listen 80;)並指定域名(servername)。 *** 在 location / 區塊內,使用 proxypass http://GoToWeb; 將請求轉發到 upstream 資源池。 *** 使用 proxysetheader Host $host; 將客戶端請求的原始主機名稱傳遞給後端伺服器。 * 負載平衡策略 ** 循環分配 (Round Robin):預設策略,請求依序輪流分配給後端伺服器。 ** 關閉特定伺服器 (down):在 server 指令後加上 down,該伺服器將暫停接收請求,適用於維護。 ** 備援伺服器 (backup):在 server 指令後加上 backup,該伺服器僅在所有主伺服器故障時才啟用。 ** 加權循環分配 (weight):weight=數字,權重越高的伺服器接收的請求比例越高,適用於硬體效能不均的場景。 ** 最少連線 (leastconn):將新請求轉發到當前活動連線數最少的伺服器。 ** IP 雜湊 (iphash):根據客戶端來源 IP 分配固定的後端伺服器,有助於維持會話(Session)狀態。 ** 隨機 (random):將請求隨機分配到後端伺服器。 * 連線限制 (maxconns) ** 可使用 maxconns=數字 來限制每台後端伺服器可接收的最大連線數。 === 4. 伺服器網路設定與驗證 === * 設定對外 Web Server ** 使用 VMware 複製虛擬機,並設定兩張網路卡:NAT 模式和 Host-only 模式。 ** 開機後修改主機名稱,並使用 nmcli 或 nmtui 設定兩張網卡的 IP 位址(NAT: 192.168.200.200, Host-only: 192.168.100.34)。 ** 使用 ip a 確認 IP 設定,並執行 NetworkManager 的 apply 指令讓設定生效。 * 服務啟動與驗證 ** 編輯完 Nginx 設定檔後,必須重啟或重新載入服務(service nginx reload/restart)。 ** 在客戶端(如 Client 1)上,先用 ping 確認域名解析是否指向反向代理伺服器的 IP。 ** 使用 curl http://your-domain.com 重複發送請求,觀察回傳內容是否在不同後端伺服器間輪替,以驗證負載平衡是否成功。 [[檔案:2026-0504-02.png|800px]] === 資訊安全威脅來源與攻擊徵兆 === * 內外部來源與員工角色:威脅可能來自同事裝置或員工家中受感染設備充當內網跳板;駭客多以自動化工具掃描與攻擊,常在Web/Mail Server上部署受控主機。 * 外部通知與效能異常:系統「變慢」可能是DoS/DDoS;需判斷異常來自外網或內網。 * 日誌分析與服務狀態:觀察大量特定來源連線、服務變慢/停止/重啟即掛等指標。 * 流量統計與常態基準:平時蒐集封包與來源分布,建立基準以辨識異常比例與集中來源。 === 防火牆、入侵防護牆與防毒軟體 === * 防火牆:依IP/Port等已知條件允許/丟棄;對未知行為有限。 * 防護牆(內容檢查/IPS/UTM):檢查來源、目的與內容,以雜湊比對特徵庫阻擋威脅;早期合作案例可視各風暴內容。 * 防毒軟體(端點防護):檔案特徵與簽章檢查、行為偵測;現多整合網址過濾、DNS/HTTP檢查,需頻繁更新特徵庫。 * 綜合策略:無單一工具可一招制勝;需多層次部署達成全面防護。 === 入侵偵測與防禦核心觀念與類型 === * 行為為本:同一數量/來源在不同環境意義不同;如1秒被Ping 1000次在公共DNS可能正常、在手機可能是攻擊。 * 規則情境化:登入錯誤短時間超過8次、半夜遠端登入可定義為入侵並觸發處置。 * IDS類型:HIDS(主機端)、NIDS(網段層面)、DIDS(分散式匯整至機房主節點)。 * 偵測與防禦區別:多數IDS只告警不阻擋;需後續防堵動作。 === 防堵與關閉策略、解除機制 === * 防堵:依規則暫時封鎖來源IP並設定解封時機;可視情境關閉服務或主機以阻斷,但需權衡業務影響。 * 解除的重要性:動態IP易導致封鎖擴散效應;必須設計自動解除與清理機制,避免大量客戶連線失敗。 === 工具與套件 === * Snort:文件完善、提供防禦機制建議,功能偏偵測不含防禦。 * Kismet:屬偵測範疇,作為延伸參考。 * Fail2ban:輕量有效,以正規表示式撰寫偵測條件,套用iptables/NFTables封鎖;建議搭配通知與排程自動解除。要用好需理解服務/HTTP細節並客製規則。 * 整合型套件:如Checkpoint等商用方案;歷史上亦有含偵測防禦的一體化軟體。 === 正規表示式(Regex)概念、語法與環境 === * 定義與用途:描述字串規則以用於搜尋、替換、驗證、格式轉換、日誌篩選。 * 支援環境與工具:UNIX/Linux/macOS、編輯器(VS Code、Vim、Notepad++)、指令(grep/egrep、sed、awk)、語言(PHP、Ruby、Perl、Python);Windows原生部分工具不支援。 * 基本語法: ** 字元集合與範圍:[aA]、[a-v]、[1-8];取反[^a-d]。 ** 類別:\d(數字)、\w(文字字元)、\s(空白);取反:\D、\W、\S。 ** 量詞:*(0到多)、+(1到多)、?(0或1);次數大括號{n}、{m,n}、{m,}。 ** 錨點:^(開頭)、$(結尾)。 ** 選擇(或):(apple|banana),注意長短詞順序避免截斷與貪婪影響。 ** 特殊字元逃脫:點號.為任意字元,匹配實點需用「.」。 * 實務示範與練習:在Vim以/進入搜尋模式;線上工具貼範例觀察match數量與效能;多次「一分鐘」練習消化概念。 === 正則在輸入驗證與資安情境的應用 === * 日期模式(年-月-日,容許一位或兩位月日、分隔符可變):\d{4}非數字分隔\d{1,2}非數字分隔\d{1,2};或以[1-9]\d{3}開頭避免0年。 * 時間模式: ** 24時制:\d{1,2}:\d{1,2};建議後續加範圍檢查(小時0–23、分鐘00–59)。 ** 12時制:\d{1,2}:\d{1,2}\s?(AM|PM)。 * IPv4格式:\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3};先匹配格式,後續再檢查各段<=255。 * 電子郵件:^\w+@\w+(.\w+)+$;教學取「夠用」範圍,RFC複雜情境留待擴充。 * URL(HTTP/HTTPS):https?😕/\S+,以非空白作為主體並思考結尾界定;必要時再限制域名/TLD。 * grep與shell script整合:read -p接輸入,grep比對正則,依$?判斷流程,快速取代繁瑣迴圈。 [[檔案:2026-0504-03.png|800px]] === 入侵偵測工具 Fail2ban === * Fail2ban 簡介與運作原理 ** Fail2ban是一個用於入侵偵測與防禦的軟體,主要功能是保護伺服器免於惡意行為,如暴力破解或DDoS攻擊。 ** 它透過使用「正規表示式」(Regular Expression)來解析日誌檔(LogPath),識別符合預定模式(Filter)的惡意行為。 ** 當符合條件時,便會執行預設的處罰動作(Action),例如使用iptables封鎖來源IP。 * 檔案結構與核心組態 ** 所有設定檔位於/etc/fail2ban/目錄下。 ** jail.d:定義「要做什麼」,整合過濾器和動作來建立完整的防禦規則。 ** filter.d:定義「如何偵測」,也就是惡意行為的模式。 ** action.d:定義「偵測到後怎麼辦」,即處罰的具體措施。 * Nginx 防護規則實作 ** 實作目標:在Web Server 0上設定Fail2ban,規則為:30秒內,對Web Server 0的連線次數超過60次,則封鎖來源IP位址10分鐘。 ** Jail 組態 (ngs200.conf):在/etc/fail2ban/jail.d/中建立檔案,設定enabled=true、filter、action、logpath、findtime、maxretry與bantime等參數。 ** Filter 組態 (ngs200filter.conf):在/etc/fail2ban/filter.d/中建立檔案,定義核心正規表示式failregex = ^<HOST> .* (200|304)$,用以匹配Nginx日誌中成功的請求。 * 環境注意事項(Ubuntu 24.04) ** Ubuntu 24.04 的Fail2ban預設防火牆機制改為nftables,但本次實作基於iptables。 ** 需修改/etc/fail2ban/jail.d/defaults-debian.conf,將[DEFAULT]區塊註解掉,使其回退使用iptables。 * 測試與解除封鎖 ** 透過快速刷新頁面或使用curl指令大量發送請求來觸發封鎖機制。 ** 使用fail2ban-client status檢查規則狀態。 ** 可等待封鎖時間到期自動解除,或手動使用fail2ban-client unban [IP位址]指令解除封鎖。 === 日誌 (Log) 分析與工具 GoAccess === * 日誌的重要性 ** 日誌是了解系統運作盲點、追蹤錯誤、進行交叉關聯分析的關鍵。許多問題無法單從服務當前狀態看出。 ** 透過分析日誌,可以發現網路流量異常、安全性問題、服務異常行為(如404錯誤)、使用者行為模式及伺服器高峰期等。 ** 由於日誌檔案龐大,需要藉助專門的分析套件進行有效解析。 * 日誌分析工具 GoAccess ** GoAccess是一個專為網頁伺服器設計的快速、即時、視覺化的日誌分析工具,支援Nginx、Apache等。 ** 它提供文字型與網頁型兩種統計介面,可即時分析日誌並產生動態報表。 ** 報表內容涵蓋訪客IP、請求時間、瀏覽器、作業系統、HTTP狀態碼、頻寬等。 * 建立獨立分析伺服器 ** 架構:建立一台Analysis Server,透過NFS(Network File System)掛載Web Server 0的Nginx日誌目錄 (/var/log/nginx),以實現日誌分析與服務運行的分離。 ** NFS Server 設定 (Web Server 0):安裝nfs-kernel-server,並在/etc/exports中設定共享目錄與權限,例如:/var/log/nginx 192.168.100.161(ro,norootsquash)。 ** NFS Client 設定 (Analysis Server):安裝nfs-common,建立本地掛載點,並編輯/etc/fstab以實現開機自動掛載遠端唯讀目錄。 * GoAccess 安裝與設定 ** 在Analysis Server上安裝goaccess。 ** 編輯組態檔/etc/goaccess/goaccess.conf,確保time-format、date-format與log-format (NCSACOMBINEDLOG_FORMAT)符合Nginx日誌格式。 ** 執行指令goaccess -F [掛載的日誌路徑]來啟動文字儀表板。 ** 也可將分析結果輸出為HTML檔案,並透過Nginx提供網頁報告。 [[檔案:2026-0511-01.png|800px]]
返回到「
緯育 2026-0422
」。
* [[檔案:2000-Dragon-30.png|15px]] [[附近走走]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[應用程式]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[郵遞區號]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[作品紀錄]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[攝影相簿]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[網路書籤]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[網路照片]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[星艦日誌]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[Privacy_Policy|隱私政策]]<br>
附近走走
應用程式
郵遞區號
作品紀錄
攝影相簿
網路書籤
網路照片
星艦日誌
隱私政策
首頁
wiki工具
wiki工具
特殊頁面
頁面工具
頁面工具
使用者頁面工具
更多
連結至此的頁面
相關變更
頁面資訊
頁面日誌