DragonFly BSD
DragonFly users List (threaded) for 2005-09
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Working with TFTP

From: Joseph Garcia <bsd_usr@xxxxxxxxx>
Date: Thu, 29 Sep 2005 17:47:32 -0700

Greetings all!

So today I needed to download the configurations of a couple of Cisco routers that I had in the office. I decided to setup TFTPD today and realized how much of a PITA it was. It's not terribly difficult, but there's quite a few steps involved and it would have been nice if some of the infrastructure would have been there from the start.

Here's my trials and tribulations regarding TFTP setup.

The steps I took to get TFTP running was:

 1.) Try to remember my experiences from setting up TFTP in FreeBSD
 2.) Edit the inetd.conf file so that it listens for tftp requests
 3.) Realize that I don't have inetd running
 4.) Add enable_inetd="YES" to my /etc/rc.conf file
 5.) Start inetd by executing /etc/rc.d/inetd start
 6.) Realize that there's no /tftpboot in the root directory
 7.) Create /tftpboot in the root directory (1)
 8.) Remembered that I needed the files I wanted to get/put in /tftpboot
 9.) Remembered that those files need to be world readable and writable
10.) Changed the permissions of the files
11.) Ran sockstat to make sure that inetd is listening for tftp requests

By this point, I thought that I had done everything I needed to get done. I should be able to type 'tftp localhost' and put/get the files (again, whatever I put/get need to already exist in /tftpboot). So that's what I did, but it didn't seem to work. It just hung there.

I looked at the tftpd man page and thought that maybe I should turn on logging just to see what was going on. I now realized I needed to do some more steps.

12.) Edit syslog.conf so that it can log via the LOG_FTP facility (2)
13.) Create the ftp/tftp log file (ftplog) in /var/log
14.) Restart syslog so it can read the syslog.conf file
15.) Restart inetd for good measure
16.) Run stockstat to make sure that inetd is listing for tftp requests

Okay, so now I figured that everything should be working. I can type 'tftp localhost' and get/put the file. It just hung there again. Not sure why. I rechecked everything to make sure I did everything right. I check file permissions and everything was correct to the best of my knowledge.

Then I tried 'tftp <ip address>' and realized that this time I was able to get/put the file I needed. Eureka! It works!

Sure, that only took me less than 15 minutes or so (I was doing other things at the same time), but still it should be "trivial" to setup trivial file transfer protocol.

I wonder. Perhaps somethings should be in place before hand to make it easier for people. I know that not many people use tftp these days, but if you're administering cisco routers and other such devices tftp is one of the ways to download/upload configuration files. It's exactly what I use it for.

One of the things I see could be better for a user's standpoint would for the logging of ftp informating in syslog.conf by default into a file in /var/log. Also, in inetd.conf it would probably be a good idea to turn on logging for both ftp and tftp by using the -l flag on them. I think it would be good for security's sake (people can keep tabs of ftp logins and transfers) and a convenience to others.

Also, the fact that the files in /tftboot (or whatever directory is prefered) need to be present and world read/writable should be better explained in the man page. It is mentioned, but perhaps a NOTE at the bottom of the page stressing that would be helpfull to others trying to setup tftp.

Again, these are just usability ideas. They're not technical, just mostly cosmetic. Just stuff to make it easier for the next guy. It's a good thing I knew what I was doing and I knew where to look because I'm sure I would have been quite frustrated.

If someone thinks it's a good idea to add those chaanges to syslog.conf, inetd.conf, and the tftpd man page then I'll provide diffs. Having /tftpboot in the root directory upon install would be nice too.

Just because it's Unix, doesn't mean it has to be a PITA.

Joseph Garcia

(1) - I chose to use /tftpboot because that's what was in the inetd.conf file. Of course, I could have changed that and used any other directory but /tftpboot was fine with me.

(2) - I needed to add the following line to syslog.conf so that I can log to a file in /var/log:

ftp.* /var/log/ftplog

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]