新的網頁伺服器:我應該建立哪些使用者帳戶以及提供哪些權限

新的網頁伺服器:我應該建立哪些使用者帳戶以及提供哪些權限

這是我的問題的後續這裡

我正在設定第一個網頁伺服器,並正在摸索要建立哪些使用者帳戶以及提供更好安全性的權限。以下是我所擁有的。

對於 2 個開發人員,我有 2 個帳戶(並且它們被添加到補充組中devs),並且只有他們被允許 ssh 到伺服器。對於Web應用程式(基於Django),我創建了1個具有shell存取權限的普通使用者app(尚未將其配置為--system使用者並屬於群組app)。 2 個開發人員在 ssh 連接到伺服器後,將 su 進行app任何更新並啟動/停止應用程式。app不允許使用者執行(透過不添加到usingsu中的群組設定來阻止)。我還有一個沒有能力執行備份相關任務的第三個帳戶,其中 cron 作業將進行 ssh 並取得日誌檔案、狀態等。/etc/pam.d/supam_wheel.sosu

如果安全方面需要改進,請告訴我。 (PS:我是新手)

答案1

su需要共享密碼。我比較喜歡須藤。因此,開發人員可以運行為sudo -u app command運行,或運行為 啟動互動式 shell 。可能如果您已將的 shell 設定為 /bin/false 或 /bin/true 之類的內容。commandappsudo -u app -iappsudo -u app -i /bin/bashapp

如果他們不需要完整的 shell 作為應用程序,而只需要重新啟動應用程序,您可以限制他們可以作為應用程式運行的命令。在他們需要存取的目錄上使用預設 ACL,這會向開發人員和應用程式授予存取權限,這樣您就不會遇到檔案系統權限問題。恕我直言,您需要遵循最小特權原則。如果他們不需要這樣做,請不要授予他們這樣做的權限。

通常我更喜歡僅將密鑰用於 ssh。如果可以的話,請停用開發人員的密碼,並將 sudo 規則設定為不需要密碼。這樣任何人都不需要密碼,因此也沒有密碼可以洩漏/遺失/重設。

今晚的閱讀作業,因為這篇文章的內容有點多:「檔案系統 ACL 如何運作」和「如何設定 sudo」。也許接下來是管理 ssh 金鑰。

相關內容