|
Packit Service |
6f2e62 |
|
|
Packit Service |
6f2e62 |
|
|
Packit Service |
6f2e62 |
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
|
|
Packit Service |
6f2e62 |
|
|
Packit Service |
6f2e62 |
<refentry id='tftpd8'>
|
|
Packit Service |
6f2e62 |
<refmeta>
|
|
Packit Service |
6f2e62 |
<refentrytitle>TFTPD</refentrytitle>
|
|
Packit Service |
6f2e62 |
<manvolnum>8</manvolnum>
|
|
Packit Service |
6f2e62 |
<refmiscinfo class='manual'>iputils</refmiscinfo>
|
|
Packit Service |
6f2e62 |
</refmeta>
|
|
Packit Service |
6f2e62 |
<refnamediv>
|
|
Packit Service |
6f2e62 |
<refname>tftpd</refname>
|
|
Packit Service |
6f2e62 |
<refpurpose>Trivial File Transfer Protocol server</refpurpose>
|
|
Packit Service |
6f2e62 |
</refnamediv>
|
|
Packit Service |
6f2e62 |
|
|
Packit Service |
6f2e62 |
<refsynopsisdiv id='synopsis'>
|
|
Packit Service |
6f2e62 |
<cmdsynopsis>
|
|
Packit Service |
6f2e62 |
<command>tftpd</command>
|
|
Packit Service |
6f2e62 |
<arg choice='plain'><replaceable>directory</replaceable></arg>
|
|
Packit Service |
6f2e62 |
<sbr/>
|
|
Packit Service |
6f2e62 |
</cmdsynopsis>
|
|
Packit Service |
6f2e62 |
</refsynopsisdiv>
|
|
Packit Service |
6f2e62 |
|
|
Packit Service |
6f2e62 |
|
|
Packit Service |
6f2e62 |
<refsect1 id='description'>
|
|
Packit Service |
6f2e62 |
<title>DESCRIPTION</title>
|
|
Packit Service |
6f2e62 |
<para><command>tftpd</command> is a server which supports the DARPA
|
|
Packit Service |
6f2e62 |
Trivial File Transfer Protocol (RFC1350).
|
|
Packit Service |
6f2e62 |
The TFTP server is started by
|
|
Packit Service |
6f2e62 |
<citerefentry><refentrytitle>inetd</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
|
|
Packit Service |
6f2e62 |
|
|
Packit Service |
6f2e62 |
<para><emphasis remap='I'>directory</emphasis> is required argument; if it is not given
|
|
Packit Service |
6f2e62 |
<command>tftpd</command> aborts. This path is prepended to any file name requested
|
|
Packit Service |
6f2e62 |
via TFTP protocol, effectively chrooting <command>tftpd</command> to this directory.
|
|
Packit Service |
6f2e62 |
File names are validated not to escape out of this directory, however
|
|
Packit Service |
6f2e62 |
administrator may configure such escape using symbolic links.</para>
|
|
Packit Service |
6f2e62 |
|
|
Packit Service |
6f2e62 |
<para>It is in difference of variants of <command>tftpd</command> usually distributed
|
|
Packit Service |
6f2e62 |
with unix-like systems, which take a list of directories and match
|
|
Packit Service |
6f2e62 |
file names to start from one of given prefixes or to some random
|
|
Packit Service |
6f2e62 |
default, when no arguments were given. There are two reasons not to
|
|
Packit Service |
6f2e62 |
behave in this way: first, it is inconvenient, clients are not expected
|
|
Packit Service |
6f2e62 |
to know something about layout of filesystem on server host.
|
|
Packit Service |
6f2e62 |
And second, TFTP protocol is not a tool for browsing of server's filesystem,
|
|
Packit Service |
6f2e62 |
it is just an agent allowing to boot dumb clients.</para>
|
|
Packit Service |
6f2e62 |
|
|
Packit Service |
6f2e62 |
<para>In the case when <command>tftpd</command> is used together with
|
|
Packit Service |
6f2e62 |
<citerefentry><refentrytitle>rarpd</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
|
Packit Service |
6f2e62 |
tftp directories in these services should coincide and it is expected
|
|
Packit Service |
6f2e62 |
that each client booted via TFTP has boot image corresponding
|
|
Packit Service |
6f2e62 |
its IP address with an architecture suffix following Sun Microsystems
|
|
Packit Service |
6f2e62 |
conventions. See
|
|
Packit Service |
6f2e62 |
<citerefentry><refentrytitle>rarpd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
|
Packit Service |
6f2e62 |
for more details.</para>
|
|
Packit Service |
6f2e62 |
</refsect1>
|
|
Packit Service |
6f2e62 |
|
|
Packit Service |
6f2e62 |
<refsect1 id='security'>
|
|
Packit Service |
6f2e62 |
<title>SECURITY</title>
|
|
Packit Service |
6f2e62 |
<para>TFTP protocol does not provide any authentication.
|
|
Packit Service |
6f2e62 |
Due to this capital flaw <command>tftpd</command> is not able to restrict
|
|
Packit Service |
6f2e62 |
access to files and will allow only publically readable
|
|
Packit Service |
6f2e62 |
files to be accessed. Files may be written only if they already
|
|
Packit Service |
6f2e62 |
exist and are publically writable.</para>
|
|
Packit Service |
6f2e62 |
|
|
Packit Service |
6f2e62 |
<para>Impact is evident, directory exported via TFTP <emphasis remap='B'>must not</emphasis>
|
|
Packit Service |
6f2e62 |
contain sensitive information of any kind, everyone is allowed
|
|
Packit Service |
6f2e62 |
to read it as soon as a client is allowed. Boot images do not contain
|
|
Packit Service |
6f2e62 |
such information as rule, however you should think twice before
|
|
Packit Service |
6f2e62 |
publishing f.e. Cisco IOS config files via TFTP, they contain
|
|
Packit Service |
6f2e62 |
<emphasis remap='B'>unencrypted</emphasis> passwords and may contain some information
|
|
Packit Service |
6f2e62 |
about the network, which you were not going to make public.</para>
|
|
Packit Service |
6f2e62 |
|
|
Packit Service |
6f2e62 |
<para>The <command>tftpd</command> server should be executed by <emphasis remap='B'>inetd</emphasis>
|
|
Packit Service |
6f2e62 |
with dropped root privileges, namely with a user ID giving minimal
|
|
Packit Service |
6f2e62 |
access to files published in tftp directory. If it is executed
|
|
Packit Service |
6f2e62 |
as superuser occasionally, <command>tftpd</command> drops its UID and GID
|
|
Packit Service |
6f2e62 |
to 65534, which is most likely not the thing which you expect.
|
|
Packit Service |
6f2e62 |
However, this is not very essential; remember, only files accessible
|
|
Packit Service |
6f2e62 |
for everyone can be read or written via TFTP.</para>
|
|
Packit Service |
6f2e62 |
</refsect1>
|
|
Packit Service |
6f2e62 |
|
|
Packit Service |
6f2e62 |
<refsect1 id='see_also'>
|
|
Packit Service |
6f2e62 |
<title>SEE ALSO</title>
|
|
Packit Service |
6f2e62 |
<para><citerefentry><refentrytitle>rarpd</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
|
Packit Service |
6f2e62 |
<citerefentry><refentrytitle>tftp</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
|
Packit Service |
6f2e62 |
<citerefentry><refentrytitle>inetd</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
|
|
Packit Service |
6f2e62 |
</refsect1>
|
|
Packit Service |
6f2e62 |
|
|
Packit Service |
6f2e62 |
<refsect1 id='history'>
|
|
Packit Service |
6f2e62 |
<title>HISTORY</title>
|
|
Packit Service |
6f2e62 |
<para>The <command>tftpd</command> command appeared in 4.2BSD. The source in iputils
|
|
Packit Service |
6f2e62 |
is cleaned up both syntactically (ANSIized) and semantically (UDP socket IO).</para>
|
|
Packit Service |
6f2e62 |
|
|
Packit Service |
6f2e62 |
<para>It is distributed with iputils mostly as good demo of an interesting feature
|
|
Packit Service |
6f2e62 |
(MSG_CONFIRM) allowing to boot long images by dumb clients
|
|
Packit Service |
6f2e62 |
not answering ARP requests until they are finally booted.
|
|
Packit Service |
6f2e62 |
However, this is full functional and can be used in production.</para>
|
|
Packit Service |
6f2e62 |
</refsect1>
|
|
Packit Service |
6f2e62 |
|
|
Packit Service |
6f2e62 |
<refsect1 id='availability'>
|
|
Packit Service |
6f2e62 |
<title>AVAILABILITY</title>
|
|
Packit Service |
6f2e62 |
<para><command>tftpd</command> is part of <emphasis remap='I'>iputils</emphasis> package.</para>
|
|
Packit Service |
6f2e62 |
</refsect1>
|
|
Packit Service |
6f2e62 |
</refentry>
|