TFTP Server Problems

I have installed TFTP service on 64bit OpenSuSE 11 and can not seem to get the service running. Under network services, tftp shows “enabled/on”, but the logs for tftp show this:

Nov 26 14:42:43 hostA xinetd[3812]: socket creation failed (Protocol not supported (errno = 93)). service = tftp
Nov 26 14:42:43 hostA xinetd[3812]: Service tftp failed to start and is deactivated.
Nov 26 14:43:59 hostA xinetd[4264]: Reading included configuration file: /etc/xinetd.d/tftp [file=/etc/xinetd.d/tftp] [line=17]

rpcinfo -u hostname tftp states that tftp is an unknown service. Any thoughts?

Thanks in advance.

J

Maybe helpfull to tell us what the contents (especialy line 17) of /etc/xinetd.d/tftp is.

And tftp is not a RPC service so that’s a red herring. Post the contents of the xinetd config file for tftp.

default: off

description: tftp service is provided primarily for booting or when a \

router need an upgrade. Most sites run this only on machines acting as

“boot servers”.

service tftp
port = 69
disable = no
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
}

I think the port and disable lines are supposed to go inside the braces. That may be your problem. I don’t think you need either anyway. Here’s mine:

# default: off
# description: tftp service is provided primarily for booting or when a \
#       router need an upgrade. Most sites run this only on machines acting as
#       "boot servers".
service tftp
{
        socket_type     = dgram
        protocol        = udp
        wait            = yes
        user            = root
        server          = /usr/sbin/in.tftpd
        server_args     = -s /srv/tftpboot
}

IMHO

            disable         = no

must be added (between the { } of course).

It works without the disabled = no line on my machine. The reason, from a reading of man xinetd.conf, is that defaults in /etc/xinetd.conf do not specify any enabled services so all services are assumed to be enabled unless contradicted in their own file.

Still it doesn’t hurt to add that line to be sure and to be independent of the global defaults.

I believe the syntax error is because you put those two lines outside the braces.

Thanks for the reply’s. So I have tried it with those lines outside/inside of the braces and with the lines removed. The service still does not seem to be running (scanning my box does not show the ports as open).

Current xined.conf

# default: off
# description: tftp service is provided primarily for booting or when a \
#       router need an upgrade. Most sites run this only on machines acting as
#       "boot servers".
service tftp
{
        socket_type     = dgram
        protocol        = udp
        wait            = yes
        user            = root
        server          = /usr/sbin/in.tftpd
        server_args     =  -s /tftpboot
        disable         = no
}

Log from tftp:
Dec 1 08:36:56 hostA xinetd[15016]: Reading included configuration file: /etc/xinetd.d/tftp [file=/etc/xinetd.d/tftp] [line=17]
Dec 1 08:38:58 hostA xinetd[15163]: Reading included configuration file: /etc/xinetd.d/tftp [file=/etc/xinetd.d/tftp] [line=17]
Dec 1 08:39:12 hostA xinetd[15282]: Reading included configuration file: /etc/xinetd.d/tftp [file=/etc/xinetd.d/tftp] [line=17]
Dec 1 08:39:37 hostA xinetd[15419]: Reading included configuration file: /etc/xinetd.d/tftp [file=/etc/xinetd.d/tftp] [line=17]
Dec 1 08:40:44 hostA xinetd[15551]: Reading included configuration file: /etc/xinetd.d/tftp [file=/etc/xinetd.d/tftp] [line=17]
Dec 1 08:41:04 hostA xinetd[15687]: Reading included configuration file: /etc/xinetd.d/tftp [file=/etc/xinetd.d/tftp] [line=17]

Maybe I am missing something but it only looks like there are 14 lines in the tftp conf.

Thanks again.
J

ken_yap,

You are correct as always :slight_smile:

I have the **disable **in all those files, maybe because I can then see per service if it is on/off and change it easily without bothering about a deafult (as you suggested).

How are you “scanning” the host? Try this instead (as root, natch):

netstat -aunp | grep 69

There should be a line with 0.0.0.0:69 and a process of xinetd.

If so you can then test it with the tftp client. (Not telnet, this is a UDP, not TCP service.)

And of course if you get this far, check your filrewall, if any that might be preventing other hosts from reaching the service.

Above you say that the boxed data is in /etc/xined.conf. Is that a typo? (Yes it must be). It should be the contents of **/etc/xinetd.d/tftp **(and that is where the error message talks bout).
You should not touch **/etc/xinetd.conf **.

Sorry. You are correct, it is /etc/xined.d/tftp

The reason you should check if there is any process listening before “scanning” the box is because scanning, especially from an external host, is also influenced by any firewall. And the method of scanning, you have to use a UDP scan, not a TCP or connect scan. And if the scan fails, is that a firewall problem, a scan problem, or xinetd simply not listening? Too many variables at once.

Try to design your experiments so that you test one hypothesis at a time.

First check if xinetd is indeed listening.

Then check that on a connection it hands off the socket correctly to in.tftpd.

And so forth.

Thanks for all the reply’s. I have uninstalled yast2 tftp and installed atftp. Everything working fine. Thanks again.

J