Manual Chapter : Configuring App Tunnel Access

Applies To:

Show Versions Show Versions


  • 13.0.1, 13.0.0
Manual Chapter

What are app tunnels?

An app tunnel (application tunnel) provides secure, application-level TCP/IP connections from the client to the network. App tunnels are particularly useful for users with limited privileges who attempt to access particular web applications, as app tunnels do not require that the user has administrative privileges to install.

Additionally, optimization is available for app tunnels. With compression settings for app tunnels, you can specify the available compression codecs for client-to-server connections. The server compares the available compression types configured with the available compression types on the server, and chooses the most effective mutual compression setting. You configure compression for the server in the connectivity profile.

Note: Because app tunnels do not require administrative rights, some features of Network Access and Optimized Application tunnels are not available with app tunnels. For example, the application tunnel cannot easily resolve domain names in applications without a client-side DNS redirector, or modification of the system hosts file.
Important: For tunnels that access backend servers by using DNS resolution, use Optimized Application Tunnels in the Network Access menus instead. Optimized Applications require administrative rights on the local system.

About ACLs to control access from app tunnels

When you create an app tunnel, Access Policy Manager® (APM®) automatically creates an allow ACL for the IP addresses and ports specified in the app tunnel. To disallow access to any other IP addresses and ports, you must create ACLs that deny access to them and assign the ACLs in the per-session policy. F5® recommends that you create an ACL that rejects access to all connections and put it last in the ACL order.

Configuring an ACL to reject all connections

You can place an access control list (ACL) that rejects all connections last in the ACL order to keep users from accessing any host and port combinations other than those to which they have been explicitly allowed access by the other ACLs assigned to the policy.
  1. On the Main tab, click Access > Access Control Lists .
    The User-defined ACLs screen opens.
  2. Click Create.
    The New ACL screen opens.
  3. In the Name field, type a name for the access control list.
  4. From the Type list, retain the default value Static.
  5. Optional: In the Description field, add a description of the access control list.
  6. Optional: From the ACL Order list, select Last to add the ACL at the last position in the list.
  7. Click the Create button.
    The ACL Properties screen displays.
  8. In the Access Control Entries area, click Add to add an entry.
    The New Access Control Entry screen displays.
  9. From the Type list, select L4.
  10. For the Source IP Address, Source Port(s), Destination IP Address, and Destination Port(s) fields, retain the default value Any.
  11. From the Action list, select Reject.
    The reject action drops the packet. On TCP flows, it also sends a TCP RST message. On UDP flows, it also sends proper ICMP messages. On other protocols, it drops the packet silently.
  12. Click Finished.
To use the ACL, assign it to a session using an Advanced Resource Assign or ACL Assign action in a per-session policy.
Note: If you assign this ACL and Network Access or Portal Access resources to the same policy, you might need to also create and assign ACLs that allow access for Network Access and Portal Access resources.

Task summary for app tunnels

To set up this configuration, perform the procedures in the task list.

Task list

Configuring an app tunnel object

When you create an app tunnel object, that object becomes a simple container that holds app tunnel resources. Once you specify those resources from within the app tunnel resource, you can then assign the resource to an access policy.
  1. On the Main tab, click Access > Connectivity / VPN > App Tunnels .
    The App Tunnels screen opens.
  2. Click Create.
    The New App Tunnel Resource screen opens.
  3. Type a name and description for your app tunnel.
  4. Although an ACL is automatically created for your application object, you can choose to determine the order of your ACL as it appears in the ACL list. Use the ACL Order list to select the placement you want.
  5. Under Default Customization Settings, type a Caption for the app tunnel.
    This caption identifies the app tunnel and enables it to appear on a full webtop.
  6. Click Create.
You have just created an app tunnel object.

Configuring an application resource item for an app tunnel

The application resource item specifies how to create a particular tunnel. The application field serves as a hint to Access Policy Manager® in order to help with special handling of specific protocols. Compression settings specify which compression codecs the tunnels can use, while the Launch Application field allows you to define an application that will run after you establish the resource tunnel.
  1. On the Main tab, click Access > Connectivity / VPN > App Tunnels .
    The list of app tunnels opens.
  2. Click the name of the app tunnel you created.
    The Properties screen opens.
  3. Under Resource Items, click Add.
    The New Resource Item screen opens.
  4. For the Destination setting, specify whether the application destination Type is a host or an IP address.
    You cannot use the fully qualified domain name to connect to an application resource that is configured with an IP address destination type.
    If you specify a hostname, make sure that it is DNS-resolvable. After the application tunnel is assigned to a full webtop in an access policy, the application tunnel does not appear on the full webtop if the hostname is not DNS-resolvable.
  5. Specify your port or port range for the application.
  6. From the Application Protocol list, select the application protocol.
    Option Description
    None Specifies that the app tunnel resource uses neither RPC or FTP protocols.
    Microsoft RPC Specifies that the resource uses the Microsoft® RPC protocol.
    Microsoft Exchange RPC Server Specifies that the resource uses the Microsoft Exchange RPC Server protocol.
    FTP Specifies that the resource uses FTP protocol.
  7. For the Application Path setting, optionally specify a path for an application to start after the application access tunnel is established.
  8. For the Parameters setting, specify any parameters associated with the application that starts with the Application Path. The parameters you can add are:
    • %host% - This is substituted with the loopback host address, for example http://%host%/application/.
    • %port% - The loopback port. Use this if the original local port has changed due to conflicts with other software.
  9. Click Finished.
    The resource appears in the app tunnel object.

Adding an app tunnel to a per-session policy

Add an app tunnel to a per-session policy to provide a secure connection from a client to a network and to provide access to the resources configured for the tunnel.
Note: Add ACLs to the policy to prevent access to any other resources.
  1. On the Main tab, click Access > Profiles / Policies .
    The Access Profiles (Per-Session Policies) screen opens.
  2. Click the name of the access profile for which you want to edit the access policy.
    The properties screen opens for the profile you want to edit.
  3. On the menu bar, click Access Policy.
  4. In the General Properties area, click the Edit Access Policy for Profile profile_name link.
    The visual policy editor opens the access policy in a separate screen.
  5. Click the (+) icon anywhere in the access policy to add a new item.
    Note: Only an applicable subset of access policy items is available for selection in the visual policy editor for any access profile type.
    A popup screen opens, listing predefined actions on tabs such as General Purpose, Authentication, and so on.
  6. On the Assignment tab, select the Advanced Resource Assign agent, and click Add Item.
    The Resource Assignment screen opens.
  7. Click Add new entry.
    An Empty entry displays.
  8. Click the Add/Delete link below the entry.
    The screen changes to display resources on multiple tabs.
  9. On the App Tunnel tab, select the app tunnel that you configured previously.
    A system-defined ACL for the app tunnel is automatically assigned to the policy. The ACL specifies the allow action for the resource items associated with the app tunnel.
  10. On the Static ACL tab, select an ACL that rejects all connections.
    Important: Adding an ACL that is last in order and rejects all connections keeps users from accessing any host and port combinations other than those to which they have been explicitly allowed access by the other ACLs assigned to the policy.
  11. On the Webtop tab, select a full webtop.
  12. Select any other resources that you want to assign to the policy.
    If you assign a Network Access resource to the policy, be sure to also assign an ACL that allows access to the resources that you want users to have. Otherwise, the ACL that rejects all connections blocks access.
    If you assign a Portal Access resource to the policy, be sure to also assign an ACL that allows access to all parts of the web sites specified in the start URI or hosted content fields of the Portal Access configuration. Otherwise, the ACL that rejects all connections blocks access.
  13. Click Update.
  14. Click the Save button to save changes to the access policy item.
An app tunnel and ACLs are now assigned to the policy.
To complete the process, you must apply the access policy, and associate the access policy and connectivity profile with a virtual server so users can launch an app tunnel session.
Note: To ensure that logging is configured to meet your requirements, verify the log settings for the access profile.

Attaching an access policy to the virtual server for app tunnels

When creating a virtual server for an access policy, specify an IP address for a single host as the destination address.
  1. On the Main tab, click Local Traffic > Virtual Servers .
    The Virtual Server List screen opens.
  2. Click the name of the virtual server you want to modify.
  3. In the Destination Address field, type the IP address for a host virtual server.
    This field accepts an address in CIDR format (IP address/prefix). However, when you type the complete IP address for a host, you do not need to type a prefix after the address.
  4. From the HTTP Profile list, select http.
  5. In the Access Policy area, from the Access Profile list, select the access profile that you configured earlier.
  6. If you are using a connectivity profile, from the Connectivity Profile list, select the connectivity profile.
  7. If you are creating a virtual server to use with portal access resources in addition to app tunnels, from the Rewrite Profile list, select the default rewrite profile, or another rewrite profile you created.
  8. If you want to provide connections to Java RDP clients for application access, allow Java rewriting for portal access, or support a per-app VPN connection that is configured on a mobile device, select the Application Tunnels (Java & Per-App VPN) check box.
    You must enable this setting to make socket connections from a patched Java applet. If your applet does not require socket connections, or only uses HTTP to request resources, this setting is not required.
  9. If you want to provide native integration with an OAM server for authentication and authorization, select the OAM Support check box.
    You must have an OAM server configured in order to enable OAM support.
  10. Click Update.
Your access policy is now associated with the virtual server.

Verifying log settings for the access profile

Confirm that the correct log settings are selected for the access profile to ensure that events are logged as you intend.
Note: Log settings are configured in the Access > Overview > Event Log > Settings area of the product. They enable and disable logging for access system and URL request filtering events. Log settings also specify log publishers that send log messages to specified destinations.
  1. On the Main tab, click Access > Profiles / Policies .
    The Access Profiles (Per-Session Policies) screen opens.
  2. Click the name of the access profile that you want to edit.
    The properties screen opens.
  3. On the menu bar, click Logs.
    The access profile log settings display.
  4. Move log settings between the Available and Selected lists.
    You can assign up to three log settings that enable access system logging to an access profile. You can assign additional log settings to an access profile provided that they enable logging for URl request logging only.
    Note: Logging is disabled when the Selected list is empty.
  5. Click Update.
An access profile is in effect when it is assigned to a virtual server.