TFTPd is a Macintosh TFTP (Trivial File Transport Protocol) server for Macs with MacTCP. It requires System 7, and has minimal features. It runs either as a background only application, and should be compatible with most TFTPd clients.
Note: TFTP is a completely seperate protocol from FTP. This is NOT
a Trivial FTP server, it is a TFTP server. TFTP is generally used for
booting routers and the like, not as a file transfer system.
• Features
Logs requests.
IP-based security system.
Read only.
No ASCII translation.
Average performance.
• Using TFTPd
Ensure that you are running System 7 and that MacTCP is installed. Launch TFTPd. It will disappear into the background (you can quit it using ProcessWatcher, although the Finder will neglect to ungrey the icon so it’ll still look like it’s running, but that’s a bug in the finder). TFTPd creates a folder (called “TFTPd”) in the Preferences folder in your System Folder. Any files inside that folder will be available to anyone with a TFTPd client.
WARNING: TFTP (the protocol) has no permission system. So any file or folder inside the TFTPd folder in the Preferences folder will be accessible to anyone who knows it is there.
TFTPd will not allow access to any files with names containing an exclamation point (!). The “!TFTPd Log” is an example of such a file. TFTPd will check for files first in a folder named “!<remoteip>” (eg “!2.3.4.5”) inside the TFTPd directory, and then in the TFTPd directory, so you can restrict files to machines with spacific IP numbers.
TFTPd doesn’t support ASCII translation, so you’ll need to convert any TEXT files you put in the folder to end with <crlf> instead of just <cr>, as well as to convert them to ISO-8859-1 character sets if desired. You can use DropText and other such utilities to do this for you.
• Security Considerations
“Be afraid. Be very afraid” - The Fly
TFTPd is fairly safe, although it will follow aliases and allow colons in incoming filenames (although not paired colons, so you can’t go up a directory). Anything accessible thru the TFTPd folder will be accessible to anyone who knows it is there, except for files containing exclamation points.
TFTP has no directory listing mechanism, so potential crackers will have to know the file is there, so you can use a directory name as a password and be no worse off than you would be with passworded FTP.
TFTPd will check for files first in a folder named “!<remoteip>” (eg “!2.3.4.5”) inside the TFTPd directory, and then in the TFTPd directory, so you can restrict files to machines with spacific IP numbers.
All Read and Write requests are logged to a “!TFTPd Log” file in the TFTPd folder in the preferences folder.
• Limitations
TFTPd requires System 7 and MacTCP 1.1 (or later perhaps?), and probably requires the 128k ROM (or later). TFTPd is not particularly quick, does not support uploading, does not support ASCII translation.
• Small Print
This program is Shareware, which means if you use it, and you’d like me to write more useful things or enhance this software, then you should send me $10 (US or Australian). For individual registrations, you might as well just send cash, but I can accept checks drawn on US bank accounts without any problem.
Site Licensing:
World-wide license: US$1000
Foreign universities or companies site license: US$250
Australian universities or companies site license: AU$250
Individuals: AU or US $10.
NOTE: I have avoided writing a TFTP server for years, despite people’s requests, because I have never seen the need for it. If you wish this software enhanced in any of the ways described in the todo section, then demonstrate this by paying the shareware fee. I wont be developing this any further unless there is a reasonable amount of interest in it.
You may distribute TFTPd any way you wish as long as you don't charge for it (reasonable download costs such as Compu$erve are ok I guess (although who would call Compu$erve’s download costs reasonable?)). It would probably be a good idea to keep this documentation file with the program, but I’m hardly likely to check up on you now am I! I don’t guarantee any support, but I always answer my Email. If I don’t answer Email its because your message didn’t get to me, or my reply bounced (so try again, and include a valid internet address if you can).
You MAY NOT DISTRIBUTE TFTPd on any disk costing more than $5 without my explicit permission.
• Warranty
This program should do what I’ve described in this document. If it doesn’t, you can simply stop using it. If you pay me, and within a year find that it doesn’t do what I describe here, then you can notify me and I will refund your money and cancel your license.
• Fine Print
Peter Lewis hereby disclaims all warranties relating to this software, whether express or implied, including without limitation any implied warranties of merchantability or fitness for a particular purpose. Peter Lewis will not be liable for any special, incidental, consequential, indirect or similar damages due to loss of data or any other reason, even if Peter Lewis or an agent of his has been advised of the possibility of such damages. In no event shall Peter Lewis be liable for any damages, regardless of the form of the claim. The person using the software bears all risk as to the quality and performance of the software.
US Governement:
Government End Users: If you are acquiring the Software and fonts
on behalf of any unit or agency of the United States Government, the
following provisions apply. The Government agrees:
(i) if the Software and fonts are supplied to the Department of
Defense (DoD), the Software and fonts are classified as "Commercial
Computer Software" and the Government is acquiring only "restricted rights"
in the Software, its documentation and fonts as that term is defined in
Clause 252.227-7013(c)(1) of the DFARS; and
(ii) if the Software and fonts are supplied to any unit or agency
of the United States Government other than DoD, the Government's rights in
the Software, its documentation and fonts will be as defined in Clause
52.227-19(c)(2) of the FAR or, in the case of NASA, in Clause
18-52.227-86(d) of the NASA Supplement to the FAR.
• Acknowledgements
Thanks to the nice folks at InterCon for paying my WWDC conference fee again this year, which led somewhat indirectly to me writing this program.
• How It Works
TFTPd listens to the TFTP server UDP port (69) for Read Request packets, and when it gets one it checks for the existance of the specified file, and then sends it back to the client using a very simply lock-step data/ack packet sequence as defined in the TFTP RFC.
• Version History
Todo:
Remove System 7 dependency
Speed
Uploading
ASCII translation
1.0.0 - First release
~Site restriction
~Logging
• The Author
Programs written by me:
TFTPd 1.0.0 - Macintosh TFTP server.
CDIconKiller 1.0.0 - Supress custom icons on CDs (written with Quinn).
MungeImage 1.1.0 - Mount DiskCopy images (written with Quinn).