Firewall

為什麼 UFW 使用不同的 sysctl.conf 文件?

  • November 10, 2019

/etc/sysctl.conf 中有很多與網路相關的設置,/etc/sysctl.d/ 中有很多文件。我的數據中心操作員已經預先配置了 Ubuntu 作業系統以使其在他們的環境中工作得最好,還在那裡添加了一個自定義文件。我猜他們在作業系統中處於良好狀態,如果我有充分的理由,我只需要在那裡進行更改。我不完全了解他們可能涵蓋的安全問題的所有細節,所以我不想碰它們。

當我啟用防火牆 UFW(簡單防火牆)時,它的配置文件說它將用 /etc/ufw/sysctl.conf 中的自己的副本覆蓋這些設置。

我對此有兩個問題:

  1. 這是否意味著 /etc/sysctl.conf 文件和 /etc/sysctl.d/* 文件中的所有現有設置都被完全忽略,並且只考慮 /etc/ufw/sysctl.conf ?或者 /etc/ufw/sysctl.conf 中提到的任何內容都會覆蓋其他現有設置(如果我註釋掉或刪除它的所有行,什麼都不會發生)?
  2. 為什麼要使用單獨的文件?舊文件仍然存在,但可能/部分未使用或無效。這似乎是非常糟糕的做法,也是錯誤和混亂的一大來源。記錄了我如何停止這種行為並切換回預設文件(雖然不清楚 /etc/sysctl.d/* 會發生什麼)。為什麼我應該這樣做?為什麼這不是預設設置?

我在網上找不到有關這些主題的任何資訊。有很多地方解釋了 UFW 有單獨的文件,我應該編輯它們。但沒有人解釋原因。我無法在不知道效果的情況下做出決定。

這是我迄今為止發現的部分答案。

閱讀UFW 的原始碼,我發現它只是在 UFW 啟動時從自己的配置文件中載入設置。這意味著此時,它將將該文件中的所有設置添加到已經存在的配置中。這將僅覆蓋此文件中活動的值,並且所有其他設置都保持不變。如果此文件為空,它將什麼也不做。

我還檢查了該文件中的每個鍵,發現 Ubuntu 18.04 沒有重疊。大多數設置都是新的(不包含在現有系統文件中),只有一兩個設置相同的鍵,但也設置相同的值,所以它不會改變任何東西。

基於此,我決定保持原樣。如果我必須調整某些東西,我必須記住檢查三個位置:

  • /etc/sysctl.conf
  • /etc/sysctl.d/*
  • /etc/ufw/sysctl.conf

對於這種設計背後的原因,我仍然沒有答案。IMO,UFW 應該只是將他們的文件添加到 /etc/sysctl.d 目錄中。

看起來(在程式碼中)UFW 永遠不會寫入這個文件,所以它只是一個載入的附加配置文件並且管理員必須維護。它似乎沒有被分開,因為 UFW 想要寫入它。

引用自:https://unix.stackexchange.com/questions/549970