Unterabschnitte


Das Tftpd-Paket

Einleitung

Das Trivial File Transfer Protocol (TFTP) ist ein sehr einfaches Dateiübertragungsprotokoll. Es wurde 1980 auf der Basis von EFTP entwickelt. TFTP unterstützt lediglich das Lesen oder Schreiben von Dateien. Nicht vorhanden sind viele Funktionen des mächtigeren FTP wie etwa Rechtevergabe mittels chmod, Anzeigen der vorhandenen Dateien oder Benutzerauthentifizierung.

Funktionen

Das Tftpd-Paket stellt folgende Basis-Funktionalität zur Verfügung:

Laden von Betriebssystemen und Konfigurationen

PC-BIOSe bieten heute die Möglichkeit eines Netzboots, das heißt Booten über ein Netzwerk, meist mit PXE. Für dieses Verfahren initialisiert das BIOS die Netzwerkkarte, sucht via DHCP einen Server und lädt den ersten Teil des Betriebssystems (Kernel) mittels TFTP herunter. Dann wird der Kernel gestartet. Wenn TFTP verwendet wird, sind für dieses Verfahren nur verbindungslose Protokolle erforderlich, die mit wenig Aufwand in einem ROM implementiert werden können.

Installation

Das Tftpd-Paket wird über das Setup-Menü im Untermenü 'Package administration' installiert.

Die Verzeichnisstruktur befindet sich unter /srv/tftpboot

Das Menü im Setup-Programm

Das Menü im Setup-Programm ist wie folgt aufgebaut:

  4. Service administration  
  x. Tftpd service    
  1. View documentaion    
  2. Edit configuration    
  3. Advanced configuration file handling    
  4. Show status    
  5. Stop service    
  6. Start service    

Änderung der Konfiguration

Die Konfiguration kann über den Menüpunkt „Edit configuration“ geändert werden.

Nachdem der Editor beendet wurde wird abgefragt, ob die Konfiguration aktiviert werden soll. Wird dies bestätigt, werden über ein Skript die modifizierten Änderungen umgehend wirksam gemacht.

Die Konfigurationsdatei

In der Konfigurationsdatei, die über das Menü zugänglich ist, sind folgende Parameter vorhanden; wer sie von Hand editieren will findet sie unter
/etc/config.d/tftpd

TFTPD (general settings)

START_TFTPD

Soll der tftpd-Server gestartet werden?

Gültige Werte: yes, no

Standardeinstellung: START_TFTPD='no'

TFTPD_ADD_ARGS

Zusätzliche Argumente beim Aufruf des tftpd.

Hier sollten nur erfahrene Anwender Angaben machen.

--ipv4, -4
      Connect with IPv4 only, even if IPv6 support was compiled in.

--ipv6, -6
      Connect with IPv6 only, if compiled in.

--listen, -l
      Run the server in standalone (listen) mode, rather than run from
      inetd.  In listen mode, the --timeout option is ignored, and the
      --address option can be used to specify a specific local address
      or port to listen to.

--foreground, -L
      Similar  to  --listen  but  do  not  detach  from the foreground
      process.  Implies --listen.

--address [address][:port], -a [address][:port]
      Specify a specific address and port to  listen  to  when  called
      with  the  --listen  or  --foreground option.  The default is to
      listen to the tftp port specified in /etc/services on all  local
      addresses.

      Please  note:  Numeric  IPv6 adresses must be enclosed in square
      brackets to avoid ambiguity with the optional port information.

--create, -c
      Allow new files to be created.   By  default,  tftpd  will  only
      allow  upload  of  files  that already exist.  Files are created
      with default permissions allowing anyone to read or write  them,
      unless the --permissive or --umask options are specified.

--secure, -s
      Change  root  directory  on startup.  This means the remote host
      does not need to pass along the directory as part of the  trans-
      fer,  and may add security.  When --secure is specified, exactly
      one directory should be specified on the command line.  The  use
      of  this  option is recommended for security as well as compati-
      bility with some boot  ROMs  which  cannot  be  easily  made  to
      include a directory name in its request.

--user username, -u username
      Specify  the  username  which  tftpd will run as; the default is
      'nobody'.  The user ID, group ID, and (if possible on the  plat-
      form) the supplementary group IDs will be set to the ones speci-
      fied in the system permission database for this username.

--umask umask, -U umask
      Sets the umask for newly created files to the  specified  value.
      The  default is zero (anyone can read or write) if the --permis-
      sive option is not specified, or  inherited  from  the  invoking
      process if --permissive is specified.

--permissive, -p
      Perform  no  additional permissions checks above the normal sys-
      tem-provided access controls for  the  user  specified  via  the
      --user option.

--pidfile pidfile, -P pidfile
      When run in standalone mode, write the process ID of the listen-
      ing server into pidfile.  On normal termination (SIGTERM or SIG-
      INT) the pid file is automatically removed.

--timeout timeout, -t timeout
      When run from inetd this specifies how long, in seconds, to wait
      for a second connection before terminating  the  server.   inetd
      will then respawn the server when another request comes in.  The
      default is 900 (15 minutes.)

--retransmit timeout, -T timeout
      Determine the default timeout, in microseconds, before the first
      packet  is retransmitted.  This can be modified by the client if
      the timeout or utimeout option is negotiated.   The  default  is
      1000000 (1 second.)

--mapfile remap-file, -m remap-file
      Specify the use of filename remapping.  The remap-file is a file
      containing the remapping rules.  See  the  section  on  filename
      remapping  below.   This  option may not be compiled in, see the
      output of in.tftpd -V to verify whether or not it is available.

--verbose, -v
      Increase the logging verbosity of tftpd.  This flag can be spec-
      ified multiple times for even higher verbosity.

--verbosity value
      Set the verbosity value to value.

--refuse tftp-option, -r tftp-option
      Indicate  that  a  specific RFC 2347 TFTP option should never be
      accepted.

--blocksize max-block-size, -B max-block-size
      Specifies the maximum permitted block size.  The permitted range
      for  this parameter is from 512 to 65464.  Some embedded clients
      request large block sizes and yet do not handle fragmented pack-
      ets  correctly; for these clients, it is recommended to set this
      value to the smallest MTU on your network  minus  32  bytes  (20
      bytes  for  IP,  8  for  UDP, and 4 for TFTP; less if you use IP
      options on your network.)  For example, on a  standard  Ethernet
      (MTU 1500) a value of 1468 is reasonable.

--port-range port:port, -R port:port
      Force  the  server port number (the Transaction ID) to be in the
      specified range of port numbers.

--version, -V
      Print the version number and configuration to  standard  output,
      then exit gracefully.

Gültige Werte: siehe oben

Standardeinstellung: TFTPD_ADD_ARGS='-c'

Konfiguration des TFTP-Daemon

Der TFTP-Daemon (in.tftpd) ist standardmäßig nicht so konfiguriert, dass er Dateien empfangen kann/darf.

Es muss in der Tftpd-Konfiguration dafür dann auf jeden Fall folgender Parameter gesetzt werden:
TFTPD_ADD_ARGS='-c'