[英]Securing $HOME and public_html on Ubuntu server 14.04 running Apache2 + userdir
我在Ubuntu Server 14.04上運行Apache2 + userdir
。 用戶已根據AD進行身份驗證,並可以通過SSH成功登錄此服務器。 每個用戶$HOME
具有700
權限,以禁止用戶更改和讀取其他用戶文件。
目錄/home/public_html
由Apache( www-data:www-data
)擁有,並具有775
權限,因此每個用戶( www-data
組的成員)都可以在/home/public_html
其用戶名創建自己的子目錄,並創建他/她的$HOME
符號鏈接。 這是用戶名為jdoe43
的示例用戶的示例:
/home/Domain/jdoe43
是$ HOME目錄(具有權限700) /home/public_html/jdoe43
是用戶jdoe43
的public_html
目錄,該目錄符號鏈接到/home/Domain/jdoe43/public_html
UserDir
指令設置為/home/public_html
。 userdir.conf
的其余部分默認為Ubuntu安裝,下面列出以供參考:
<IfModule mod_userdir.c>
UserDir /home/public_html
UserDir disabled root
<Directory /home/public_html/*>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Require all granted
</Limit>
<LimitExcept GET POST OPTIONS>
Require all denied
</LimitExcept>
</Directory>
</IfModule>
我期待找到適當的權限集以允許
/home/public_html/*
public_html
目錄 並同時禁止
/home/public_html/
的另一個用戶的public_html
目錄的內容 我嘗試使用不同的權限集進行的所有操作最終都導致了Apache無法訪問用戶的public_html
或用戶至少具有讀取其他用戶的$HOME
或public_html
訪問權限。
我發現了幾篇建議使用selinux並配置文件系統以通過權限拒絕對其他用戶目錄的訪問的帖子(就像我通過將$HOME
設置為700
來對$HOME
所做的那樣),並同時授予了 Apache進程(通過selinux
)訪問/home/public_html
及其所有子目錄。 我還找到了一些資源,指出在Ubuntu的最新版本中已替換了selinux
以便使用apparmor
,因此,由於我對該技術的經驗有限,因此決定推遲對其實現的任何調整。
任何建議/建議都受到高度贊賞。 謝謝。
可能會有一個selinux布爾值,使您可以相對輕松地進行此類操作。
ubuntu Wiki將您帶到debian SELinux頁面,該頁面確認它們使用與其他發行版相同的引用(當然)。 我剛剛檢查了針對Apache的策略,並且布爾值在那里。 如果您已經擁有啟用selinux的ubuntu,則可以輕松地檢查是否通過以下方式啟用了布爾值
getsebool httpd_enable_homedirs
並檢查布爾值是true還是false(默認為false)。
如圖所示這里 ,使的UserDir后,您需要啟用布爾
setsebool -P httpd_enable_homedirs true
並為每個用戶重新標記目錄
chcon -R -t httpd_sys_content_t /home/testuser/public_html
請注意,public_html目錄上的Unix權限仍然是755或用戶/組設置所需的任何權限。
chown testuser:testuser /home/testuser/public_html
chmod 755 /home/testuser/public_html
如果您希望采用SELinux的方式,那是您需要做的。 我對AppArmor和其他替代產品知之甚少,但是正如您所說的,Ubuntu Wiki對selinux的支持並不十分清楚。
如果您有空閑時間,建議您在測試VM上試用一下,看看它如何進行。
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.