Forum Discussion
iRule to restrict activesync traffic to particular IPs but allow all other Exchange traffic
Hi All,
I am currently working on an MDM project, in which we are moving to AirWatch to proxy all Active Sync traffic.
In order to force all users to use Airwatch for all ActiveSync, we need to be able to drop all ActiveSync Traffic on our Exchange CAS Pool.
As we are currently on Exchange 2013, virtually all traffic goes via https_443, hence we need to be able to drop only ActiveSync traffic that is not coming from our two AirWatch Servers but allow all other traffic (ie OWA, RPC, AutoDiscovery, etc..)
Below is a sample of code I have created to hopefully achieve this, would this work? and any recommendations?
when HTTP_REQUEST {
log local0. "Client IP: [IP::client_addr]"
log local0. "URI: [HTTP::uri]"
if {string tolower [HTTP::uri] contains "/Microsoft-Server-ActiveSync*" and not ([class match [IP::client_addr] equals Airwatch_SEG_Servers]) }
{
log local0. "dropped connection"
reject
}
else
{
pool EXCHANGE_2013_https_int_pool
}
}
I have a Data Group called Airwatch_SEG_Servers containing the IPs of my two Airwatch Servers which will proxy the ActiveSync Traffic
Thanks in Advance,
Monty
Hi Monty,
the Rule has a little problem with the tolower formating, but in general it would work. When formating a string to lower the compare string has to be lower case too, otherwise it won't match.
when HTTP_REQUEST { log local0. "Client IP: [IP::client_addr]" log local0. "URI: [HTTP::uri]" if {string tolower [HTTP::uri] contains "/microsoft-server-activesync*" and not ([class match [IP::client_addr] equals Airwatch_SEG_Servers]) } then { log local0. "dropped connection" reject } else { pool EXCHANGE_2013_https_int_pool } }
Cheers, Kai
- Monty_S__237327Nimbostratus
Thank you Kai,
I did end up ending my code with the below:
if {([string tolower [HTTP::uri]] contains "/microsoft-server-activeSync") and not ([class match [IP::client_addr] equals Airwatch_SEG_Servers]) }
I will test it and let you know.
- Hi Monty, the wildcard character (*) is used for -glob search patterns. So you're absolutely right that its not requiered when using a "contains" comparsion. Cheers, Kai
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com