Linux下apache安全配置策略
添加時間:2015-6-2 21:11:57
添加:
思海網絡
Apache具有靈活的設置,所有Apache的安全特性都要經過周密的設計與規劃,進行認真地配置才能夠實現。Apache安全配置包括很多層面,有運行環境、認證與授權設置等。Apache的安裝配置和運行示例如下:
1 修改apache的版本信息,使外部訪問看到的apache信息是經過偽裝或錯誤的,這個可以盡可能的保證apache的安全。
2 建立安全的apache的目錄結構。ServerRoot DocumentRoot ScripAlias Customlog Errorlog 均放在單獨的目錄環境中。以上主要目錄相互獨立并且不存在父子邏輯關系。
ServerRoot目錄只能具有管理權限用戶訪問;DocumentRoot能夠被管理Web站點內容的用戶訪問和使用Apache服務器的Apache用戶和Apache用戶組訪問;只有admin組的用戶可以訪問日志目錄。 各個目錄設置獨立的權限
4、禁止默認訪問的存在,只對指定的目錄開啟訪問權限。
5 更改apache的默認路徑,單獨建立路徑提供apache文件的存放
6、通過使用例如“Apache DoS Evasive Maneuvers Module ”等工具來實現Apache服務器對DoS攻擊的防范。其工具可以快速拒絕來自相同地址對同一URL的重復請求。
7、以Nobody用戶運行
一般情況下,Apache是由Root 來安裝和運行的。如果Apache Server進程具有Root用戶特權,那么它將給系統的安全構成很大的威脅,應確保Apache Server進程以最可能低的權限用戶來運行。通過修改httpd.conf文件中的下列選項,以Nobody用戶運行Apache 達到相對安全的目的。
User nobody
Group# -1
2、ServerRoot目錄的權限
為了確保所有的配置是適當的和安全的,需要嚴格控制Apache 主目錄的訪問權限,使非超級用戶不能修改該目錄中的內容。Apache 的主目錄對應于Apache Server配置文件httpd.conf的Server Root控制項中,應為:
Server Root /usr/local/apache
3、SSI的配置
在配置文件access.conf 或httpd.conf中的確Options指令處加入Includes NO EXEC選項,用以禁用Apache Server 中的執行功能。避免用戶直接執行Apache 服務器中的執行程序,而造成服務器系統的公開化。
Options Includes Noexec
4、阻止用戶修改系統設置
在Apache 服務器的配置文件中進行以下的設置,阻止用戶建立、修改 .htaccess文件,防止用戶超越能定義的系統安全特性。
AllowOveride None
Options None
Allow from all
然后再分別對特定的目錄進行適當的配置。
5、改變Apache 服務器的確省訪問特性
Apache 的默認設置只能保障一定程度的安全,如果服務器能夠通過正常的映射規則找到文件,那么客戶端便會獲取該文件,如http://local host/~ root/ 將允許用戶訪問整個文件系統。在服務器文件中加入如下內容:
order deny,ellow
Deny from all
將禁止對文件系統的缺省訪問。
6、CGI腳本的安全考慮
CGI腳本是一系列可以通過Web服務器來運行的程序。為了保證系統的安全性,應確保CGI的作者是可信的。對CGI而言,最好將其限制在一個特定的 目錄下,如cgi-bin之下,便于管理;另外應該保證CGI目錄下的文件是不可寫的,避免一些欺騙性的程序駐留或混跡其中;如果能夠給用戶提供一個安全 性良好的CGI程序的模塊作為參考,也許會減少許多不必要的麻煩和安全隱患;除去CGI目錄下的所有非業務應用的腳本,以防異常的信息泄漏。
以上這些常用的舉措可以給Apache Server 一個基本的安全運行環境,顯然在具體實施上還要做進一步的細化分解,制定出符合實際應用的安全配置方案。
Apache Server基于主機的訪問控制
Apache Server默認情況下的安全配置是拒絕一切訪問。假定Apache Server內容存放在/usr/local/apache/share 目錄下,下面的指令將實現這種設置:
Deny from all
Allow Override None
則禁止在任一目錄下改變認證和訪問控制方法。
同樣,可以用特有的命令Deny、Allow指定某些用戶可以訪問,哪些用戶不能訪問,提供一定的靈活性。當Deny、Allow一起用時,用命令Order決定Deny和Allow合用的順序,如下所示:
1、 拒絕某類地址的用戶對服務器的訪問權(Deny)
如:Deny from all
Deny from test.cnn.com
Deny from 204.168.190.13
Deny from 10.10.10.0/255.255.0.0
2、 允許某類地址的用戶對服務器的訪問權(Allow)
如:Allow from all
Allow from test.cnn.com
Allow from 204.168.190.13
Allow from 10.10.10.0/255.255.0.0
Deny和Allow指令后可以輸入多個變量。
3、簡單配置實例:
Order Allow, Deny
Allow from all
Deny from www.test.com
指想讓所有的人訪問Apache服務器,但不希望來自www.test.com的任何訪問。
Order Deny, Allow
Deny from all
Allow from test.cnn.com
指不想讓所有人訪問,但希望給test.cnn.com網站的來訪。
Apache Sever的用戶認證與授權
概括的講,用戶認證就是驗證用戶的身份的真實性,如用戶帳號是否在數據庫中,及用戶帳號所對應的密碼是否正確;用戶授權表示檢驗有效用戶是否被許可訪 問特定的資源。在Apache中,幾乎所有的安全模塊實際上兼顧這兩個方面。從安全的角度來看,用戶的認證和授權相當于選擇性訪問控制。
建立用戶的認證授權需要三個步驟:
1、建立用戶庫
用戶名和口令列表需要存在于文件(mod_auth模塊)或數據庫(mod_auth_dbm模塊)中。基于安全的原因,該文件不能存放在文擋的根目 錄下。如,存放在/usr/local/etc/httpd下的users文件,其格式與UNIX口令文件格式相似,但口令是以加密的形式存放的。應用程 序htpasswd可以用來添加或更改程序:
htpasswd –c /usr/local/etc/httpd/users martin
-c表明添加新用戶,martin為新添加的用戶名,在程序執行過程中,兩次輸入口令回答。用戶名和口令添加到users文件中。產生的用戶文件有如下的形式:
martin:WrU808BHQai36
jane:iABCQFQs40E8M
art:FadHN3W753sSU
第一域是用戶名,第二個域是用戶密碼。
2、配置服務器的保護域
為了使Apache服務器能夠利用用戶文件中的用戶名和口令信息,需要設置保護域(Realm)。一個域實際上是站點的一部分(如一個目錄、文檔等) 或整個站點只供部分用戶訪問。在相關目錄下的.htaccess文件或httpd.conf ( acces.conf ) 中的段中,由AuthName來指定被保護層的域。在.htaccess文件中對用戶文件有效用戶的授權訪問及指定域保護有如下指定:
AuthName “restricted stuff”
Authtype Basic
AuthUserFile /usr/local/etc/httpd/users
Require valid-user
其中,AuthName指出了保護域的域名(Realm Name)。valid-user參數意味著user文件中的所有用戶都是可用的。一旦用戶輸入了一個有效的用戶/口令時,同一個域內的其他資源都可以利 用同樣的用戶/口令來進行訪問,同樣可以使兩個不同的區域共用同樣的用戶/口令。
3、告訴服務器哪些用戶擁有資源的訪問權限
如果想將一資源的訪問權限授予一組客戶,可以將他們的名字都列在Require之后。最好的辦法是利用組(group)文件。組的操作和標準的UNIX的組的概念類似,任一個用戶可以屬于一個和數個組。這樣就可以在配置文件中利用Require對組賦予某些權限。如:
Require group staff
Require group staff admin
Require user adminuser
指定了一個組、幾個組或一個用戶的訪問權限。
關鍵字:Linux、apache、安全配置、策略、服務器
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解