Você está na página 1de 4

Rev 1: Added support for TFTP a file > 16MB

Rev 2: Fixed bug in FTP configuration, where setting of "Delete files"


was not saved. Also, made change so that the file name currently
being transferred appears on the view list for the duration
of the file transfer.

Rev 3: When the program starts, it scans all logical drives. This can be
slow on some PCs, especially when scanning drive :.Removed
reference to GetLogicalDrivesString() (Microsoft function call) that
was causing the delay. If I need the drive letters, I'll write my
own function at the appropriate time.

Rev 4: Two changes:


1) The format of the TFTP RRQ is supposed to be:
filename NULL mode NULL
Some TFTP clients (e.g. CB3500) will have several trailing NULLs after
the MODE parameter. This causes 3CDaemon to think that there may be
TFTP options attached, even though there aren't. Now, if the TFTP
RRQ is too long, ensure that there are valid TFTP options, not just
trailing garbage.
2) Some people objected to having to supply a password for the
anonymous user. 3CDaemon will now allow an anonymous user to login
without a password. Following the convention of other FTP servers,
you will get a snotty message that complains about the fact that
there is no password, but you will be let in anyway.

Rev 5: Some FTP client programs put an erroneous space in between the Make
Directory command and the directory name. (RFC says there should be one
space, they put two.) This causes directories to be created with a leading
space. Instead, parse out all leading and trailing spaces from DIR name.
(I'll probably get some grief from folks who *want* directory names with
a leading space, but this is the lesser of two evils)

Fix: TFTP CLient would hang if the TFTP server was not responding to the
initial RRQ/WRQ. Now, it will timeout after 5 retries.

Hacker Options: I get a lot of requests for different types of enhancements


to the functionality of 3CDaemon. I like to honor those requests if I can,
but they create a problem: The more configuration options you provide, the
harder it is for the average non-technical user to setup and use. This goes
against the original philosophy of 3CDaemon, which was to make it as "plug-
and-play" as possible.

So, I think (I hope...) I have come up with a solution for this. I have
introduced the concept of "Hacker Options", which must be configured
manually.
This allows technical users to customise 3CDaemon to their liking, while not
confusing the avaerage user with a bewildering array of configuration
choices.
Hacker options will be documented in this file - nowhere else.

Hacker option added: If you place a text file called "Welcome.3CD" in the
same
directory as the 3CDaemon executable, the contents of that text file will be
displayed when the user initially connects to the FTP server.

Hacker option added: If you place a file called "README.3CD", in any


directory
on your FTP server, that file will be displayed when a user enters the
directory. Might be used. e.g., for displaying a list of file descriptions.

Hacker Option added: You can set a user defined port for the TFTP server. In
order to do so, edit the file "3CDaemon.ini" (should be in the same directory
as the 3CDaemon executable). Look for a section heading "[TFTPDaemon]". Add
the following line (without the quotes): "TFTPPort = <number>", where
<number>
is a number between 1 and 65534. NOTE: Spaces are extremely relevant. The
syntax is "TFTPPort<SPACE>=<SPACE>number". It is also case-sensitive, so be
careful with your typing! If the option is not present,TFTP Server defaults
to port 69. The initial screen for TFTP will display the address(es) the
TFTP server is listening on, as well as the port number.

Hacker Option added: What good is a user-definable port for the server,
unless
the client can use it? In the TFTP Client. where you input the "TFTP Server
Address", you may append a ":<port number>" to try to access the server at a
user defined port. For example: 139.87.130.201:801, or tftp.3com.com:187.
There should be no spaces between the hostname/ipaddress and the :<port>.

Hacker Option added: Same as above, except for FTP. Edit "3CDaemon.ini" and
look for the section "[FTPDaemon]" (If it is not there, add it...). Add an
entry like: "FTPControlPort = <number>" to change the FTP port from the
default of 21. Add an entry like: "FTPDataPort = <number>" to change the
FTP Data port from the default of 20.

Hacker Option added: If you want to rotate your syslog files daily (so that
they don't get too large), edit "3CDaemon.ini" and look for the section
"[Syslog]". Add an entry like: "RotateLogs = 1". If this option is present,
log files will be saved in the format "Month-Day-Year.<logname>.log". The
log files don't actually change at the stroke of midnight. Instead, when the
first syslog message is received after midnight, the old log files are closed
and the new ones are opened.

Rev 6: Some minor bug fixes, and 2 enhancements:

Hacker option added: Support for FTP virtual directories.


Here's how you configure this:
When you are configuring the FTP Profile for a user, in the field marked
"User Directory" enter the complete path to a filename and enclose it
in angle brackets "<>". For example "<C:\Windows\virtual.dir>".
You will not be able to use the "Browse" button, so be careful when
you are typing!

This file will be read when the user logs in, in order to determine
the virtual directories which should be used. The syntax of the file is
as follows:

# This is a comment. Any lines starting with "#" are ignored.


/c = c:\
/d = d:\
/cdrom = e:\
/ProgramFiles = c:\Program Files

The syntax of the drive mappings is


<Virtual directory name><SPACE>=<SPACE><Actual directory>
The " = " (including spaces)is very important, because I use that to
parse the list.
NOTES:
1) As with all these hacker options, it is the user's responsibility
to make sure that the contents of the file are accurate. You could
point "User Directory" to a binary file - it won't work, but you
could do it!
2) Try to avoid making your virtual directory names substrings of each
other, because it cause me headaches when parsing. For example:
/d = d:\
/default = c:\ // BAD! /d is a substring of /default
/d_drive = d:\ // Better, /d_drive is unique!

Hacker Option added: Disallowed FTP subdirectories or files.


In your 3CDaemon install directory (usually c:\Program Files\3Com\3CDaemon\)
put a file called "noaccess.ftp". This file should contain a list of files
or directories to which the user is not allowed access. When the user tries
to change to one of those directories, or upload or download one of those
files, they will receive the message "Access denied!"

Rev 7:
Small change: Double-clicking icon in System Tray will now cause the hidden
3CDaemon to be shown (rather than showing the "About" window, as it did in
previous revisions). Someone pointed out that this was the more intuitive
action to perform, and I agree.

Security precaution: Slowly but surely, I have been adding security features
to 3CDaemon. One of the biggest security holes is the ability of a remote
user to overwrite one of 3CDaemon's config files, in order to allow themself
wider access to the host system. (I warn against making any of 3CDaemon's
config directories accessible via TFTP or FTP, but who reads help files?)
So, from now on, there will be certain file names (e.g. 3CDaemon.ini) that
will be "off-limits" to transfer (either upload or download). This will
mess up remote administration for some folks, but I think the added security
is worth that loss. So, if you get an "access denied" when you try to do
something with one of 3CDaemon's config files, it is intentional.

Implemented 10 minute inactivity timer. If user doesn't enter a command


within 10 minutes of entering the last one, his session is automatically
disconnected. The timer is NOT ticking during actual file transfers, but
starts fresh as soon as the transfer is complete. For now, I haven't made
the timeout interval configurable, but just hardcoded it at 10 minutes.
If someone needs it configurable, send me an email, and I will see what I
can do.

Just to avoid false alarms on the inactivity feature: If 3CDaemon disconnects


a user due to inactivity, it will send a message to the remote user:
221 Service closing control connection. Timeout.
This message will also be logged in the ftpd.log file. If you don't see
this message, the user was disconnected for some other reason.

Rev 8: Ooops, Syslog "Log by IP Address" didn't actually work. It should now,
(I hope....)

Rev 9: Send a "522" response to the net-bsd ftp client when it sends an EPSV
or EPRT command. EPSV and EPRT are FTP extensions defined in RFC 2428.
They mostly have to do with IPv6 compatability. Sending the 522 tells
the client that we don't do IPv6, so use the more standard PASV and
PORT commands. I suppose at some point I will have to implement RFC
2428, but it is too much work at the moment. Wait until more clients
start requesting it.

Rev 10: Security thing. Will not display the password for any user (other than
anonymous) - either on the screen or in the logs. Instead, you will
see "PASS XXXXX". You will still see the password for anonymous. This
is intentional.

Você também pode gostar