Ubuntu Server系列各項服務的安裝和維護 Apache安全

網絡知識博大精深,必須好好繼續深刻學習。
web


一、必須隨時注意APACHE的安全補丁apache

命令:安全

Sudo apt-get update && sudo apt-get upgrade服務器

Sudo apt-get dist-upgrade網絡



二、 隱藏敏感信息

使用ServerTokens指令,來告訴APACHE咱們須要那些HTTP頭,該指令做用於整個服務器,並不是專針對某虛擬主機。併發

ServerTokens Prod        Server:Apacheide

ServerTokens Major      Server:Apache/2學習

ServerTokens Minor      Server:Apache/2.0測試

ServerTokens Min        Server:Apache/2.0.41ui

ServerTokens OS         Server:Apache/2.0.41(Windows)

ServerTokens Full         Server:Apache/2.0.41(Windows)PHP/5.2/MyMod

 

3不要以root身份運行apache

查看apache使用者的命令:

Ps auxf | grep apache


檢查APACHE配置文件,查看APACHE所在用戶組,是否爲www-data

命令:

同時檢查www-data用戶組是否存在於系統中

命令:

Cat /etc/group | grep www

Cat /etc/passwd|grep www

加入不存在則手工添加用戶組

命令:

Sudo groupadd www-data

Sudo useradd –g www-data www-data

 

最後須要重啓APACHE服務器

 

四、 密碼認證

能夠分爲:基本認證(使用明文密碼)、摘要式認證(使用MD5加密密碼)

基本認證

(1)首先必須讓APACHE能讀取.htaccess文件,修改配置文件


      <Directory /var/www/blog.mytest.com>

                Options Indexes FollowSymLinks MultiViews

                AllowOverride AuthConfig //注意:AuthConfig是啓動關鍵

                Order allow,deny

                allow from all

        </Directory>

(2) 從新加載APACHE

(3)使用htpasswd命令來建立認證文件

命令:

Sudo htpasswd –bc private.password usrname password

這段指令建立了一個文件private.passwords,並向該文件寫入了一個認證信息,用戶名:username,密碼:password

(4)、 private目錄下建立一個.htaccess文件,在這個文件中將認證指定爲剛纔建立的private.passwords

目錄:

Sudo mkdir /var/www/blog.mytest.com/private

Cd /var/www/blog.mytest.com/private

Sudo nano .htaccess


(5)、 .htaccess中添加下列內容

AuthName "Password Needed"

AuthType Basic

AuthUserFile /var/www/blog.mytest.com/auth/private.passwords

Require valid-user


(6)測試


摘要式認證

(1)、 啓用該模塊

命令:

Sudo a2enmod auth_digest

Sudo /etc/init.d/apache2 restart

(2)、 建立報保護的目錄,並建立.htaccess文件

.htaccess中寫入以下信息

AuthTpye Digest

AuthName "Please Give Your Password"

AuthDigestDomain /var/www/blog.mytest.com/private1

AuthUserFile /var/www/blog.mytest.com/authdigest.passwords

require valid-user

(3)、 使用htdigest命令來建立認證文件

命令:

Cd /var/www/blog.mytest.com/private1

Sudo htdigets –c digest.passwords 「Please Give Your Password」 username



五、檢查文件權限

.htpasswd              640

.htaccess         644

PHP               600

重要文件      400

APCHE配置文件中

Option FollowSymLinks              //禁止APACHE訪問web root網頁根目錄之外的文件

AllowOverride None            //禁止APACHE讀取.htaccess文件


6 關閉不使用的模塊

命令:

Sudo a2dismod



七、DdoS攻擊

APACHE自帶了mod-evasive模塊,能夠很大程度上放置DdoS攻擊。

一、 mod_evasive工做原理

1.1   查看「臨時黑名單」中是否有該客戶機的IP

1.2   將該客戶機的IP和請求的URI一塊兒,HASH爲一個KEY,而後去找HASH表,查看在過去1秒內,這臺客戶機是否屢次請求同一頁面

1.3   將客戶機的IP地址HASH爲一個KEY,而後去找HASH表,查看這臺客戶機在過去的一秒內是否請求了超過50個連接。

若是符合以上任意一條,則返回403錯誤。

二、 mod_evasive安裝

命令:

Sudo apt-get install libapache2-mod-evasive


三、 mod-evasive的配置

建立一個配置文件,並輸入配置信息

命令:

Sudo nano /etc       /apache2/conf.d/evasive

<IfModule mod_evasive20.c>

       DOSHashTableSize        3097        //定義了HASH表的大小

       DOSPageCount            2           //定義了客戶機訪問同一頁面的時間間隔

       DOSSiteCount            50           //容許客戶機對全站同時進行訪問的併發數

       DOSPageInterval           1            //定義網頁訪問計數的默認間隔時間

       DOSSiteInterval             1            //定義訪問計數的默認間隔時間

        DOSBlockingPeriod       10           //定義阻止客戶機訪問的時間長短

 

#Other

       DOSEmailNotify          flylxb@163.com    //有黑名單生成時的通知郵件

       DOSSystemCommand      "su - someuser -c '/sbin/... %s ...'" //

       DOSLogDir               "/var/lock/mod_evasive"      //目錄日誌

 

#White List

       DOSWhitelist            127.0.0.1

       DOSWhitelist            127.0.0.*

       DOSWhitelist           192.168.*.*

</IfModule>

四、 攻擊測試

APACHE自帶測試程序

命令:

Cd /usr/share/doc/libapache2-mod-evasive/examples

Perl test.pl

相關文章
相關標籤/搜索