本教程假設你已有一臺在運行的Ubuntu服務器,網絡方面已設置好,而且可以通過SSH進行訪問。
  Apache2是許多安裝的Linux發行版使用的默認Web服務器。它不是對所有環境來說唯一可用的Web服務器,也不是最佳的Web服務器,但是它適合許多使用場景。在安裝過程中,系統可能會詢問你哪個Web服務器要自動重新配置。選擇“apache2”即可。
  安裝Apache2
  使用下面這個命令,安裝Apache2及其他庫。
?
| 1 | $  sudo  apt-get -y  install  apt-get  install  apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby 
 | 
  更新時區(TimeZone)和檢查正確時間
  為了減小共享數據或鏡像數據方面的混淆,所有服務器在運行時都應該盡可能接近同步狀態。一些加密密鑰管理系統需要準確的時間。最后,就企業服務器而言,《薩班斯-奧克斯利法案》(Sarbanes-Oxley)和《健康保險可攜性及責任性法案》(HIPAA)的安全規則要求正確的時間戳機制。
?
| 1 2 3 | $ sudo apt-get -y install openntpd tzdata 
 $ sudo dpkg-reconfigure tzdata 
 $ sudo service openntpd restart 
 | 
 
   禁止AppArmor沖突
  雖然AppArmor這個套件的確提供了一層額外的安全,但在我看來,需要為每個系統創建自定義配置文件。這不是本教程所探討的內容。所以眼下,我們會禁用AppArmor,防止與任何默認的配置發生沖突。
?
| 1 2 3 | $  sudo  /etc/init  .d  /apparmor  stop 
 $  sudo  update-rc.d -f apparmor remove 
 $  sudo  apt-get remove apparmor apparmor-utils 
 | 
  注意:如果是生產環境下的Web服務器,不建議禁用AppArmor。如果有些人想創建自定義的AppArmor配置文件,請參閱官方說明文檔(http://wiki.apparmor.net/index.php/Documentation)。
  阻止分布式拒絕服務(DDoS)攻擊
  DDoS攻擊是一種分布式拒絕服務攻擊。有一個Apache模塊可以阻止這類攻擊。
?
| 1 2 3 | $  sudo  apt-get -y  install  libapache2-mod-evasive 
 $  sudo  mkdir  -p  /var/log/apache2/evasive 
 $  sudo  chown  -R www-data:root  /var/log/apache2/evasive 
 | 
  把下面這個命令添加到mod-evasive.load的末尾處。
?
| 1 2 3 4 5 6 7 8 | $  sudo  nano  /etc/apache2/mods-available/mod-evasive  .load DOSHashTableSize 2048 
 DOSPageCount 20 
 DOSSiteCount 300 
 DOSPageInterval 1.0 
 DOSSiteInterval 1.0   
 DOSBlockingPeriod 10.0 
 DOSLogDir “  /var/log/apache2/evasive  ” 
 DOSEmailNotify admin@domain.com 
 | 
  阻止Slowloris攻擊
  還有一個Apache模塊可以阻止Slowloris攻擊,不過模塊名稱取決于你使用的Ubuntu的具體版本。如果是Ubuntu 12.10或以后版本:
?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | $  sudo  apt-get -y  install  libapache2-mod-qos 
 然后,檢查qos.conf中的配置: 
   $  sudo  nano  /etc/apache2/mods-available/qos  .conf 
     QS_ClientEntries 100000 
   QS_SrvMaxConnPerIP 50 
   MaxClients 256 
   QS_SrvMaxConnClose 180 
   QS_SrvMinDataRate 150 1200 
   | 
  注意:如果你運行12.04之前的Ubuntu版本,改而使用下面這個命令:
  $ sudo apt-get -y install libapache2-mod-antiloris
  檢查antiloris.conf中的配置
  $ sudo nano /etc/apache2/mods-available/antiloris.conf
  # 每個IP地址處于READ狀態的最大并行連接數量
  IPReadLimit 5
  阻止DNS注入攻擊
  Spamhaus這個模塊使用域名系統黑名單(DNSBL),目的是為了阻止通過Web表單實現的垃圾郵件轉發,防止URL注入攻擊,阻止來自機器人程序的http DDoS攻擊,通常保護服務器,遠離已知的惡意IP地址。
?
| 1 2 3 4 5 6 | $  sudo  apt-get -y  install  libapache2-mod-spamhaus 
 $  sudo  touch  /etc/spamhaus  .wl Append the config to apache2.conf 
 $  sudo  nano  /etc/apache2/apache2  .conf 
 MS_METHODS POST,PUT,OPTIONS,CONNECT 
 MS_WhiteList  /etc/spamhaus  .wl 
 MS_CacheSize 256 
 | 
  重啟Apache裝入新模塊
  $ sudo service apache2 restart
  現在Web服務器已安裝完畢,并在正常運行。將Web瀏覽器指向你的域,即可看到證明你一切正常的默認消息。作為最后的檢查機制,運行下面這個命令,看看你的服務器有沒有任何錯誤信息。要是有錯誤信息,你需要上谷歌搜索一下,立馬解決這些錯誤。
  $ sudo tail -200 /var/log/syslog