Linux (ubuntu 9.10): Instalación de un servidor TFTP

* Instalo el servidor (tftp-hpa) y el cliente de tftp

javcasta@interceptor:~$ sudo  apt-get install tftpd-hpa tftp
[sudo] password for javcasta:

….

Desempaquetando tftpd-hpa (de …/tftpd-hpa_0.49-1_i386.deb) …
Procesando disparadores para man-db …
Procesando disparadores para sreadahead …
sreadahead will be reprofiled on next reboot
Configurando openbsd-inetd (0.20080125-2ubuntu1) …
* Stopping internet superserver inetd                                   [ OK ]
* Not starting internet superserver: no services enabled

* Configurando el servidor tftp (tftp-hpa)

– El fichero de configuración esta en: /etc/default/tftpd-hpa

javcasta@interceptor:~$ cat /etc/default/tftpd-hpa
#Defaults for tftpd-hpa
RUN_DAEMON=”no”
OPTIONS=”-l -s /var/lib/tftpboot”

Ponemos a yes la variable RUN_DAEMON

Y añadimos la opción -c para que sea un servidor tftp no solo de lectura, sino también de subida. La opción -c permite que los clientes tftp puedan crear nuevos archivos. Por lo que el fichero /etc/default/tftpd-hpa queda:

Lo edito con > …$ sudo gedit /etc/default/tftpd-hpa

#Defaults for tftpd-hpa
RUN_DAEMON=“yes”
OPTIONS=“-c -l -s /var/lib/tftpboot”

Lo guardamos.

* le damos permisos de lectura/escritura/ejecución al directorio de subida y bajada de ficheros del servidor tftp

…$ sudo chmod 777 /var/lib/tftpboot

Por default el servidor tftpd-hpa será iniciado al inicio del sistema, si queremos desactivar el servidor tftp para que solo sea iniciado manualmente ejecutamos el comando:

javcasta@interceptor:~$ sudo update-rc.d -f tftpd-hpa remove
Removing any system startup links for /etc/init.d/tftpd-hpa …
/etc/rc1.d/K20tftpd-hpa
/etc/rc2.d/S20tftpd-hpa
/etc/rc3.d/S20tftpd-hpa
/etc/rc4.d/S20tftpd-hpa
/etc/rc5.d/S20tftpd-hpa

* Iniciamos el servidor
javcasta@interceptor:~$ /etc/init.d/tftpd-hpa start

Starting HPA’s tftpd: in.tftpd

Referencia:  http://tuxjm.net/2008/11/25/ubuntu_como_instalar_un_servidor_tftp_con_hpa_tftp_server/

* confirmar que el proceso esta corriendo corremos:

# ps aux | grep tftpd
root  9446  0.0  0.0  2200  308  ?  Ss  12:58  0:00
/usr/sbin/in.tftpd -v -l -s /var/lib/tftpboot

para confirmar que el demonio tfptd abrio el puerto para conexiones, es decir, esta en modo listening, usamos netstat así:

# netstat -plun | grep tftp
udp     0       0 0.0.0.0:69    0.0.0.0:*       9446/in.tftpd

Si tienes un un firewall que este filtrando las conexiones entrantes al sistema, entonces debes de abrir el puerto UDP/69.

* Probando si funciona: Me conecto con el cliente tftp a mi propio host, consulto la ayuda, y envío un fichero (hello.go) .

javcasta@interceptor:~$ tftp localhost
tftp> ?
Commands may be abbreviated.  Commands are:

connect     connect to remote tftp
mode        set file transfer mode
put         send file
get         receive file
quit        exit tftp
verbose     toggle verbose mode
trace       toggle packet tracing
status      show current status
binary      set mode to octet
ascii       set mode to netascii
rexmt       set per-packet retransmission timeout
timeout     set total retransmission timeout
?           print help information
tftp> put hello.go
Sent 80 bytes in 0.0 seconds
tftp> quit
javcasta@interceptor:~$ ls /var/lib/tftpboot
hello.go
javcasta@interceptor:~$

Anuncios

2 Comments

  1. Juanjo
    Posted abril 26, 2010 at 9:02 am | Permalink | Responder

    Gracias por el apunte, buen trabajo!

    Un saludo

  2. Juanjo
    Posted abril 26, 2010 at 9:07 am | Permalink | Responder

    Por cierto la línea:

    javcasta@interceptor:~$/etc/init.d/tftpd-hpa start

    Debe ser

    javcasta@interceptor:~$ sudo /etc/init.d/tftpd-hpa start

    Juanjo
    Un saludo

Escribe un comentario

Required fields are marked *

*
*

A %d blogueros les gusta esto: