DNS 與網路服務(DNS, Ports, Sockets, SSH)

★★★★★Draft

FromHow Linux Works

📚 From the Books

DNS 與網路服務(DNS, Ports, Sockets, SSH)Linux & Networking

應用層是最貼近使用者的一層:client 透過 TCP/UDP 連到 server 的某個 port,而 DNS 把人類看得懂的名字翻成 IP。這一層的排查工具(lsof、tcpdump、netcat)也是你排「連不上」時最先掏出來的東西。

🧠 Intuition

TIP

Socket 是 process 存取網路的介面,也是 user space 與 kernel 的邊界。伺服器的典型流程:master 用 listener socket 監聽 → 有連線就 accept() 建專屬讀寫 socket → fork() 子行程處理 → listener 繼續監聽下一個。

⚖️ Tradeoffs

服務全開、明文協定 — 攻擊面過大
  • Linux 是熱門伺服器平台、天生是攻擊目標;ftpd、telnetd、rlogind 這類明文傳輸密碼的服務應停用。
  • 對外開 SSH 會不斷收到暴力破解——用 fail2ban 監控 log、多次失敗就以 iptables 封鎖來源。
  • 常見漏洞:直接攻擊未保護的服務(buffer overflow)、明文密碼嗅探。
最小化服務 + 防火牆 + 加密 — 基本守則
  • 只開需要的服務、內部服務(如 RPC 111)用防火牆擋在外、保持軟體更新並追蹤安全警報。
  • 排查用工具鏈:lsof -i 看誰在聽 port、tcpdump 抓封包、netcat 當萬用 TCP/UDP 測試、nmap 掃開放 port(掃別人網路前先取得授權)。
  • 需要加密卻用不支援加密的服務時,可用 Stunnel 包一層 TLS;值得深入學 TLS/SSL 的公鑰與憑證機制。

🔑 Takeaways

✍️ My Notes

No notes yet — jot your takeaways or Q&A here.

📖 Further Reading

🔗 Dive Deeper