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:
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.
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.
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.
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.