Jump to:navigation, search
Wiki


































De.png
En.png
Fr.png









The goal of this tutorial is to access an internal web server via the reverse proxy

Last adaptation to the version: 14.0.1(01.2025)

New:
  • Warnung für Sites ohne dst_dom*-ACL
notempty
This article refers to a Resellerpreview
Access: Applications Reverse-Proxy

notempty
  • With v12.7.0, nginx can be selected as the reverse proxy engine
  • Changing the engine will most likely result in an adjustment of the configuration, as each engine supports different features.
  • Unsupported settings are marked after the changeover


Intended use

With a reverse proxy, one can control access to the "internal" web servers from the Internet. In contrast to a port forwarding, dedicated filter rules can be created via the reverse proxy. In addition, with only one public IP address, several internal web servers can be addressed based on the domain.

Another highlight is offered by the load balancing. Servers can be combined into groups, to which the requests are then distributed using the selected algorithm (e.g. Round-Robin).


Requirements

The following values are assumed for the example configuration:

  • Web server with the private IP: 10.1.0.150
  • Domain: www.ttt-point.de


Preparations

  • Attention:
    If the web server is also to be accessed via https, the port of the Userinterface must be changed first.


  • For https, the reverse proxy needs a certificate to accept the encrypted connection.
  • For this, a certificate is used from Authentication Certificates
  • If a locally self-created certificate is used, external users must confirm a certificate warning when calling up the certificate for the first time
  • It is better to import a publicly issued, purchased certificate or to create an ACME certificate

  • Important: the name of the certificate must be named like the domain.
    In this example, a wildcard certificate *.ttt-point.de is used.

  • Packet filter rule

    For the reverse proxy to be reachable, the following packet filter rule must be in place. This can be checked under Firewall Port filter . If this is not present, Add rule will add this rule.

    # Source Destination Service NAT Logging Acion Active
    Dragndrop.png World.svg internet Interface.svg external-interface Tcp.svg https
    3/Min
    UTM v12.7 Paketfilter Sliderbar2.png
    Accept On
    notempty
    If necessary, this packet filter rule must also be created using the Tcp.svg http service.


    Configuration

    Wizard

    Step 1 - Internal
    Under Application Reverse-Proxy with the button
    Reverse-Proxy assistant
    the wizzard can be opened in the Header.
    Step 1 - Internal: Target server already exists as a network object
    Caption Value Description Reverse Proxy Assistant UTMuser@firewall.name.fqdnApplicationReverse-Proxy UTM v12.7.0 Reverse Proxy Wizard Schritt 1-en.pngTarget server already exists as a network object
    Target Server: www.ttt-point.de If the host has already been created as a network object, it can be selected directly in the drop-down menu.
    Add network object If no network object has been created yet, a network object can be created using this button.
    Port: 443Link= The web server should be accessed via an encrypted connection.
    Use SSL: On Determines whether SSL can be used

    [ - ] Advanced settings

    notempty
    These TLS settings apply to the connection between this appliance and the (local) server.
    For TLS settings between the clients and this appliance, the settings in the Authentication Encryption  Area Reverse-Proxy dialog apply.
    Use default TLS settings: Yes Allows connections with TLS 1.2 or 1.3 only
    Minimal TLS version: Use default value The outdated TLS versions 1.1 and 1.0 can be selected.
    Cipher-Suite: Standardwert verwenden Note that to directly use a OpenSSL security level, the notation @SECLEVEL=N can be used in the cipher string, where N represents the selected level from 0 to 5.
  • This can also be used with the security level 0 for servers, which offers outdated and insecure algorithms. This is strongly not recommended, instead the server should be updated.
  • A specific cipher or default must still be specified.
    • Examples:
      • DEFAULT@SECLEVEL=0
      • ECDHE-RSA-AES256-SHA@SECLEVEL=0
    Next
    Step 2 - External

    Define incoming connection

    External domain name: www.ttt-point.de Here you enter how the server behind the UTM is addressed.

  • The public IP address that the client calls up from the Internet can also be entered here. However, it is then not possible to distinguish further individual servers via additional subdomains.
  • UTM v12.7.0 Reverse Proxy Wizard Schritt 2-en.png
    Configuring external access so that the reverse proxy responds to requests
    Next
    Step 3 - External (Global)
    Mode HTTP + HTTPS Mode to be used UTM v12.7.0 Reverse Proxy Wizard Schritt 3-en.png
    Proxy-Port: 80Link= Port for the proxy of the corresponding server
    SSL-Proxy Port: 443Link= Port for the SSL proxy of the corresponding server
    SSL certificate: *.ttt-point.de The certificate that was selected in the step Preparations is selected here.
    Next
    Step 4 - Authentication
    Forward authentication: Provide login data The proxy should not perform authentication
    Datei:UTM v12.7.0 Reverse Proxy Wizard Schritt 4-en.png
    No authentication!
    Forward access data (client) Forwards the client's authentication headers to the remote station.
    Login data received from the UTM is sent to the reverse proxy.
    Authentication is not required for this option.
    Forward access data (client & proxy) Proxy and authentication headers are forwarded unchanged.
    Sends the login data received from the client to the reverse proxy. Both proxy and WWW authorisation headers are forwarded to the remote peer without modification.
    Login name    
    Password    
    Finish

    Server groups

    The arrangement in server groups makes it possible to display different relationships in the reverse Proxy:
    • 1:1 - One domain/IP : One server
    • 1:N - One domain/IP : Multiple servers (load balancing)
    • N:1 - Multiple domains/IPs : One server
    • N:M - Multiple Domains/IPs : Multiple Servers (Load Balancing)
  • A port forwarding only allows a 1:1 relationship, the connection is forwarded to one server.
  • Add server group Adds a new server group.
    The wizard automatically creates a server group.
    Reverse-Proxy UTMuser@firewall.name.fqdnApplication Reverse Proxy Assistant UTM v12.7.0 Reverse Proxy Servergruppen-en.pngAutomatically created server group
    Name server-www.ttt-point.de Name
    Server www.ttt-point.de (10.1.0.150) List of network objects that belong to the server group
    IP address
    Port:
    SSL:
    Hovering with the mouse shows further details about the network object
    Edit Opens the dialog for editing a server group (add or delete server)
    Delete Deletes the server group (confirmation required)
    Edit server group - nginx

    General

    Name server-www.ttt-point.de Name of the server group (not editable) Edit server group UTMuser@firewall.name.fqdnApplicationReverse-Proxy UTM v12.7.1 Reverse Proxy Servergruppe bearbeiten ngnix-en.pngExample with different TLS versions and cipher suites using the ngnix engine
    Use SSL Yes Determines whether SSL can be used
    Authentication
  • Authentication is only configured centrally for the entire group when using the ‘’‘ngnix engine’‘’.When using the ‘’squid‘’ engine, this is done individually for each server.
  • Forward authentication: Provide login data The proxy should not perform authentication
    Forward access data (client) Forwards the client's authentication headers to the remote station.
    Login data received from the UTM is sent to the reverse proxy.
    Authentication is not required for this option.
    Forward access data (client & proxy) Proxy and authentication headers are forwarded unchanged.
    Sends the login data received from the client to the reverse proxy. Both proxy and WWW authorisation headers are forwarded to the remote peer without modification.
    Login name:
    Only for Provide login data
       
    Password:
    Only for Provide login data
       
    Forward connection-oriented Microsoft authentication: notempty
    New as of v12.7.1
    off Enables support for NTLM, Negotiate and Kerberos
    Server
        Search field for the servers
    Network www.ttt-point.de Name
    IP address 10.1.0.150 IP address of the webserver
    Port 443 Port via which the server is to be addressed
    TLS Default @Sec Level=4 TLS settings for this server
    Delete Deletes the server from the reverse proxy server group
    Edit notempty
    New as of v12.7.0
    / Server hinzufügen
    General
    Network Name Add server UTMuser@firewall.name.fqdnApplicationReverse-Proxy UTM v12.7.0 Reverse Proxy Server hinzufuegen ngnix-en.png
    Opens the dialogue for adding a network object
    Port 443Link= Port via which the server is to be addressed

    Advanced settings

    notempty
    These TLS settings apply to the connection between this appliance and the (local) server.
    For TLS settings between the clients and this appliance, the settings in the Authentication Encryption  Area Reverse-Proxy dialog apply.
    Use default TLS settings: Yes Allows connections with TLS 1.2 or 1.3 only
    Minimal TLS version: Use default value The outdated TLS versions 1.1 and 1.0 can be selected.
    Cipher-Suite: Standardwert verwenden Note that to directly use a OpenSSL security level, the notation @SECLEVEL=N can be used in the cipher string, where N represents the selected level from 0 to 5.
  • This can also be used with the security level 0 for servers, which offers outdated and insecure algorithms. This is strongly not recommended, instead the server should be updated.
  • A specific cipher or default must still be specified.
    • Examples:
      • DEFAULT@SECLEVEL=0
      • ECDHE-RSA-AES256-SHA@SECLEVEL=0
    Edit server group - squid
    General
    Name server-www.ttt-point.de Name of the server group (not editable) Edit server group UTMuser@firewall.name.fqdnApplicationReverse-Proxy UTM v12.7.0 Reverse Proxy Servergruppe bearbeiten squid-en.pngExample with different TLS versions and cipher suites using the squid engine
    Server
        Search field for the servers
    Network www.ttt-point.de Name
    IP address 10.1.0.150 IP address of the webserver
    Port 443 Port via which the server is to be addressed
    SSL Yes Shows whether SSL is activated for the server
    Type Provide login data Authentication type used by the server
    Login name {{#var:Leer}
    MS-Auth aus Status for connection-oriented Microsoft authentication (support for NTLM, Negotiate and Kerberos)
    TLS Default @Sec Level=4 TLS settings for this server
    Delete Deletes the server from the reverse proxy server group
    Edit notempty
    New as of v12.7.0
    / Add server
    General Add server UTMuser@firewall.name.fqdnApplicationReverse-Proxy UTM v12.7.0 Reverse Proxy Server hinzufuegen squid-en.png
    Network Name
    Opens the dialogue for adding a network object
    Port 443Link= Port via which the server is to be addressed
    Use SSL: Yes Determines whether SSL can be used
    Authentication
    Forward authentication: Provide login data The proxy should not perform authentication
    Forward access data (client) Forwards the client's authentication headers to the remote station.
    Login data received from the UTM is sent to the reverse proxy.
    Authentication is not required for this option.
    Forward access data (client & proxy) Proxy and authentication headers are forwarded unchanged.
    Sends the login data received from the client to the reverse proxy. Both proxy and WWW authorisation headers are forwarded to the remote peer without modification.
    Login name
    Only for Provide login data
       
    Password
    Only for Provide login data
       
    Forward connection-oriented Microsoft authentication: notempty
    Caption updated
    off Enables support for NTLM, Negotiate and Kerberos

    Advanced settings

    notempty
    These TLS settings apply to the connection between this appliance and the (local) server.
    For TLS settings between the clients and this appliance, the settings in the Authentication Encryption  Area Reverse-Proxy dialog apply.
    Use default TLS settings: Yes Allows connections with TLS 1.2 or 1.3 only
    Minimal TLS version: Use default value The outdated TLS versions 1.1 and 1.0 can be selected.
    Cipher-Suite: Standardwert verwenden Note that to directly use a OpenSSL security level, the notation @SECLEVEL=N can be used in the cipher string, where N represents the selected level from 0 to 5.
  • This can also be used with the security level 0 for servers, which offers outdated and insecure algorithms. This is strongly not recommended, instead the server should be updated.
  • A specific cipher or default must still be specified.
    • Examples:
      • DEFAULT@SECLEVEL=0
      • ECDHE-RSA-AES256-SHA@SECLEVEL=0

    Sites

    Applications Reverse-Proxy  Area Sites
    Hier können die Sites Einträge überblickt, bearbeitet ( ) und gelöscht ( ) werden.

    Falls ungültige Konfigurationen vorliegen, werden diese mit einer Warnung () versehen. Beim Hovern über diese Warnung wird außerdem eine kurze Beschreibung des Problems gezeigt.

    Alle Sites müssen ein dst_dom*-ACL aktiv haben, andernfalls werden sie ignoriert. notempty
    Neu ab v14.0.1

    Reverse Proxy Assistant UTMuser@firewall.name.fqdnApplicationReverse-Proxy UTM v14.0.1 Reverse-Proxy Sites Uebersicht ngnix-en.pngSites overview when using the ngnix engine

    Reverse Proxy Assistant UTMuser@firewall.name.fqdnApplicationReverse-Proxy UTM v14.0.1 Reverse-Proxy Sites Uebersicht squid-en.pngSite overview when using the squid engine
    Sites - ngnix
    Domain name: www.ttt-point.de This is where you enter how the server behind the UTM is addressed. Edit site UTMuser@firewall.name.fqdnApplicationReverse-Proxy UTM v12.7.1 Reverse Proxy Sites bearbeiten ngnix-en.pngEdit sites when using the ngnix engine
    Server group: servergroup-www.ttt-point.de The associated server group is selected here
    Client bandwidth: 0Link= kbits/s Maximum bandwidth that should be available to a client
    Load distribution: round-robin The connections are processed one after the other.
    userhash A user's connections (hash on the user name) are always routed to the same server.
    sourcehash Connections from the same source (IP address) are always routed to the same server.
    Redirect HTTP:
    Only with mode: HTTP + HTTPS
    No When activated, HTTP requests are redirected to the HTTPS port
    Websockets: off Activates Websockets connections for the site
    Site-specific proxy port: On 80Link=
    Default: off
    Enables a specific port for HTTP connections in this site
    Site-specific SSL proxy port: On 8443Link=
    Default: off
    Enables a specific port for HTTP connections in this site
    Site-specific SSL certificate: off A site-specific server certificate can be selected
    ACL Sets TTT-Point Login allow Selection of an ACL set to be added
    Add Add selected ACL set
    Pos. Dragndrop.png The order of the ACL sets can be customised using drag and drop.
  • The ‘’allowed‘’ ACL sets should generally come before the forbidden ones.
  • ACL Set aclset-www.ttt-point.de Name
    Acion Configuration of whether the ACL set should be permitted or prohibited
    Status On Activation or deactivation of the configuration for the ACL set
    Delete Deletes the entry for the ACL set
    Sites - squid
    Domain name: www.ttt-point.de This is where you enter how the server behind the UTM is addressed. Edit site UTMuser@firewall.name.fqdnApplicationReverse-Proxy UTM v12.7.0 Reverse Proxy Sites bearbeiten squid-en.pngEdit sites when using the squid engine
    Server group: servergroup-www.ttt-point.de The associated server group is selected here
    Site bandwidth: 0Link= kbits/s Maximum bandwidth that should be available to a site
    Client bandwidth: 0Link= kbits/s Maximum bandwidth that should be available to a client
    Load distribution: round-robin The connections are processed one after the other.
    userhash A user's connections (hash on the user name) are always routed to the same server.
    sourcehash Connections from the same source (IP address) are always routed to the same server.
    weighted-round-robin Connections are processed one after the other, but there are weightings that determine how often the same connection is served in succession.
    ACL Sets TTT-Point Login allow Selection of an ACL set to be added
    Add Add selected ACL set
    Pos. Dragndrop.png The order of the ACL sets can be customised using drag and drop.
  • The ‘’allowed‘’ ACL sets should generally come before the forbidden ones.
  • ACL Set aclset-www.ttt-point.de Name
    Acion Configuration of whether the ACL set should be permitted or prohibited
    Status On Activation or deactivation of the configuration for the ACL set
    Delete Deletes the entry for the ACL set
    Combination example
    By combining different ACL sets with corresponding authorisations, it is possible, for example, to ensure that the login page of a server can only be accessed from a specific (e.g. your own) public IP address.


    ACL Sets

    Under Applications Reverse Proxy  Area ACLSets Button Button Add ACL.
    Access rights can be assigned via ACLs.
    Type Description Example Add ACL UTMuser@firewall.name.fqdnApplicationReverse-Proxy UTM v12.6 Reverse Proxy ALC-Set bearbeiten-en.png
    dstdom_regex Regex to the target domain .*\ttt-point\.(de|com)
    dstdomain Specifies the domain/IP of the destination server www.ttt-point.de or IP address
    proto protoProtocol http, https
    req_header Filter on the header of the client It could be determined, for example, the browser
    src Specifies the source IP of the client 87.139.55.127/255.255.255.255
    srcdom_regex
    Only for squid engine
    Regex to the domain anyideas
    srcdomain
    Only for squid engine
    Specifies the domain of the sender anyideas.de
    time Time specification M T W H F 9:00-17:00
    urlpath_regex Regex for paths ttt-point.de/login

    Options

    Caption Value Description Reverse-Proxy UTMuser@firewall.name.fqdnApplication UTM v12.7.1 Reverse Proxy Einstellungen-en.pngSetting when using the ngnix engine
    Engine: notempty
    New as of v12.7.0
    nginx Selection of the engine to be used between nginx (new) or squid
  • A change of engine will therefore most likely result in an adjustment of the configuration, as each engine supports different features. After the changeover, unsupported settings are marked.
  • An engine change is only implemented with the
    Save
    .
  • Mode: HTTP + HTTPS Mode to be used
    Proxy-Port: 80Link= Port for the proxy of the corresponding server
    SSL-Proxy Port: 8443Link= Port for the SSL proxy of the corresponding server
    SSL certificate:
    *.ttt-point.de Certificate for the corresponding server
    Websocket Timeout: notempty
    New as of v12.7.0
    60Link= Defines the time for a websocket timeout
    Activate certificate-based authentication
    Activate certificate-based authentication
    notempty
    updated
    SSL-CA: CA ttt-point.de Certificate for certificate-based authentication
  • Can be activated for non-public (web) servers

  • Import of personal certificates

    notempty
    New in the wiki

    In order for the Enable certificate-based authentication function to be used correctly, the personal certificate must be available in the browser used.