[TOC] # W7 Docker 續、Samba、Mail Server - Container 是什麼 ## Volume ::: success 將容器應用程式設計成 無狀態 是一種 best practice,狀態指應用程式在某時刻儲存的資料或上下文資訊,狀態資料要放在外部,需要時再注入容器中。 ::: 若volume沒被容器掛載還是會留著,讓資料在容器重建後仍能取回。 ## SAMBA * 使用情境:系統、環境(生態系)間的檔案傳輸 其他,依據情境與需求選擇 | 軟體 | 使用情境 |優缺| | ---- | -------- |----| | FTP | 網站檔案傳輸 |安全性低| | NFS | Linux/Unix系統間檔案共享 |Windows原生不支援| | Apple File Service | Mac 環境內檔案共享 |限於 Apple 生態、跨平台性差| | Samba | 混合辦公室共享檔案、印表機 |需手動設定`smb.conf`、不同版本間存在相容性問題| ### Windows 網路芳鄰 * 發現其他電腦(透過NetBIOS over TCP/IP技術實現),似廣播發出訊號,告訴網路「我叫什麼、在哪」 >NetBIOS over TCP/IP: 一種軟體介面, * 存取共享資源(以 SMB 技術連線),負責檢查權限,確保只有授權用戶可以存取、使檔案存取安全穩定 >Server Message Block (SMB): 客戶端-伺服器通信協議,讓電腦在安全的環境中存取檔案 * CIFS:在 windows 環境共享檔案 * NFS:在 Linux/Unix 環境共享檔案、印表機,遠端掛載(mount)把遠端系統當本地硬碟使用 |特性|CIFS|NFS |--|--|-- |適用系統|windows|Linux/Unix |權限管理|ACL|UID/GID |功能|檔案、印表機共享|僅檔案共享 |優點|跨平台、整合 AD、安全|高效、簡單 |缺點|需 Samba 支援 Linux|不支援 Windows |網路芳鄰|原生系統|需額外工具 ### Samba * smbd * smb.conf * nmbd ### 實做 1.安裝 ``` sudo apt update sudo apt install samba -y ``` 2.公開資料夾設為匿名擁有者 ``` sudo mkdir -p /home/auth_edit /home/public_read sudo chown nobody:nogroup /home/public_read ``` 3.公開讀取權限 ``` sudo chmod 755 /home/public_read ``` 4.登入用戶群組權限 ``` sudo chmod 755 /home/auth_edit ``` 5.建立用戶 sambauser ``` sudo adduser sambauser ``` 6.設定 Samba 密碼 ``` sudo smbpasswd -a sambauser sudo smbpasswd -e sambauser ``` ### 如何連上windows 重啟服務之後要去左上角/網路/網路設定/選橋接介面卡/Wifi那個/確定,重新啟動。  在windows終端機輸入: ``` net use * \\<SAMBA 伺服器的 IP 地址>\public_read /user:sambauser ``` windows就有一個跟linux共用的資料夾/home/public_read  斷開 ``` net use \\<SAMBA 伺服器的 IP 地址>\shared /delete ``` ## Mail server 使用者名稱@severname * MUA - 郵件使用代理(使用者收發郵件的程式) * MSA - 郵件代理提交(負責郵件提交及驗證) * MTA - 郵件傳輸代理(伺服器之間郵件傳輸的中繼點) * MDA - 郵件傳所代理(似住宅管理室,將郵件存入收件人信箱資料夾) * MRA - 把信件下載回本機(讓收件人下載或遠端讀取郵件) ```mermaid graph LR A((MUA)) A --> B[/MSA/] B --> C[MTA] C --> D((網路)) D --> E[MTA] E --> F[MDA] F --> G[\MRA\] G --> H((MUA)) C --> I[\MDA\] I --> J{{MRA}} J --> K((MUA)) ``` component 之間怎麼溝通?用甚麼port? ## SMTP 1. port * 25 預設 * 465 透過 SSL 加密 * 587 透過 TLS 加密 2. 寄送電子郵件,MUA->MSA,MSA->MTA,MTA->MTA ## IMAP 網際網路訊息存取通訊協定 1. port * 不安全:143 * 安全:993 透過 TLS/SSL加密 2. 在mail server 上存取和管理電子郵件的協定 3. 任何地方,使用任何裝置都能存取電子郵件 ## POP3 1. port * 不安全: 110 * 安全: 995,透過 TLS/SSL 加密 2. 從 mail server 下載所有郵件到電腦上後,將使用者 mailbox 內的資料刪除 ``` dig <<一個網域>> MX ``` 為甚麼一個網站要有三個IP 因為怕一個IP當掉,有其他可以彌補 ## Lab 架設郵件伺服器 1.安裝postfix ``` sudo apt install postfix ``` 進入紫色的畫面 按下enter就好 * Internet Site 本機直接對外寄收郵件 * Internet with smarthost 本機寄信經由指定 SMTP 轉發 * Satellite system 本機只發信,靠中央伺服器寄出 * Local Only 僅本機內部收發郵件,不連網 5. ``` sudo apt install mailutils ``` ``` echo "This is the body of the email" | mail -s "This is the subject line" [電腦使用者名稱]@localhost ``` ``` sudo cat /var/mail/[電腦使用者名稱] #你會看到一封信 ``` 寄信 1. `telnet localhost 25` * SPF(Sender Policy Framework): 寄件伺服器來源驗證機制,讓收件伺服器知道哪幾台主機有權替某個網域寄信 * DKIM(DomainKeys Identified Mail): 郵件內容簽章驗證機制,網域驗證郵件 * DMARC: 整合 SPF 和 DKIM 的驗證結果,以領域名稱為主的訊息驗證、報告與確認機制 # 作業 ssh 登入你的 moli.lsa.tw, 寄信給 hwmail@localhost ``` ssh [s學號]@moli.lsa.tw ``` ``` echo "請給我作業說明" | mail -s "作業要求" hwmail@localhost ``` 可以看到作業內容 ``` cat /var/mail/[s學號] ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up