Ubuntu
為 Ubuntu 20.04 EC2 實例打開所需的傳出埠(除了 TCP 80/443)
我正在強化在預設 Ubuntu 20.04 AMI 上執行的 EC2 實例的安全組。關閉除 TCP 80 和 TCP 443 之外的所有傳出埠後,哪些系統服務會中斷?(我假設應用程序所需的所有埠也是開放的。我擔心的是破壞作業系統提供的隱式服務。)
**我的理解是,允許 TCP 80/443 對於基本的作業系統服務就足夠了。**例如,
apt-get
更新應該有效。還是我錯過了 Ubuntu 或 AWS 一直希望開放的埠?旁注:我想知道時間同步是如何工作的。預設情況下,我看不到預設 Ubuntu AMI 上預安裝的任何 NTP 或 chrony 服務。否則,UDP 埠 123 也應該打開。我的假設是 VM 提供的(來賓)硬體時鐘已經由主機(由 AWS 操作)同步。除此之外,我想不出從作業系統的角度來看需要允許的任何埠。
根據應用程序將使用的 AWS 服務,需要更多埠,例如 ElastiCache (Redis) 需要 6379。然而,我擔心並非源自已部署應用程序的 API 呼叫。您可以假設應用程序的要求是已知的。環境(作業系統和 EC2 基礎設施)的要求更加棘手。
在 Ubuntu 20.04 中,允許傳出 http 和 https 流量就足夠了。但是,我遇到了 NTP 的問題。我嘗試打開 UDP 埠 123 失敗。我不知道為什麼,但為了解決它,我最終從 AWS 切換到內部時間同步服務:
$ cat /etc/systemd/timesyncd.conf [Time] NTP=169.254.169.123
如果時鍾正在同步,您應該得到以下輸出:
$ timedatectl ... System clock synchronized: yes ...
如果沒有,請通過以下方式檢查日誌:
$ journalctl --unit=systemd-timesyncd
ntp.ubuntu.com:123
就我而言,即使在打開埠 UDP 123 之後(我什至也嘗試打開 TCP 123),連接到 時我仍然超時。使用 AWS 服務,它在沒有打開這些傳出埠的情況下工作。