Tectia

System-Wide Transparent FTP Tunneling or FTP-SFTP Conversion with Fallback

In this example, transparent FTP tunneling or FTP-SFTP conversion is configured to secure file transfers to three different subnets (10.70.20.0/24, 172.16.8.0/21, and 192.168.93.0/25). Configuration is done system-wide affecting all FTP batch jobs and interactive sessions to those three subnets. FTP connections to other addresses are not affected.

In this example, Tectia SOCKS Proxy is configured to fall back to plain FTP if securing the connection fails. Fallback is a usable feature during the migration phase but must be turned off once all connections are working correctly.

Do the following steps:

  1. Copy the /opt/tectia/etc/ssh-socks-proxy-config-example.xml configuration file to /opt/tectia/etc/ssh-socks-proxy-config.xml (if it does not exist yet).

  2. Edit the file to enable fallback to plaintext FTP. To use transparent FTP tunneling:

      <filter-engine>
         <rule ip-address=".*"
                 ports="21"
                 action="ftp-tunnel"
                 profile-id="id1"
                 username-from-app="YES"
                 hostname-from-app="YES"
                 fallback-to-plain="YES" />
      </filter-engine>
    

    To use FTP-SFTP conversion, change also the value of the action attribute to "ftp-proxy":

      <filter-engine>
         <rule ip-address=".*"
                 ports="21"
                 action="ftp-proxy"
                 profile-id="id1"
                 username-from-app="YES"
                 hostname-from-app="YES"
                 fallback-to-plain="YES" />
      </filter-engine>
    
  3. Start the SOCKS Proxy if it is not already running.

    If the SOCKS Proxy is already running, take the updated configuration in use as instructed in Reconfiguring ssh-socks-proxy.

  4. Edit the system-wide FTP configuration file SYS1.TCPPARMS(FTPDATA) to include the following lines:

    SOCKSCONFIGFILE  EXAMPLE.SYSTEM.SOCKS.CONF
    FWFRIENDLY       TRUE
    
  5. Create a new SOCKS configuration dataset EXAMPLE.SYSTEM.SOCKS.CONF with the following contents:

    sockd @=127.0.0.1 10.70.20.0 255.255.255.0 
    sockd @=127.0.0.1 172.16.8.0 255.255.248.0 
    sockd @=127.0.0.1 192.168.93.0 255.255.255.128 
    direct 0.0.0.0 0.0.0.0