CitrixADC上的WAF阻擋頁面與自定義log

 當設置完WAF或是一些自定義的規則之後,下一步就是要注意這些阻擋的policy是否會產生對應的log及阻擋的畫面,是否有足夠訊息能讓被阻擋的使用者能夠方便的回報進行排查

在WAF模組中,在阻擋時預設就有相對應的log會產生,但阻擋頁面需要自己根據需求去刻出來。

而rewrite, responder, rate limiting等模組預設是不會產生log的,需要自行設定log action。


預設WAF在阻擋時,會將流量導回root

開啟html error object後需要自行新增頁面

本次範例使用最簡單的方式來呈現頁面,主需帶入WAF做動時產生的參數放進頁面中
<html>
<head>
<title>Application Firewall Block Page</title>
</head>
<body>
<h1><B>Your request has been blocked by a security policy<B><BR></H1>
<H3>Access has been blocked - if you feel this is in error, please contact the site
administrators quoting the following: </H3> <UL>
<li>NS Transaction ID: ${NS_TRANSACTION_ID}
<li>AppFW Session ID: ${NS_APPFW_SESSION_ID}
<li>Violation Category: ${NS_APPFW_VIOLATION_CATEGORY}
<li>Violation Details: ${NS_APPFW_VIOLATION_LOG} </UL>
</body>
</html>



做一些測試讓WAF做動,此時客戶可以根據NS Transaction ID或是AppFW Session ID進行回報



用這些參數就能在log中收尋到相關的事件,進而查看是否有誤擋情況發生

接著是自定義log部分
在內容中能帶入做動時需要紀錄的參數,像是ip, url, hostname, ...等等,此篇重點是藉由TXID來識別
 "APPFW_POLICY_HIT_BUILTIN 404_ERROR - " + CLIENT.IP.SRC + " " + HTTP.REQ.HOSTNAME + "" +  HTTP.REQ.URL.SUBSTR(0,100) + " Referer: " + HTTP.REQ.HEADER("Referer").SUBSTR(0,200) + " <404_replace>"+ "Support ID : "+HTTP.RES.TXID.BEFORE_REGEX(re/-\w{12}/)
創建rewrite action,這個action是觸發時會產生下面的頁面
"HTTP/1.1 200 OK\r\n\r\n <html><head><title>Page not found</title></head><body><h1><B>Your request was not found<B><BR></H1><H3>Please call support services</H3> <UL> Phone : 0903123347<br>Mail : lab@lab.local<br>Support ID : "+HTTP.RES.TXID.BEFORE_REGEX(re/-\w{12}/)+"</UL></body></html>"
觸發的條件是當response是404 not found時會做替換
隨便key一段url觸發404 error
透過TXID收尋log


 




留言