LAMP安全加固之apache篇
圖-LAMP
一用LAMP,我就想到LAMP安全的問題,安全那是必須要搞定的!看看我是如何辦的!
apache方面:
1.修改banner
編譯源代碼,修改默認(rèn)的banner
ServerTokens ProductOnly
ServerSignature Off
在apache的源碼包中找到ap_release.h將
#define AP_SERVER_BASEPRODUCT “Apache”
修改為
#define AP_SERVER_BASEPRODUCT “Microsoft-IIS/6.0”
os/unix下的os.h文件
#define PLATFORM “Unix”
修改為
#define PLATFORM “Win32“
2.修改默認(rèn)的http狀態(tài)響應(yīng)碼404,503等默認(rèn)頁面
3.Apache的訪問權(quán)限控制
htpasswd -b -c /(存放密碼文件路徑)/.htpasswd username password
Alias /hack “/var/www/html/hack/”
authname “test”
authtype basic
authuserfile /var/www/html/hack/.htpasswd
require user kindle
#p#
4.關(guān)閉危險(xiǎn)指令
清除FollowSymlinks指令
關(guān)閉索引目錄
Options Indexes FollowSymLinks
關(guān)閉CGI執(zhí)行程序
5.open_basedir 限制目錄
用法:php_admin_value open_basedir /var/www
php_admin_value open_basedir 引起的上傳文件失敗解決方法
將上傳文件的臨時(shí)目錄加入到php_admin_value open_basedir后面,最后看起來是這樣的:
php_admin_value open_basedir “/usr/local/apache/htdocs/www/:/tmp/”
注意:兩個(gè)目錄之間是冒號隔開。
把PHP腳本操作限制在web目錄可以避免程序員使用copy函數(shù)把系統(tǒng)文件拷貝到web目錄。move_uploaded_file不受open_basedir的限制,所以不必修改php.ini里upload_tmp_dir的值。
6.掌握Apache的Order Allow Deny判斷原則
1. 首先判斷默認(rèn)的;
2. 然后判斷逗號前的;
3. 最后判斷逗號后的;
4. 最終按順序疊加而得出判斷結(jié)果。
ex:
apache的php擴(kuò)展名解析漏洞
Order Allow,Deny
Deny from all
apache設(shè)置上傳目錄無執(zhí)行權(quán)限
Order allow,deny
Deny from all
7.mod_rewrite重寫URL
重寫規(guī)則的作用范圍
1.使用在Apache主配置文件httpd.conf中。
2.使用在httpd.conf里定義的配置中。
3.使用在基本目錄的跨越配置文件.htaccess中。
1.url重定向80到443端口
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/?(.*)$ https://www.kindle.com/$1 [L,R]
含義是這樣的:為了讓用戶訪問傳統(tǒng)的http://轉(zhuǎn)到https://上來,用了一下rewrite規(guī)則:
第一句:啟動(dòng)rewrite引擎
第二句:rewrite的條件是訪問的服務(wù)器端口不是443端口
第三句:這是正則表達(dá)式,^是開頭,$是結(jié)束,/?表示有沒有/都可以(0或1個(gè)),(.*)是任何數(shù)量的任意字符
整句的意思是講:啟動(dòng)rewrite模塊,將所有訪問非443端口的請求,url地址內(nèi)容不變,將http://變成https://
#p#
8.Speling模塊去除url大小寫
確認(rèn)speling模塊存在并已加載
啟動(dòng)speling
CheckSpelling .
AllowOverride None
Order allow,deny
Allow from all
9. Limit模塊限制IP連接數(shù)
下載模塊 http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz
安裝:
tar zxvf mod_limitipconn-0.04.tar.gz
cd mod_limitipconn-0.04
make APXS=/usr/local/apache/bin/apxs ß—–這里要按你自己的路徑設(shè)置
make install APXS=/usr/local/apache/bin/apxs ß—–這里要按你自己的路徑設(shè)置
編輯httpd.conf
添加
全局變量:
< IfModule mod_limitipconn.c >
< Location / > # 所有虛擬主機(jī)的/目錄
MaxConnPerIP 3 # 每IP只允許3個(gè)并發(fā)連接
NoIPLimit image/* # 對圖片不做IP限制
< /Location >
< Location /mp3 > # 所有主機(jī)的/mp3目錄
MaxConnPerIP 1 # 每IP只允許一個(gè)連接請求
OnlyIPLimit audio/mpeg video # 該限制只對視頻和音頻格式的文件
< /Location >
< /IfModule >
9.讓apache支持安全HTTPS協(xié)議
yum -y install mod_ssl
cd /etc/httpd/conf 進(jìn)入HTTP服務(wù)器配置文件所在目錄
rm -rf ssl.*/server.* 刪除默認(rèn)或殘留的服務(wù)器證書相關(guān)文件
rpm -qa |grep openssl
openssl genrsa -out www.kindle.com.key 1024 建立服務(wù)器密鑰
openssl req -new –key www.kindle.com.key -out www.kindle.com.csr 建立服務(wù)器公鑰
openssl x509 -req -days 365 -in www.kindle.com.csr -signkey www.kindle.com.key -out www.kindle.com.crt 建立服務(wù)器證書
/etc/rc.d/init.d/httpd restart 重啟服務(wù)
netstat -ntpl |grep 443
可以到http://www.startssl.com獲取合法證書(免費(fèi))
10.安裝配置mod_security
下載:http://www.modsecurity.org/download/modsecurity-1.8.7.tar.gz
http://fedoranews.org/jorge/mod_security/mod_security.conf
安裝:下載到/opt/soft目錄下。
# tar –zxvf modsecurity-1.8.7.tar.gz
# cd modsecurity-1.8.7
#cd apache2
# /opt/apache/bin/ apxs -cia mod_security.c
#copy mod_security.conf /opt/apache/conf
配置:
在/opt/apache/conf/httpd.conf中添加下面一行:
Include conf/mod_security.conf
/opt/apache/bin/apachectl stop
/opt/apache/bin/apachectl startssl
更詳細(xì)的mod_security的配置
通過文章,我們知道了LAMP安全里面的apache,在后面的文章為大家介紹PHP和Mysql安全。希望大家繼續(xù)關(guān)注。
【編輯推薦】
- LAMP下虛擬主機(jī)用戶個(gè)人網(wǎng)頁的架設(shè)
- 從 WAMP 到 LAMP 看穿 LAMP
- 運(yùn)用apt工具傻瓜式安裝、配置、拆卸、卸載LAMP
- LAMP Web 技術(shù)平臺體系簡介
- 編譯安裝lamp 常用項(xiàng)目
- LAMP web機(jī)制 詳解 (圖)