ADC

Rewrite and responder policy examples

Following are some examples for rewrite and responder policies:

Example 1: To add a local Client-IP header by using the command line interface

add rewrite action act_ins_client insert_http_header NS-Client 'CLIENT.IP.SRC' add rewrite policy pol_ins_client http.req.is_valid act_ins_client bind rewrite global pol_ins_client 300 END namem@obelix:~$ curl -v http://10.10.10.10/testsite/file5.html * Hostname was NOT found in DNS cache * Trying 10.10.10.10... * Connected to 10.10.10.10 (10.10.10.10) port 80 (#0) > GET /testsite/file5.html HTTP/1.1 > User-Agent: curl/7.35.0 > Host: 10.10.10.10 > Accept: */* > < HTTP/1.1 200 OK < Date: Tue, 10 Nov 2020 10:06:48 GMT * Server Apache/2.2.15 (CentOS) is not blacklisted < Server: Apache/2.2.15 (CentOS) < Last-Modified: Thu, 20 Jun 2019 07:16:04 GMT < ETag: "816c5-5-58bbc1e73cdd3" < Accept-Ranges: bytes < Content-Length: 5 < Content-Type: text/html; charset=UTF-8 < NS-Client: 10.102.1.98 < * Connection #0 to host 10.10.10.10 left intact JLEwxt_namem@obelix:~$ 

Example 2: Mask the HTTP Server Type

添加Action-Rewrite-Server_Mask REPL重写操作ACE HTTP.RES.HEADER("Server") "\"Web Server 1.0\"" add rewrite policy Policy-Rewrite-Server_Mask HTTP.RES.IS_VALID Action-Rewrite-Server_Mask NOREWRITE namem@obelix:~$ curl -v http://10.10.10.10/testsite/file5.html * Hostname was NOT found in DNS cache * Trying 10.10.10.10... * Connected to 10.10.10.10 (10.10.10.10) port 80 (#0) > GET /testsite/file5.html HTTP/1.1 > User-Agent: curl/7.35.0 > Host: 10.10.10.10 > Accept: */* > < HTTP/1.1 200 OK < Date: Tue, 10 Nov 2020 10:15:42 GMT * Server Web Server 1.0 is not blacklisted < Server: Web Server 1.0 < Last-Modified: Thu, 20 Jun 2019 07:16:04 GMT < ETag: "816c5-5-58bbc1e73cdd3" < Accept-Ranges: bytes < Content-Length: 5 < Content-Type: text/html; charset=UTF-8 < * Connection #0 to host 10.10.10.10 left intact JLEwxt_namem@obelix:~$ 

Example 3: Respond by redirecting to different url when a url is received

>添加响应器动作act1定向“\”www.google.com\"" Done > add responder policy pol1 'HTTP.REQ.URL.CONTAINS("file")' act1 Done > bind responder global pol1 1 Done > name:~$ curl -v http://10.10.10.10/testsite/file5.html * Hostname was NOT found in DNS cache * Trying 10.10.10.10... * Connected to 10.10.10.10 (10.10.10.10) port 80 (#0) > GET /testsite/file5.html HTTP/1.1 > User-Agent: curl/7.35.0 > Host: 10.10.10.10 > Accept: */* > < HTTP/1.1 302 Found : Moved Temporarily < Location: www.google.com < Connection: close < Cache-Control: no-cache < Pragma: no-cache < * Closing connection 0 name@obelix:~$ 

Example 4: Respond with a message which can be any expression or a text

add responder action act123 respondwith "\"Please reach out to administrator\"" add responder policy pol1 "HTTP.REQ.URL.CONTAINS(\"file\")" act123 bind responder global pol1 100 END name@obelix:~$ curl -v http://10.10.10.10/testsite/file5.html * Hostname was NOT found in DNS cache * Trying 10.10.10.10..Responder Action and Policy: >add responder action Redirect-Action redirect "\"https://xyz.abc.com/dispatcher/SAML2AuthService?siteurl=wmav\"" -responseStatusCode 302 >add responder policy Redirect-Policy "HTTP.REQ.HOSTNAME.CONTAINS(\"abc\")" Redirect-Action Binding to LB Virtual Server: >bind lb vserver Test1_SF -policyName Redirect-Policy -priority 100 -gotoPriorityExpression END -type REQUEST. * Connected to 10.10.10.10 (10.10.10.10) port 80 (#0) > GET /testsite/file5.html HTTP/1.1 > User-Agent: curl/7.35.0 > Host: 10.10.10.10 > Accept: */* > * Connection #0 to host 10.10.10.10 left intact Please reach out to administratort_name@obelix:~$ 

Example 5: Respond with an HTML imported page

import responder htmlpage http://10.10.10.10)/testsite/file5.html page112 add responder action act1 respondwithHtmlpage page1 add responder policy pol1 true act1 bind responder global pol1 100 name@obelix:~$ curl -v http://10.10.10.10)/testsite/file5.html * Hostname was NOT found in DNS cache * Trying 10.10.10.10... * Connected to 10.10.10.10 (10.10.10.10)) port 80 (#0) > GET /testsite/file5.html HTTP/1.1 > User-Agent: curl/7.35.0 > Host: 10.102.58.140 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 5 < Content-Type: text/html < * Connection #0 to host 10.10.10.10 left intact JLEwxt_name@obelix:~$ 

Example 6: Redirect URL based on HOSTNAME using Responder Policy

Responder Action and Policy: >add responder action Redirect-Action redirect "\"https://xyz.abc.com/dispatcher/SAML2AuthService?siteurl=wmav\"" -responseStatusCode 302 >add responder policy Redirect-Policy "HTTP.REQ.HOSTNAME.CONTAINS(\"abc\")" Redirect-Action Binding to LB Virtual Server: >bind lb vserver Test1_SF -policyName Redirect-Policy -priority 100 -gotoPriorityExpression END -type REQUEST