国产精品香蕉在线观看网,亚洲欧美精品综合在线观看,亚洲不卡av一区二区无码不卡,亚洲日本精品国产第一区二区

移動安全 安全管理 應(yīng)用案例 網(wǎng)絡(luò)威脅 系統(tǒng)安全應(yīng)用安全 數(shù)據(jù)安全 云安全
當(dāng)前位置: 主頁 > 信息安全 > 應(yīng)用安全 >

Apache安然和強化的十三個技能

時間:2013-12-16 12:53來源:TuZhiJiaMi企業(yè)信息安全專家 點擊:
Apache是一個很受歡迎的web辦事器軟件,其安然性對網(wǎng)站的安然運營可謂存亡攸關(guān)。下面介紹一些可幫忙治理員在Linux上建設(shè)Apache確保其安然的編制和技能。 本文假定你知道這些根基常識: 文檔
Tags應(yīng)用安全(1006)Apache安全(2)  

  Apache是一個很受歡迎的web辦事器軟件,其安然性對網(wǎng)站的安然運營可謂存亡攸關(guān)。下面介紹一些可幫忙治理員在Linux上建設(shè)Apache確保其安然的編制和技能。

  本文假定你知道這些根基常識:

  文檔的根目次: /var/www/html or /var/www

  主建設(shè)文件: /etc/httpd/conf/httpd.conf (RHEL/CentOS/Fedora等系統(tǒng)) 或/etc/apache/apache2.conf (Debian/Ubuntu).

  默許HTTP 端口: 80 TCP

  默許 HTTPS 端口: 443 TCP

  測試建設(shè)文件設(shè)置及語法: httpd -t

  對Web辦事器的日記文件的拜候: /var/log/httpd/access_log

  Web辦事器弊端日記文件: /var/log/httpd/error_log

  1、避免在弊端中顯示Apache版本和把持系統(tǒng)的ID

  一般環(huán)境下,在用源代碼安裝或用yum等包安裝法度安裝Apache時,Apache辦事器的版本號和辦事器把持系統(tǒng)的名稱都可以在弊端動靜中顯示,并且還會顯示安裝在辦事器上的Apache模塊信息。

Apache安然和強化的十三個技能

  在上圖中,可以看犯弊端頁面顯示了Apache的版本和辦事器所安裝的把持系統(tǒng)版本。這有可能成為Web辦事器和Linux系統(tǒng)的一個首要威脅。為避免Apache把這些信息泄漏出來,我們需要在Apache的首要建設(shè)文件中進行更改:

  用vim編纂器打開建設(shè)文件,查找“ServerSignature”,默許環(huán)境下它是打開狀況。我們需要封鎖辦事器簽名。ServerTokens Prod奉告Apache只在每個要求網(wǎng)頁的辦事器響應(yīng)的頭部,僅返回Apache產(chǎn)品名稱。

  # vim /etc/httpd/conf/httpd.conf (RHEL/CentOS/Fedora)

  # vim /etc/apache/apache2.conf (Debian/Ubuntu)

  ServerSignature Off

  ServerTokens Prod

  # service httpd restart (RHEL/CentOS/Fedora)

  # service apache2 restart (Debian/Ubuntu)

Apache安然和強化的十三個技能

  2、禁用目次列表

  默許環(huán)境下,在貧乏index文件時,Apache會列示root目次的所有內(nèi)容。以下圖所示:

Apache安然和強化的十三個技能

  對某個特定目次,我們可以在建設(shè)文件頂用“Options directive”封鎖目次列示。可以在httpd.conf或apache2.conf文件中加進以下項目:

  Options -Indexes

  其結(jié)果近似于下圖:

Apache安然和強化的十三個技能

  3、常常更新Apache

  Apache的開辟社區(qū)一向在不竭地改良安然標(biāo)題問題,并常常發(fā)布帶有新的安然特點的最新版本。所以我們建議你利用最新的Apache作為本身的web辦事器。為查抄Apache的版本,我們可以用httpd –v號令來查抄最新的版本。

  # httpd -v

  Server version: Apache/2.2.15 (Unix)

  Server built: Aug 13 2013 17:29:28

  可以用下面的號令更新Apache版本。

  # yum update httpd

  # apt-get install apache2

  假定你其實不是在特定把持系統(tǒng)或內(nèi)核上運行某個出格的軟件,建議你保持內(nèi)核和Linux把持系統(tǒng)為最新版本。

  4、禁用不需要的模塊

  為了盡可能削減網(wǎng)站蒙受Web報復(fù)打擊的機緣,治理員最好禁用今朝不消的所有模塊。你可利用下面的號令,列示W(wǎng)eb辦事器所有的已編譯模塊。

  # grep LoadModule /etc/httpd/conf/httpd.conf

  # have to place corresponding `LoadModule' lines at this location so the

  # LoadModule foo_module modules/mod_foo.so

  LoadModule auth_basic_module modules/mod_auth_basic.so

  LoadModule auth_digest_module modules/mod_auth_digest.so

  LoadModule authn_file_module modules/mod_authn_file.so

  LoadModule authn_alias_module modules/mod_authn_alias.so

  LoadModule authn_anon_module modules/mod_authn_anon.so

  LoadModule authn_dbm_module modules/mod_authn_dbm.so

  LoadModule authn_default_module modules/mod_authn_default.so

  LoadModule authz_host_module modules/mod_authz_host.so

  LoadModule authz_user_module modules/mod_authz_user.so

  LoadModule authz_owner_module modules/mod_authz_owner.so

  LoadModule authz_groupfile_module modules/mod_authz_groupfile.so

  LoadModule authz_dbm_module modules/mod_authz_dbm.so

  LoadModule authz_default_module modules/mod_authz_default.so

  LoadModule ldap_module modules/mod_ldap.so

  LoadModule authnz_ldap_module modules/mod_authnz_ldap.so

  LoadModule include_module modules/mod_include.so

  LoadModule log_config_module modules/mod_log_config.so

  LoadModule logio_module modules/mod_logio.so

  LoadModule env_module modules/mod_env.so

  LoadModule ext_filter_module modules/mod_ext_filter.so

  ……

  上述模塊在默許環(huán)境下都是啟用的,但常常其實不需要,出格是mod_imap,mod_include, mod_info, mod_userdir, mod_autoindex。要禁用特定的模塊,可以在該模塊地點行的開首插進“#”注釋,并從頭啟動辦事。

  5、用自力的用戶和組運行Apache

  在默許的安裝編制中,運行Apache過程時的用戶是“nobody”或daemon。為安然起見,我們建議用非特權(quán)賬戶運行Apache,例如,我們要利用http-web,就需要成立該Apache 用戶和組:

  # groupadd http-web

  # useradd -d /var/www/ -g http-web -s /bin/nologin http-web

  此刻你需要奉告Apache用這個新用戶運行,為此,我們需要在/etc/httpd/conf/httpd.conf中加進一個新條目,并從頭啟動辦事。

  用vim編纂器打開/etc/httpd/conf/httpd.conf ,查找關(guān)頭字“User” 和 “Group”,然后將后面的用戶名和組名改成http-web:

  User http-web

  Group http-web

  6、對用戶的承諾和避免,限制對目次的拜候

  我們可以用httpd.conf文件中的“Allow” 和“Deny”限制對目次的拜候。在本例中,我們要包管root目次的安然,在httpd.conf文件中進行以下的設(shè)置:

  Options None

  Order deny,allow

  Deny from all

  此中,Options “None”暗示不承諾用戶啟用任何可選特點。

  Order deny, allow---在這里措置“Deny” 和 “Allow”指令,起首禁用,然后才是承諾。

  Deny from all,禁用所有人對root目次的要求,任何人都不克不及拜候根(root)目次。

  7、利用mod_security和mod_evasive來保障Apache的安然

  “mod_security”和“mod_evasive”是Apache在安然方面很是風(fēng)行的兩個模塊。mod_security作為防火墻而運行,它承諾我們當(dāng)令地監(jiān)督通信,還可以有助于我們呵護網(wǎng)站或Web辦事器免受暴力破解報復(fù)打擊。借助默許的包安裝法度,我們可以輕松地把mod_security安裝在辦事器上。下例申明如安在Ubuntu或Debian系統(tǒng)上安裝mod_security:

  $ sudo apt-get install libapache2-mod-security

  $ sudo a2enmod mod-security

  $ sudo /etc/init.d/apache2 force-reload

  下面的號令可以在RHEL/CentOS/Fedora系統(tǒng)上安裝mod_security:

  # yum install mod_security

  # /etc/init.d/httpd restart

  另外一個模塊mod_evasive的工作效力很高,它只采取一個要求便可以很好地工作,可以避免DDoS報復(fù)打擊造成巨大年夜風(fēng)險。mod_evasive可以應(yīng)對http暴力破解報復(fù)打擊和DoS(或DDoS)報復(fù)打擊。該模塊可以在三種環(huán)境下檢測報復(fù)打擊:一是在每秒鐘內(nèi)有太多要求達(dá)到統(tǒng)一個頁面時,二是在任何子過程試圖發(fā)出超越50個并發(fā)要求時,三是在任何地址已被姑且列進黑名單時它仍試圖測驗測驗新的要求。

  8、禁用Apache遵守符號鏈接

  默許環(huán)境下,Apache遵守符號鏈接,我們可以用options指令的FollowSymLinks來封鎖這個特點。為此,我們需要在主建設(shè)文件中加進一條:

  Options –FollowSymLinks

  假定有一個特定的用戶或網(wǎng)站需要遵守符號連接,我們可以在阿誰網(wǎng)站的.htaccess文件中增加法則:

  # Enable symbolic links

  Options +FollowSymLinks

  寄望:為將法則從頭寫進到.htaccess文件中,在主建設(shè)文件中,該當(dāng)全局避免“AllowOverride All”

  9、封鎖辦事器端包含和CGI履行

  假定我們不需要,便可以封鎖辦事器端包含(mod_include)和CGI履行。為此,我們需要點竄主建設(shè)文件:

  Options -Includes

  Options –ExecCGI

  我們還可以用Directior標(biāo)識表記標(biāo)幟對特定目次履行這類把持。在本例中,我們封鎖了/var/www/html/web1這個目次的Includes和Cgi文件履行:

  Options -Includes -ExecCGI

  下面列示的是其它一些可以用Options指令打開或封鎖的值:

  Options All:當(dāng)即啟用所有選項。假定你不想在Apache建設(shè)文件或.htaccess中明白地指定任何值,那么它就是默許值。

  Options IncludesNOEXEC:該選項承諾辦事器端包含文件但不履行號令或CGI。

  Options MultiViews:承諾內(nèi)容協(xié)商多正視圖(利用mod_negotiation)

  Options SymLinksIfOwnerMatch:跟FollowSymLinks近似。可是要當(dāng)符號連接和被連接的原始目次是統(tǒng)一所有者時才被承諾。

  10、限制要求的大年夜小

  Apache在默許環(huán)境下對HTTP要求的總大年夜小是沒有限制的。在你承諾Web辦事器可以接管大年夜量要求時,你就有可能成為DoS報復(fù)打擊的受害者。我們可以用directiory標(biāo)簽來限制 LimitRequestBody指令的要求大年夜小。

  你可以用字節(jié)來設(shè)置這個值(從0到2147483647,0暗示無限制)。你可以按照本身的需要限制這個值。假定你要限制user_uploads這個目次所包含的用戶上傳文件量,并且限制為500K,就該當(dāng):

  LimitRequestBody 512000

  11、DDoS報復(fù)打擊的防御和強化

  你不成能完全禁止企業(yè)網(wǎng)站免受DdoS報復(fù)打擊。下面這些號令便于你進行節(jié)制。

  TimeOut指令用于設(shè)置在特定事務(wù)掉效之前,辦事器等候事務(wù)完成的時候長度。其默許值是300秒。對等閑蒙受DDoS報復(fù)打擊的網(wǎng)站,把這個值降落很有好處。這個值的大年夜小取決于網(wǎng)站上的要求種類。寄望,對某些CGI腳本,這個設(shè)置可能會產(chǎn)生標(biāo)題問題。

  MaxClients:此指令承諾用戶設(shè)置辦事器可同時辦事的連接限制。每個新連接都要按照這個限制進行列隊。它合用于Prefork和Worker。其默許值為256。

  KeepAliveTimeout:在封鎖連接之前,辦事器隨后的等候時候長度。默許值是5秒。

  LimitRequestFields:這個設(shè)置可以幫忙我們限制可以接管的HTTP要求的頭部字段數(shù)量。其默許值為100。 有時,因為http的要求頭部過量而導(dǎo)致產(chǎn)生DDoS報復(fù)打擊,用戶無妨降落這個值。

  LimitRequestFieldSize:幫忙我們設(shè)置HTTP要求頭部的大年夜小。

  12、啟用Apache日記功能

  Apache承諾你自力記實把持系統(tǒng)的日記。例如,在用戶與Web辦事器進行交互時所輸進的號令信息就很是有效。

  為此,你需要包含mod_log_config模塊。Apache有三個首要的與日記相干的指令:

  TransferLog:成立日記文件

  LogFormat :設(shè)置定制格局

  CustomLog :成立并格局化一個日記文件

  我們還可以在虛擬主機部門設(shè)置這些號令。例如,下面的例子是啟用了日記功能的一個網(wǎng)站的虛擬主機建設(shè):

  DocumentRoot /var/www/html/example.com/

  ServerName www.example.com

  DirectoryIndex index.htm index.html index.php

  ServerAlias example.com

  ErrorDocument 404 /story.php

  ErrorLog /var/log/httpd/example.com_error_log

  CustomLog /var/log/httpd/example.com_access_log combined

  13、用ssl證書保障Apache的安然

  你還可以用SSL證書用加密的編制保障信息傳輸?shù)陌踩?。在電子商?wù)網(wǎng)站中,消費者為了買東西,有時需要供給賬戶或諾言卡的細(xì)節(jié),默許環(huán)境下,Web辦事器用明文發(fā)送這些信息。建設(shè)辦事器使其借助于SSL證書便可覺得用戶進行加密傳輸。

  企業(yè)可以從不合的SSL供給商采辦SSL證書。小型企業(yè)一般其實不肯意采辦SSL證書,此時,你仍可覺得網(wǎng)站分派一個自簽名證書。Apache利用mod_ssl模塊來撐持SSL證書。

  # openssl genrsa -des3 -out example.com.key 1024

  # openssl req -new -key example.com.key -out exmaple.csr

  # openssl x509 -req -days 365 -in example.com.com.csr -signkey example.com.com.key -out example.com.com.crt

  在成立并簽訂了證書后,你需要在Apache建設(shè)中增加這個證書。用vim編纂器打開主建設(shè)文件,并增加下面的內(nèi)容,然后重啟辦事:

  SSLEngine on

  SSLCertificateFile /etc/pki/tls/certs/example.com.crt

  SSLCertificateKeyFile /etc/pki/tls/certs/example.com.key

  SSLCertificateChainFile /etc/pki/tls/certs/sf_bundle.crt

  ServerAdmin [email protected]

  ServerName example.com

  DocumentRoot /var/www/html/example/

  ErrorLog /var/log/httpd/example.com-error_log

  CustomLog /var/log/httpd/example.com-access_log common

  此時,打開瀏覽器,并輸進https://example.com,便可以看到自簽名的證書。

------分隔線----------------------------

推薦內(nèi)容