DTS: Installation Summary


The Data Transfer System (DTS) must be installed at each site that files are to be transferred to and/or from. The DTS is composed of Perl scripts and associated configuration files and requires the creation of three user accounts of varying privilege. The DTS does not require root access to run, however, you will need such access or the cooperation of someone who has root access to set it up.

The following software must be installed:

* OpenSSH (any SSH2 implementation with sftp will work)

* Perl 5 (v5.6 recommended) with the following modules:

  • Data::Dumper
  • libnet
  • Time::Hires
  • MailTools
  • IO (comes with Perl 5.6)
  • MD5 and Digest::MD5
  • Expect (at least 1.12)

The following accounts must be created, each belonging to a common group called dts:

* DTS operator (dtsops) - A standard user account to run the DTS from

  • The mailbox for this account receives all error messages from the DTS, so the operator is notified when problems occur.
  • Unpack the DTS package in the dtsops home directory
  • Create a log directory (e.g. ~dtsops/log) with subdirectories, in and out, for storing the logs of incoming and outgoing transfers. Set DTS_IN and DTS_OUT in the dts.config file to their respective locations.
  • Create a staging area with subdirectories, in and out. Set DTS_STG and DTS_FTP in the dts.config file to their respective locations. The DTS_FTP directory should have dtsops as its owner and dts as its group with the following permissions: drwxrwsr-x (i.e. chmod 775, chmod g+s). The DTS_STG directory only requires that dtsops be able to write to it.
  • Choose a name that other DTS sites will refer to this DTS as, preferrably short and all-caps. Set it as MYSITE in the dts.config file.
  • Set OPSEMAIL in the dts.config file to dtsops@machinename, replacing "machinename" with the full hostname.
  • Set MAILFILE to the (future) location of the dtsmail account's mailbox (e.g. /var/spool/mail/dtsmail) and set MAILACCT to its associated email address.
  • Edit SITELIST and SCRIPTS to contain the path to the installed dts.sitelist and dts.scripts files (included with the DTS package). The dts.sitelist file should only be readable by the dtsops user.
  • Define an environmental variable, DTS_CONFIG, in your shell startup (e.g. ~/.tcshrc), setting it to the location of the dts.config file.

* DTS ftp (dtsftp) - A limited account which allows ftp/sftp transfers

  • The home directory for this account should be the path set as DTS_FTP.
  • The shell for the account should be /noshell if FTP is the protocol being used, or the location of the sftp-server executable if sftp is being used (e.g. /usr/libexec/openssh/sftp-server). No one will be able to log in to a shell on this account.
  • Also, if ftp is being used, chroot the account such that the home directory is the top level.

* DTS mail (dtsmail) - A limited account with a mailbox to send DTS requests

  • Set up host-based ssh authentication so that one can ssh from the dtsops account to the dtsmail account without entering a password.

    For OpenSSH/2, this means:

    • cat /etc/ssh/ssh_host_dsa_key.pub >> ~dtsmail/.ssh/known_hosts2
    • Edit ~dtsmail/.ssh/known_hosts2 inserting the machine name at the start of the line
    • Edit ~dtsmail/.shosts to contain the machine name and dtsops separated by a space on the first line.

    Settings differ depending on the version of ssh that you are using. See SnailBook.com for troubleshooting tips.

  • Now, configure this account with no password, so that no one can log into the account directly.
  • The DTS must be able to rename dtsmail's mail file in place to avoid corruption. This requires turning on the sticky bit for the directory containing the mail file (e.g. chmod u+t /var/spool/mail).