Ubuntu

為 Ubuntu 20.04 EC2 實例打開所需的傳出埠(除了 TCP 80/443)

  • June 3, 2020

我正在強化在預設 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 服務,它在沒有打開這些傳出埠的情況下工作。

引用自:https://serverfault.com/questions/1018621