加固Linux系統----強制實行配額和限制

Linux PAM(插入式認證模塊,Pluggable Authentication Modules)可以強制實行一些實用的限制,在 /etc/security/limits.conf 文件中對此進行配置。謹記,這些限制適用於單個對話。您可以使用 maxlogins 來控制總額限制。limits.conf 中的條目有如下結構: username|@groupname type resource limit

爲了與 username 區別,groupname 之前必須加 @。類型必須是 soft 或者 hard。軟限制(soft-limit)可以被超出,通常只是警戒線,而硬限制(hard-limit)不能被超出。resource 可以是下面的關鍵字之一:

  • core - 限制內核文件的大小(KB)。
  • data - 最大數據大小(KB)。
  • fsize - 最大文件大小(KB)。
  • memlock - 最大鎖定內存地址空間(KB)。
  • nofile - 打開文件的最大數目。
  • rss - 最大持久設置大小(KB)。
  • stack - 最大棧大小(KB)。
  • cpu - 以分鐘爲單位的最多 CPU 時間。
  • nproc - 進程的最大數目。
  • as - 地址空間限制。
  • maxlogins - 此用戶允許登錄的最大數目。

在下面的代碼示例中,所有用戶每個會話都限制在 10 MB,並允許同時有四個登錄。第三行禁用了每個人的內核轉儲。第四行除去了用戶 bin 的所有限制。ftp 允許有 10 個併發會話(對匿名 ftp 帳號尤其實用);managers 組的成員的進程數目限制爲 40 個。developers 有 64 MB 的 memlock 限制,wwwusers 的成員不能創建大於 50 MB 的文件。


清單 3. 設置配額和限制

				
*           hard  rss        10000
*           hard  maxlogins      4
*           hard  core           0
bin         -
ftp         hard  maxlogins     10
@managers   hard  nproc         40
@developers hard  memlock    64000
@wwwusers   hard  fsize      50000

要激活這些限制,您需要在 /etc/pam.d/login 底部添加下面一行: session required /lib/security/pam_limits.so

配額讓您能夠限制用戶和組的 inode 數目和可用空間。注意,配額是在每個加載點上定義的,所以,如果用戶在若干個分區上有寫權限,那麼要確保爲它們每個都定義配額。

配額是管理員最小化 DoS ***的一種方式,這類***以填滿硬盤驅動器上所有可用空間爲手段(這會使其他進程不能創建臨時文件而使它們失敗)。根據您正在使用的發行版本,您可以安裝自帶的配額工具,也可以自己下載、編譯並安裝它們。

必須在內核中啓用配額。當前大部分發行版本都支持配額。如果您的發行版本沒有啓用配額,那麼參考 參考資料 中的 mini-howto 來獲得啓用它們的說明。

要爲文件系統啓用配額,您必須在 /etc/fstab 中爲相應的那行添加一個選項。使用 usrquotagrpquota 來啓用用戶配額和組配額,如清單 4 所示:


清單 4. 啓用用戶配額和組配額

				
/dev/hda1    /           ext3    defaults                     1 1
/dev/hda2    /home       ext3    defaults,usrquota            1 1
/dev/hda3    /tmp        ext3    defaults,usrquota,grpquota   1 1
/dev/hda4    /shared     ext3    defaults,grpquota            1 1
/dev/hdc1    /mnt/cdrom  iso9660 nosuid,user                  1 2
然後,使用 mount -a -o remount 重新掛載相應的文件系統,來激活剛纔添加的選項;然後使用 quotacheck -cugvm 創建一個二進制配額文件,其中包含了機器可讀格式的配額配置。這是配額子系統要操作的文件。

使用工具 edquota 完成配額的指派。要爲用戶 alice 定義限制,則使用 edquota -u alice 來調用它。環境變量 EDITOR 中定義的編輯器(默認是 vi)會打開,其中有類似如下的內容:

Quotas for user alice:
/dev/hda2: blocks in use: 3567, limits (soft = 5500, hard = 6500)
         inodes in use: 412, limits (soft = 1000, hard = 1500)
“in use”值只是爲您提供信息,不能被修改 —— 您能修改的只是軟限制和硬限制。保存並退出編輯器後, edquota 會讀取您剛纔編輯的臨時文件,並將那些值傳遞到二進制配額文件,以使您的修改生效。對組配額的編輯與此相同,只是必須使用 -g 選項而不是 -u

軟限制是警告級別,可以被超出,而硬限制是嚴格強制的。軟限制有一個 寬限期(grace period) (有時也稱爲 軟性時間限制(soft time limits));這是允許用戶超出軟限制直到被系統強制執行之前的時間間隔。

您可以使用 edquota -t 來設置寬限期。可以使用的單位是秒、分、小時、天、周和月。其他管理配額的實用工具包括 repquota(總結某個文件系統的配額)、 quotaonquotaoff(打開和關閉配額)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章