顯示具有 apache 標籤的文章。 顯示所有文章
顯示具有 apache 標籤的文章。 顯示所有文章

2020年4月29日 星期三

如何隱藏Apache的版本資訊

弱掃被掃到這項 Http Server Type and Version
現在資安這麼嚴格,像這種資訊都是不能讓別人知道,以免被駭客利用該版本的弱點進行攻擊

好的,要隱藏版本資訊也是非常容易,只要在http.conf中加上以上兩個參數即可


ServerTokens Prod
ServerSignature Off

存檔後再重啟即可,要驗證是否有效時,可以使用cUrl工具進行檢查,指令如下:

curl -I -k https://www.yourdomain.com

加上-k 是因為要讀https的,要請工具忽略驗證憑證
原本會看到

HTTP/1.1 200 OK
Date: Wed, 27 April 2020 14:25:00 GMT
Server: Apache/2.4.18 (Ubuntu)
Last-Modified: Wed, 27 April 2020 14:25:00 GMT

Accept-Ranges: bytes
Content-Length: 2432
Vary: Accept-Encoding
Content-Type: text/html

加上後會變成這樣

HTTP/1.1 200 OK
Date: Wed, 27 April 2020 14:25:00 GMT
Server: Apache/2.4.43 (Ubuntu)
Last-Modified: Wed, 27 April 2020 14:25:00 GMT
Accept-Ranges: bytes
Content-Length: 2432
Vary: Accept-Encoding
Content-Type: text/html

如何關閉Apache的80 Port


因資安弱點掃描,原本有一對外的服務走的是Https 443 port,不過弱掃出來 中了這項

Web Servers HTTP TRACE / TRACK Methods  Allowed  Port 80

雖然對外防火牆只開443Port, 應該不會造成問題才是,不過即然掃出來了就封起來吧
預設apache是開啟80 Port ,443 Port是要另外開啟的,往往都另外開啟 443 Port  就忘了應該關閉80 Port,其實關閉的方式很簡單,只要在 httpd.conf 中找尋

Listen 80

把這行加上 # ,註解掉,再重啟 apache 即可

當然如果你是用VirtualHost,就要再去VirtualHost裡去改設定


話說目前各家瀏覽器對安全性要求愈來愈高,看來之後apache內建的預設版本可能會是預設啟用https


2017年6月27日 星期二

Apache 停機小技巧 調整 404 not Found

在網站上線後,要顧慮的就很多啦
如果網站要停機進行調整,就要寫公告訊息

而網站連結眾多,怎麼在讓使用者連結時都會顯示停機公告呢?

我們可以在停機時,指向至一個空的網站即可
當使用者連線時,就會連不上原本的網頁
這時就會出現404 找不到網頁

因此就可以將404指向至公告頁即可
有兩種作法


1.調整Httpd.conf

ErrorDocument 404 /errors/not_found.html


2.如果有開mod_rewirte  可以設定在.htaccess


ErrorDocument 404 /pages/errors/404.php

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^/404/$
RewriteRule ^(.*)$ /pages/errors/404.php [L]



參考資料:

  • https://httpd.apache.org/docs/2.4/custom-error.html
  • https://stackoverflow.com/questions/19962787/rewrite-url-after-redirecting-404-error-htaccess

2016年12月8日 星期四

[Resolve]Apache2.4 (OS 64)指定的網路名稱無法使用 AH00341: winnt_accept: Asynchronous AcceptEx failed. 問題排除

新裝的Apache 2.4.x 版本 在windows 平台上安裝好 看起來正常,但執行一會就無法連上了
而services 都還是正常啟動的 只是無法連線,重啟後又正常但沒多久又會再次發生

查詢ERROR LOG 發現以下錯誤訊息
Apache (OS 64)指定的網路名稱無法使用 AH00341: winnt_accept: Asynchronous AcceptEx failed.


找了一下發現蠻多人都有此問題,有人提及 apache 2.0 可以在httpd.conf mpm_winnt 加上 Win32DisableAcceptEx參數即可排除此問題

<IfModule mpm_winnt.c>
Win32DisableAcceptEx
EnableMMAP Off
EnableSendfile Off
ThreadsPerChild 1700
MaxRequestsPerChild 0
</IfModule>

說AcceptEx()是一個微軟的WinSock2 API ,通過使用BSD風格的accept() API提供了性能改善。一些流行的Windows產品,比如防病毒軟件或虛擬專用網絡軟件,會幹擾AcceptEx()的正確操作。

官方也有相關的參考說明:
http://httpd.apache.org/docs/2.0/mod/mpm_winnt.html#win32disableacceptex 


但http.conf裡找不到mpm_winnt,看來可能不適用,網路也一堆人反應沒效果
再找了一下發現把conf/httpd.conf 之中註解掉的 EnableMMAP  & EnableSendfile

#EnableMMAP off
#EnableSendfile on

#AcceptFilter http none
#AcceptFilter https none

打開並設定如下

EnableMMAP off
EnableSendfile off
AcceptFilter http none
AcceptFilter https none

至於AcceptFilter ,有文章提及Apache 如有變慢的情況或是假死(就是上述提及的狀況) 可以將此參數也打開

但如果加了AcceptFilter https none不能使用ssl的情況,則要重新MARK #AcceptFilter https none(我是沒有遇過,是參考的文件中有提及,標示出來留意一下)

相關的參考說明:



2016年11月17日 星期四

如何排除Apache SSL「偵測到RC4密碼組合」中度風險



今天客戶的網站進行弱點掃描

偵測到RC4密碼組合 這個 SSL 中度風險 弱點

他的意思 因為RC4的加密強度不足,所以比較容易讓駭客解開
所以建議要停用RC4

目前該網站是建置在Apache2.4 上面,所以就要調整Apache SSL設定

設定檔應該位於conf/extra/ 目錄中的 httpd-ssl.conf

找到以下這個參數,將目前所使用的RC4 停用即可
SSLCipherSuite

停用的作法是在參數值加上  :!RC4,以下為參數的SAMPLE

SSLCipherSuite HIGH:!aNULL:!eNULL:!kECDH:!aDH:!RC4:!3DES:!CAMELLIA:!MD5:!PSK:!SRP:!KRB5:@STRENGTH

設定好後再重啟 apache 後即可生效,再重跑一次弱點掃描,這中度風險在報告之中就會消失啦

參考資料:
https://community.qualys.com/thread/14141

2016年11月11日 星期五

Apache如何阻擋特定IP連線



當發現網站的流量瞬間拉高,多半是被駭客攻擊或是被用工具掃描
最快偵測作法可以有以下幾種





  1. 在command line 執行  netstat -nao  | find "80" | find "ESTABLISHED"
  2. 如果使用apache 可以查看LOG 分析看哪個IP 有大量連線
關於netstat 如想知其網路連線流程及各狀態代表為何,可參考以下連結



當查到異常連線的IP,可以先從Apache 設定中擋掉這IP,在這裡介紹二種作法

1.在httpd.conf  (如果是Virtual host  就要在extra/httpd-vhosts.conf  裡設定),
在設定Directory 之中,加上deny from your block IP

<Directory "C:\www\">
      Require all granted
      Options FollowSymLinks
      AllowOverride All
      Order allow,deny
      Allow from all
      Deny from 112.220.66.50
</Directory>
記得設完後還要重啟才有交果

2.如果有開啟rewrite ,可從.htaccess 下手即可,可在檔案 之中加上

Order allow,deny
Allow from all
Deny from 112.220.66.50

這樣也有效果,而且這是不用重啟apache 就可以有效果了

如果想知道.htaccess 可以做哪些事,對岸這篇文章可以大致讓你知道