CentOS安裝Apache-2.4.25+安全配置


 

注:以下所有操作均在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:

# wget http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz
# tar zxf apr-1.5.2.tar.gz
# cd apr-1.5.2
# ./configure --prefix=/usr/local/apr-1.5.2
# make && make install

3、安裝apr-util:

# wget http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz
# tar zxf apr-util-1.5.4.tar.gz
# cd apr-util-1.5.4
# ./configure --prefix=/usr/local/apr-util-1.5.4 --with-apr=/usr/local/apr-1.5.2
# make && make install

 #Apache的安裝#

開始下載Apache並進行編譯安裝:

# cd /usr/local/src
# wget http://archive.apache.org/dist/httpd/httpd-2.4.25.tar.gz
# cd httpd-2.4.25
# ./configure --prefix=/usr/local/apache-2.4.25 --with-apr=/usr/local/apr-1.5.2 --with-apr-util=/usr/local/apr-util-1.5.4 --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.25/conf/httpd.conf /usr/local/apache-2.4.25/conf/httpd.conf.default
# ln -s /usr/local/apache-2.4.25/ /usr/local/apache

接着修改http.conf配置文件:

# vim /usr/local/apache-2.4.25/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.25/bin/httpd -k start
www      10088  0.0  0.5 221664  2964 ?        Sl   15:41   0:00 /usr/local/apache-2.4.25/bin/httpd -k start
www      10089  0.0  0.7 287200  3528 ?        Sl   15:41   0:00 /usr/local/apache-2.4.25/bin/httpd -k start
www      10171  0.0  0.5 221664  2968 ?        Sl   15:41   0:00 /usr/local/apache-2.4.25/bin/httpd -k start
root     12966  0.0  0.7  98588  3872 ?        Ss    2014   0:15 /usr/local/apache-2.4.25/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.25/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功能(默認已關閉)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM