1. A method for routing packets by a device intermediary to a client and a server, the method comprising: (a) establishing, by a device intermediary to a client on a public network and a server on a private network, for the client a private internet protocol (IP) address on the private network, the client having a public IP address on the public network, the device not providing the private IP address to the client; (b) receiving, by a management process executing in user mode memory space of the device from a driver operating in kernel mode of the device, a packet originating from the server and addressed to the private IP address of the client; and (c) applying, by a policy engine executing on the device responsive to the management process, a policy to the packet to determine whether to transmit the packet to the client based on source of the packet.