CentOS安裝Apache-2.4.10+安全配置

来源:http://www.cnblogs.com/brishenzhou/archive/2016/12/07/6140519.html
-Advertisement-
Play Games

CentOS 6.5 x86_64系統下安裝Apache-2.4.10,並且根據生產環境需要做了一定的安全配置。 ...


 

註:以下所有操作均在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功能(預設已關閉)。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言:打算做一個藥材價格查詢的功能,但剛開始一點數據都沒有靠自己找信息錄入的話很麻煩的,所以只有先到其它網站抓取存到資料庫再開始做這個了。 HtmlAgilityPack在c#里應該很多人用吧,簡單又強大。之前也用它做過幾個爬取信息的小工具。不過很久了源代碼都沒有了,都忘了怎麼用了,這次也是一點一點 ...
  • 控制項封裝的部分說明 可能有人覺得應該前後端分離,我也承認這是應該的方向,我們也在考慮使用ng2等簡化前端。但是,我們封裝控制項還是因為如下原因綜合考慮的: 我們這是個框架,上面支撐了許多個應用,包含幾百個頁面,每個頁面都去寫一堆的js\css\html標簽可能對開發人員來說非常麻煩,且每個人寫的都可能 ...
  • 1>> 力軟信息化系統快速開發框架 2>> 金碟友商網 3>> ...
  • 雖然ASP.NET Core是一款“動態”的Web服務端框架,但是在很多情況下都需要處理針對靜態文件的請求,最為常見的就是這對JavaScript腳本文件、CSS樣式文件和圖片文件的請求。針對不同格式的靜態文件請求的處理,ASP.NET Core為我們提供了三個中間件,它們將是本章論述的重點。不過在... ...
  • 觀察者模式, 就像一群人在玩大家來找茬一樣, 一幅一幅的玩. 這種玩的方式, 是類似於推拉模式中的推模式的. 推送給玩家的是, 兩幅圖片, 相同的部分和不同的部分都推送給你, 但是, 作為玩家來說, 其實更想要的, 只是不同的部分. 下麵以一個簡單的示意性實現為例,討論觀察者模式的結構。 觀察者模式 ...
  • arm處理器以其低功耗和小尺寸而聞名,幾乎所有的手機處理器都是基於arm,在嵌入式系統中應用非常廣泛。 armv6, armv7, armv7s, arm64指的是arm處理器的指令集。 i386, x86_64指的是pc端處理器指令集。 所有指令集原則上是向下相容的。 arm64:iPhone6s ...
  • 今天在運行自己編寫的App時,突然發現App在運行時閃退,然後就查看了Android Studio的Log,發現了這個錯誤,上網查了一下,才知道是RecyclerView的原生Bug,在數據更新時會出現這個Bug,錯誤顯示為 可以看到錯誤並沒有指到我自己所寫的代碼,所以斷定是原生的Bug。 錯誤解決 ...
  • Linux設備驅動中必須解決的一個問題是多個進程對共用資源的併發訪問,併發的訪問會導致競態。中斷屏蔽、原子操作、自旋鎖和信號量都是解決併發問題的機制。中斷屏蔽很少單獨被使用,原子操作只能針對整數進行,因此自旋鎖和信號量應用最為廣泛。自旋鎖會導致死迴圈,鎖定期間不允許阻塞,因此要求鎖定的臨界區小。信號... ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...