The way you set it up xinetd isn't used (ServerType standalone), so your xinetd.config looks ok (only talking ftp, ofcourse
).
Only thing I see that I should do different (and you probably should) is the User under which the ftpd server runs (User caleb).
Leave it to what proftpd uses (user nobody), or create a special user/group for it.
Here's an example config I use for my local network (IP numbers are fake). It listens on 1.2.100.5 a 100 Mb network. It also binds (listens) on 127.0.0.1 (localnet) and 1.2.10.5 (10 Mb network):
Code:
# -------------------------------------------------------------------------- #
# /etc/proftpd.conf
# -------------------------------------------------------------------------- #
ServerName "Inferno"
ServerType standalone
DefaultServer on
ServerIdent off
Port 21
SyslogFacility ftp
SyslogLevel info
DefaultAddress 1.2.100.5
Bind 127.0.0.1
Bind 1.2.10.5
DeferWelcome on
AccessGrantMsg "Welcome to inferno."
ScoreboardFile /etc/proftpd.scoreboard
Umask 022
MaxInstances 10
User proftpd
Group proftpd
<Directory />
AllowOverwrite on
</Directory>
# -------------------------------------------------------------------------- #
# End
You migth not need/want the Listen and 2 Bind entries. Just delete them if you don't. Instead of listening to 3 specific ip numbers you will listen on port 21 of all ip numbers.
About the 421 error. Don't know if you checked it's meaning, but it doeas suggests that ftpd is actually working and could be related to an authentication problem.
That's why I suggest loosing Caleb as user and put a more 'daemon dedicated' user in it's place.
Hope this gets you going again.