亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

Ubuntu Apache Web服務器安全維護實例解析

添加時間:2015-7-29 16:21:38  添加: 思海網絡 

在一個Linux發行版本上設置一個Web服務器是一個很快的過程,不過要讓這種設置成為一種安全的過程可能就需要花點兒工夫。本文將向你展示如何有效地使用訪問控制和身份驗證策略,使你的Apache Web服務器更安全。下面所有的例子都假定你用的是Ubuntu7.10,并對Apache進行了基本的配置。不過,這些例子將幫助任何一位運行Apache服務器的用戶獲得更大的安全性,因為其要領仍然適用于其它Linux系統。本文中所涉及到的方法應當首先在一臺測試服務器上進行試驗,在成功之后才能遷移到一個實際使用的 Web服務器上。


  一、文件許可和訪問控制

  1. 用戶和組

  首先要保障的是Apache不要以root身份運行,因為如果Apache被攻破的話,那么攻擊者就可以控制root賬戶。下面讓我們看一下Apache正以何種用戶和組的身份運行:

  運行下面的命令:

# ps auwwfx grep apache www-data 25675 0.0 0.0 10348 508 ? S Jan21 0:00 \_ /usr/sbin/apache2 -k start
  www-data 25686 0.0 0.2 231816 2208 ? Sl Jan21 0:00 \_ /usr/sbin/apache2 -k start
  www-data 25688 0.0 0.2 231816 2200 ? Sl Jan21 0:00 \_ /usr/sbin/apache2 -k start

  可以看出,www-data是運行Apache的用戶。不過,我們需要編輯Apache的配置并創建一個新用戶和組:

# groupadd www-data
  # useradd -g www-data www-data
  # vi /etc/apache2/apache2.conf

  將User root Group root改為:

User www-data Group www-data

  然后重新加載以使改變生效:

# /etc/init.d/apache2 reload

  2. 服務文件準許

  一個最易被忽視的安全問題是如何正確地使用chmod命令。例如,我們在Apache 的html root目錄中創建了一個index.cgi文件,不過在瀏覽器中打開這個文件時卻被告知拒絕訪問。為了讓我們的index.cgi文件正常工作,我們執行一個chomod 777 index.cgi。在我們如此試驗時,每一個Apache管理員都在考慮這樣安全嗎?答案是否定的。不過,如何使這種許可足夠安全并能允許 index.cgi腳本正常運行呢?

  Apache需要得到準許來訪問index.cgi文件。不過,我們不希望人人都能讀寫index.cgi。這個文件的所有者應當擁有讀寫這個文件的許可。為此我們需要下面的命令:

# chmod 755 index.cgi

  將下面的一行加入到你的Apache.conf文件中是很重要的:

Options FollowSymLinks AllowOverride None

注意:

  1、上面的命令行防止Apache訪問root之外的文件。

  2、有一些Linux發行版本比其它版本擁有更好的安全性。EnGarde Secure Linux就是一個很好的例子,因為它默認情況下就在其Apache配置文件中包含了上面的代碼行。

  我們并不想讓用戶在文件系統上的任何地方運行CGI腳本,不過我們確實需要它們在root中運行。對這個問題的解決辦法是“Options ExecCGI”指令。


  例如,將下面的行添加到/etc/apache2/apache2.conf文件中:

AllowOverride None Options ExecCGI Order allow,deny Allow from all

  重新加載Apache:

# /etc/init.d/apache2 reload

  那么,如果你擁有只應當被某個網絡或IP地址訪問的資源怎么辦?對這個問題的解決辦法是使用我們的Apache配置來為你增強安全性:

  先說一個只允許訪問192.168.0.0網絡的例子,需要改變/etc/apache2/apache2.conf文件中以下的一行:

AllowOverride None Options ExecCGI Order allow,deny Allow from all

  將其改為:

AllowOverride None Options ExecCGI Order Deny,Allow Deny from all Allow from 192.168.0.0/16

  然后重新加載以使更改生效:

# /etc/init.d/apache2 reload

  現在只有你內部網絡上的用戶能夠在/home/username/public_html/cgi-bin中運行CGI腳本。

二、身份驗證

  我們怎樣才能僅允許那些擁有正確口令和用戶名的用戶訪問部分web root呢?下面的步驟將向你展示如何安全地做到這一點:

  1. 基本驗證

  允許.htaccess:

# vi /etc/apache2/apache2.conf

  將AllowOveride None改為AllowOveride AuthConfig

  重新加載以使改變生效:

# sudo /etc/init.d/apache2 reload

  創建一個口令文件:

# mkdir /var/www/misc
  # chmod a+rx /var/www/misc
  # cd /var/www/misc
  # htpasswd -bc private.passwords username password Adding password for user username

  創建.htaccess

# cd /home/username/public_html/cgi-bin # vi .htaccess

  在.htaccess中增加下面的命令:

AuthName My Private Area" AuthType Basic AuthUserFile /var/www/misc/private.passwords AuthGroupFile /dev/null require valid-user

  將AllowOverride None Options ExecCGI Order Deny,Allow Deny from all Allow from 192.168.0.0/16

  改變為:AllowOverride .htaccess Options ExecCGI Order Deny,Allow Deny from all Allow from 192.168.0.0/16

  然后重新加載以使更改生效:

# /etc/init.d/apache2 reload

  2、摘要驗證(Digest authentication)

  另外一種驗證方法稱之為摘要驗證。如果采用摘要驗證,你的口令將不是以明文通過網絡傳送,因為它們總是作為用戶口令的一個MD5摘要傳送的。如果采用這種方法,那么通過嗅探網絡通信的方法就不能決定用戶的口令了。

  下面創建口令文件:

# mkdir /var/www/misc
  # chmod a+rx /var/www/misc
  # cd /var/www/misc

 # htdigest -c private.passwords realm username Adding password for username in realm realm. New password:

  創建 .htaccess :

# cd /home/username/public_html/cgi-bin # vi .htaccess

  在.htaccess中增加下面的內容:

AuthName "My Private Area" AuthType Digest AuthUserFile /var/www/misc/private.passwords AuthGroupFile /dev/null require valid-user

  注意:

  1、一些老的瀏覽器并不支持摘要驗證(Digest authentication)

  2、要完全地保護你的.htaccess就要使用SSL

  三、總結

  使Apache更安全的下一步措施是使用Apache的模塊來幫助實現更好的安全性,例如mod_security 和 mod_chroot。此外,要保護我們的驗證我們還需要配置SSL。 

關鍵字:Ubuntu、Apache、Web、服務器

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站