注:以下所有操作均在CentOS 6.5 x86_64位系統下完成。
#准備工作#
在安裝Nginx之前,請確保已經使用yum安裝了各基礎組件,並且配置了www用戶和用戶組,具體見《CentOS安裝Nginx-1.6.2+安全配置》。
另外還需要先安裝以下幾個組件:
1、安裝Sqllite:
# wget http://www.sqlite.org/2014/sqlite-autoconf-3080704.tar.gz # tar zxf sqlite-autoconf-3080704.tar.gz # cd sqlite-autoconf-3080704 # ./configure --prefix=/usr/local/sqlite-3.8.7.4 # make && make install
2、安裝apr:
# tar zxf apr-1.4.5.tar.gz # cd apr-1.4.5 # ./configure --prefix=/usr/local/apr-1.4.5 # make && make install
3、安裝apr-util:
# tar zxf apr-util-1.3.12.tar.gz # cd apr-util-1.3.12 # ./configure --prefix=/usr/local/apr-util-1.3.12 --with-apr=/usr/local/apr-1.4.5 # make && make install
#Apache的安裝#
開始下載Apache並進行編譯安裝:
# cd /usr/local/src # wget http://mirrors.hust.edu.cn/apache//httpd/httpd-2.4.10.tar.gz # tar zxf httpd-2.4.10.tar.gz # cd httpd-2.4.10 # ./configure --prefix=/usr/local/apache-2.4.10 --with-apr=/usr/local/apr-1.4.5 --with-apr-util=/usr/local/apr-util-1.3.12 --enable-dav --enable-so --enable-maintainer-mod --enable-rewrite --with-sqlite=/usr/local/sqlite-3.8.7.4 # make && make install # cp /usr/local/apache-2.4.10/conf/httpd.conf /usr/local/apache-2.4.10/conf/httpd.conf.default # ln -s /usr/local/apache-2.4.10/ /usr/local/apache
接著修改http.conf配置文件:
# vim /usr/local/apache-2.4.10/conf/httpd.conf Listen 8888 User www Group www LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule rewrite_module modules/mod_rewrite.so
注:這裡我們配置其監聽端口是8888,並且開啟DAV模塊和Rewrite模塊。
之後保存文件並開啟apache服務:
# /usr/local/apache/bin/apachectl start
注意新版本的Apache已經禁止以root用戶啟動Apache,啟動後如下所示:
# ps aux | grep httpd www 10087 0.0 0.5 221664 2960 ? Sl 15:41 0:00 /usr/local/apache-2.4.10/bin/httpd -k start www 10088 0.0 0.5 221664 2964 ? Sl 15:41 0:00 /usr/local/apache-2.4.10/bin/httpd -k start www 10089 0.0 0.7 287200 3528 ? Sl 15:41 0:00 /usr/local/apache-2.4.10/bin/httpd -k start www 10171 0.0 0.5 221664 2968 ? Sl 15:41 0:00 /usr/local/apache-2.4.10/bin/httpd -k start root 12966 0.0 0.7 98588 3872 ? Ss 2014 0:15 /usr/local/apache-2.4.10/bin/httpd -k start root 10331 0.0 0.1 103252 836 pts/0 S+ 15:49 0:00 grep httpd
注:這裡有個httpd進程是root的,這是正常的,因為啟動後root才會fork出ww權限的進程,用戶的請求由www權限進程處理。
這個時候打開浏覽器訪問地址http://youripaddress:8888/應該可以看到:
至此,Apache已經安裝完畢並且已經啟動成功。
#Apache的安全配置#
1、Apache默認是允許目錄浏覽的,如果目錄下沒有索引文件則會出現目錄浏覽漏洞,所以這裡需要關閉目錄浏覽。這裡直接選擇全局關閉:
# vim /usr/local/apache/conf/httpd.conf <Directory "/usr/local/apache-2.4.10/htdocs"> Options Indexes FollowSymLinks Require all granted </Directory>
注:原來的Indexes改成-Indexes,也可以選擇在.htacess文件中部分禁止該功能,或者直接把Indexes這行刪除。
2、Apache默認輸出的banner會洩漏關鍵信息,比如服務器OS類型、Apache版本等。可以禁止起輸出這些信息:
# vim /usr/local/apache/conf/httpd.conf ServerSignature Off ServerTokens Prod
注:直接在文件末尾添加內容即可。
3、開啟訪問日志並正確配置其路徑(默認已開啟):
# vim /usr/local/apache/conf/httpd.conf <IfModule log_config_module> CustomLog "logs/access_log" common </IfModule>
4、確保目錄安全,由於是以www用戶啟動Apache的,所以可以設置Web目錄和文件的屬主為root用戶,Web目錄統一設置權限為755,Web文件權限統一設置為644(cgi文件若需執行可設置為755),只有上傳目錄需要可讀寫的權限設置為777。
# chown -R root:root /data/www/ # chmod 755 /data/www/ # chmod -R 777 /data/www/upload
另外,為了防止黑客上傳可執行腳本到777目錄下,必須設置該目錄為不能執行或訪問腳本,比如:
# vim /usr/local/apache/conf/httpd.conf <Directory "/usr/local/apache/htdocs/yourpath"> Options None AllowOverride None Order deny,allow Deny from all <FilesMatch "\.(jpg|jpeg|gif|png)$"> Order deny,allow Allow from all </FilesMatch> </Directory>
5、對管理目錄設置訪問IP名單限制,比如:
# vim /usr/local/apache/conf/httpd.conf <Directory "/usr/local/apache/htdocs/admin"> Order deny,allow Deny from all Allow from pair 11.12.23.0/24 </Directory>
6、去掉UserDir功能(默認已關閉)。
http://xxxxxx/Linuxjc/1178063.html TechArticle