• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

ANNOUNCEMENTH A D04-Feb-20153.9 KiB11081

AUTOFILESH A D04-Feb-201570 98

COPYINGH A D04-Feb-201517.6 KiB341281

ChangeLogH A D04-Feb-2015156.2 KiB5,2953,828

FILESH A D04-Feb-2015624 5857

INSTHIERH A D04-Feb-2015298 1614

MakefileH A D03-May-20225.1 KiB184126

NEWSH A D04-Feb-201515.9 KiB419294

READMEH A D04-Feb-20153.5 KiB9872

SRCFILESH A D04-Feb-2015375 3534

TARGETSH A D04-Feb-2015577 5251

TODOH A D04-Feb-2015690 2317

VERSIONH A D04-Feb-201513 21

backend.cH A D04-Feb-20154.7 KiB158121

backend.hH A D04-Feb-20152.2 KiB9568

banner.cH A D04-Feb-20151.2 KiB3718

conf-binH A D04-Feb-201562 42

conf-ccH A D04-Feb-2015244 74

conf-ldH A D04-Feb-201584 42

conf-manH A D04-Feb-2015140 53

conf.cH A D04-Feb-20151.8 KiB6541

conf.hH A D04-Feb-2015460 1916

copy.cH A D04-Feb-20153.6 KiB145101

list.cH A D04-Feb-20159 KiB355297

log.cH A D04-Feb-20151.3 KiB5028

log.hH A D04-Feb-2015327 1510

main.cH A D04-Feb-20155.6 KiB229187

messagefile.cH A D04-Feb-20151.4 KiB4928

path.cH A D04-Feb-20152.2 KiB8461

respond.cH A D04-Feb-20153.4 KiB13199

responses.cH A D04-Feb-20151 KiB255

retr.cH A D04-Feb-20152.4 KiB8865

socket.cH A D04-Feb-20156.6 KiB280234

stat.cH A D04-Feb-20151.6 KiB4826

state.cH A D04-Feb-20152.4 KiB8358

statmod.cH A D03-May-20222.4 KiB8560

store.cH A D04-Feb-20154.2 KiB153123

strtou.cH A D04-Feb-20151 KiB299

tests.shH A D04-Feb-2015122.3 KiB3,3392,879

twoftpd-1.43.specH A D04-Feb-20151.6 KiB6959

twoftpd-anon-conf.cH A D04-Feb-20153.5 KiB11384

twoftpd-anon.cH A D04-Feb-20151.9 KiB5229

twoftpd-auth.1H A D04-Feb-20151.1 KiB4948

twoftpd-auth.cH A D04-Feb-20152.8 KiB11074

twoftpd-bind-port.cH A D04-Feb-20153.3 KiB137104

twoftpd-conf.cH A D04-Feb-20153.2 KiB10676

twoftpd-drop.cH A D04-Feb-20152.1 KiB6234

twoftpd-log.runH A D04-Feb-201543 31

twoftpd-switch.1H A D04-Feb-2015579 2928

twoftpd-switch.cH A D04-Feb-20151.6 KiB5534

twoftpd-xfer.1H A D04-Feb-20153.3 KiB125124

twoftpd-xfer.cH A D04-Feb-20152.3 KiB6440

twoftpd.hH A D04-Feb-20152 KiB7153

twoftpd.runH A D04-Feb-2015185 129

README

1twoftpd
2Simple secure efficient FTP server
3Bruce Guenter <bruce@untroubled.org>
4Version 1.43
52015-02-04
6
7This is twoftpd, an FTP server that strives to be secure, simple, and
8efficient.  None of the back end commands can cause execution of other
9programs, and the normal model of execution does a chroot to the logged
10in user's directory immediately after authentication.
11
12The name "twoftpd" comes from the fact that there were two parts to the
13server -- an authenticating front end, which contains no file or data
14transfer code, and a back end, which contains all the data transfer
15code.
16
17A mailing list has been set up to discuss this and other packages.
18To subscribe, send an email to:
19	bgware-subscribe@lists.untroubled.org
20A mailing list archive is available at:
21	http://lists.untroubled.org/?list=bgware
22
23Development versions of twoftpd are available at:
24	https://github.com/bruceg/twoftpd
25
26Development of this version has been sponsored by FutureQuest, Inc.
27ossi@FutureQuest.net  http://www.FutureQuest.net/
28
29Installation:
30
31Check the build settings in the conf-* files and run "make".  As root,
32run "make install".
33
34On 32-bit Linux, to allow access to files 2GB and larger, make sure
35-D_FILE_OFFSET_BITS=64 is in conf-cc.
36
37Programs:
38
39The package is broken down into two main programs: twoftpd-auth is a
40front-end that only accepts USER and PASS (and a few other "built-in")
41commands.  Once a user is authenticated, it execs a back end program,
42typically twoftpd-xfer.  This program changes to the home directory in
43$HOME, optionally does a chroot, and then drops root UID/GID to lock
44down all privileges.
45
46twoftpd-anon is a stripped-down version of twoftpd-xfer with all the
47filesystem modification commands removed to allow for read-only FTP
48access.  It may be used even without twoftpd-auth to provide an
49anonymous FTP server.
50
51twoftpd-drop is another reduced back end.  It allows only for uploading
52new files.  Downloading, overwriting files, changing permissions,
53renaming, etc are all forbidden.  All listings produce an empty result
54to make it harder to guess which file names already exist.
55
56Usage:
57
58For a server handling only non-anonymous logins, optionally set CHROOT
59and use:
60
61	tcpserver -DHRv 0 ftp \
62	/usr/local/bin/twoftpd-auth \
63	/usr/local/bin/cvm-unix \
64	/usr/local/bin/twoftpd-xfer
65
66For a server handling only anonymous logins, set UID, GID, and HOME to
67appropriate values, set CHROOT to 1, and set USER and GROUP to "ftp",
68and use:
69
70	tcpserver -DHRv 0 ftp /usr/local/bin/twoftpd-anon
71
72If you want to have both anonymous and non-anonymous logins on the same
73server, run both of the above two commands with two seperate IPs
74substituted for the "0" parameter.  Because the FTP protocol does not
75support name-based virtual hosting, multiple anonymous servers must be
76run on separate IPs.
77
78See the man pages for twoftpd-auth and twoftpd-xfer for more details.
79
80Security notes:
81
82Unless you have specific reason not to, always run with CHROOT or
83SOFTCHROOT set.
84
85Always run twoftpd (and most other servers) with resources limits in
86effect.  For example:
87
88	tcpserver -DRHv 0 ftp softlimit -m 2000000 twoftpd-anon
89
90This will allow the server to consume up to 2MB of memory before being
91killed, which should be enough for most OS's, and still prevent memory
92overflow attacks.
93
94This program is Copyright(C) 2015 Bruce Guenter, and may be copied
95according to the GNU GENERAL PUBLIC LICENSE (GPL) Version 2 or a later
96version.  A copy of this license is included with this package.  This
97package comes with no warranty of any kind.
98