SSH

The ssh-socks-proxy-config.xml configuration file

The ssh-socks-proxy-config.xml configuration file uses the same format as the ssh-broker-config.xml configuration file.

For a detailed description on the elements used in the configuration, see Appendix Connection Broker and SOCKS Proxy Configuration Files in Tectia Server 6.4 for IBM z/OS User Manual.

An example configuration file shown below tunnels all FTP connections using the host name and user name provided by the FTP client application. To enable the configuration, copy the text to /opt/tectia/etc/ssh-socks-proxy-config.xml. You can edit the ssh-socks-proxy-config.xml configuration file using a normal text editor.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE secsh-broker SYSTEM 
 "/opt/tectia/etc/ssh-tectia/auxdata/ssh-broker-ng/ssh-broker-ng-config-1.dtd">
<secsh-broker version="6.4" >
  <default-settings>
    <authentication-methods>
      <auth-password />
      <auth-keyboard-interactive />
    </authentication-methods>
  </default-settings>
  <profiles>
    <profile name="dynamic-ftp"
             id="id1"
             host=""
             port="22"
             user="">
    </profile>
  </profiles>
  <static-tunnels>
    <tunnel type="socks-proxy"
             listen-address="127.0.0.1"
             listen-port="1080"
             dst-port="0"
             profile="" />
  </static-tunnels>
  <filter-engine>
    <rule ip-address=".*"
             ports="21"
             action="ftp-tunnel"
             profile-id="id1"
             username-from-app="YES"
             hostname-from-app="YES"
             fallback-to-plain="NO" />
  </filter-engine>
  <logging>
    <log-events facility="auth" severity="informational">
      Connector_filter_rule 
    </log-events>
  </logging>
</secsh-broker>

The following settings are required in the ssh-socks-proxy-config.xml file to enable transparent FTP tunneling or FTP-SFTP conversion:

default-settings

The default-settings element defines, for example, the user authentication methods used by the Tectia SOCKS Proxy. Requiring password authentication ensures that the password information provided by the FTP client application is used.

profiles

At least one profile element must be defined.

The profile id must be a unique identifier that does not change during the lifetime of the profile.

An additional name can be given to the profile. This is a free-form text string.

The host attribute defines the address of the Secure Shell server host. If it is left empty and/or under the filter-engine/rule element hostname-from-app="yes", the Secure Shell connection is opened to the destination host given in the SOCKS request. Otherwise the Secure Shell connection is opened to the host specified in the profile and in FTP tunneling, FTP connections are forwarded to the requested hosts.

The port attribute specifies the Secure Shell server port. The default port is 22.

The user attribute specifies the user name on the Secure Shell server. If it is left empty, the user name given by the FTP client is used when opening the Secure Shell connection.

static-tunnels

At least one tunnel element must be defined.

For transparent tunneling, the tunnel type must be set as "socks-proxy and the port as "1080".

The listen-address is usually the loopback address "127.0.0.1", but can be an address of any local interface that will be listened.

The dst-port attribute is set to 0 and the profile attribute is left empty when transparent tunneling and FTP-SFTP conversion are used.

filter-engine

At least one rule element must be defined.

The ip-address attribute specifies the target host IP address to be filtered. It can be a regular expression. Connections to the specified address are captured. With transparent FTP tunneling and FTP-SFTP conversion, this can be usually set to capture all connections (".*"), as the connections are already filtered by the SOCKS Proxy settings.

The ports attribute specifies the ports to be filtered. It can be a single port or a range. A range is specified with a dash between two integers (such as "21-25").

The action attribute specifies the action to be done when a filter is used. For transparent FTP tunneling, the action is "ftp-tunnel". For FTP-SFTP conversion, the action is "ftp-proxy".

The profile-id attribute is a reference to a profile element and should contain the same value as the id attribute of the profile.

The hostname-from-app attribute defines whether the SOCKS Proxy should extract the Secure Shell server's host name from data sent by the application, or use a Secure Shell server defined by the connection profile in profile-id. With Tectia SOCKS Proxy on z/OS, this is usually set to "yes". Note that this requires that a Secure Shell server is installed to each destination server (or that fallback-to-plain is enabled to allow direct connections to those servers that do not have Secure Shell installed).

The username-from-app attribute defines whether the FTP tunneling or FTP-SFTP conversion extracts the user name from data sent by the FTP application. With Tectia SOCKS Proxy on z/OS, this is usually set to "yes". This setting will override any user name settings made in a related connection profile.

When applying the filter rule, if creating the tunnel fails or the connection to the Secure Shell server fails, the SOCKS Proxy will normally return a "host not reachable" error. However, if the fallback-to-plain attribute is set to "yes", a direct (unsecured) connection is used instead.