Cómo configurar un servidor TFTP en Ubuntu Server con tftpd-hpa

Instala el servidor tftpd-hpa y el cliente tftp-hpa de Ubuntu . Esta configuración sirve los archivos desde /srv/tftpun directorio y guarda los archivos subidos en otro. Consulta la lista de paquetes del servidor y del cliente de Ubuntu .

Seguridad: TFTP no requiere inicio de sesión ni cifrado. Restrinja el acceso a una red LAN de confianza; los clientes accesibles pueden leer los archivos disponibles y subir archivos si los permisos lo permiten. No transfiera información confidencial. La especificación TFTP describe sus límites de seguridad.

Configurar el servidor TFTP

1. Instale el servidor y el cliente.

Actualiza los metadatos de APT y, a continuación, instala ambos paquetes:

sudo apt update
sudo apt install tftpd-hpa tftp-hpa
Terminal de Ubuntu Server que muestra el comando para instalar tftpd-hpa y tftp-hpa.
Instale los paquetes del servidor y del cliente.

2. Configurar la raíz TFTP

Edite el archivo de configuración del paquete:

sudo nano /etc/default/tftpd-hpa

Establezca estos valores:

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure --create --umask 027"

--secureRestringe el demonio a su raíz configurada, --createpermite cargas y --umask 027limita los nuevos archivos cargados al modo 0640. El manual de tftpd de Ubuntu documenta estas opciones. Guarda con Ctrl+O, pulsa Intro y luego Ctrl+X.

Dado que --securehace que /srv/tftpel directorio raíz sea visible para el cliente, los nombres de archivo son relativos a él: use hello.txt, no /srv/tftp/hello.txt. Los clientes TFTP no exploran directorios, por lo que deben mantener una lista de los nombres de archivo publicados y sus rutas.

Editor de terminal que muestra tftpd-hpa configurado con la raíz /srv/tftp, modo seguro, cargas y umask 027.
Limita los archivos y configura la máscara de carga.

3. Crea el directorio raíz y el directorio de carga.

Mantenga la raíz principal como propiedad del usuario root y otorgue acceso de escritura únicamente a la carpeta de carga:

sudo install -d -o root -g root -m 0755 /srv/tftp
sudo install -d -o tftp -g tftp -m 0750 /srv/tftp/upload

El demonio puede leer la raíz, pero solo la tftpcuenta puede escribir en ella /srv/tftp/upload. Evite hacer que todo el árbol sea editable por todos con permisos como 777.

Los archivos en el directorio raíz público deben ser legibles por todos los clientes autorizados. Limite dicho directorio a imágenes de arranque, firmware u otro material destinado a esa red. Para transferencias privadas, utilice un protocolo con autenticación y cifrado.

La terminal de Ubuntu crea /srv/tftp/upload con el usuario y grupo tftp y el modo 0750.
Solo el subdirectorio de carga es editable.

4. Agregue un archivo para servir

Cree un archivo conocido en la raíz. Las comprobaciones de lectura predeterminadas de TFTP requieren que los archivos servidos sean legibles públicamente, así que configure el modo 0644:

echo 'TFTP test file' | sudo tee /srv/tftp/hello.txt
sudo chmod 0644 /srv/tftp/hello.txt
La terminal de Ubuntu Server escribe hello.txt en /srv/tftp y establece los permisos del archivo a 0644.
Crea un archivo conocido para la prueba de descarga.

5. Habilite y reinicie el servicio.

Habilite la unidad al arrancar, reiníciela para aplicar la configuración e inspeccione su estado:

sudo systemctl enable tftpd-hpa
sudo systemctl restart tftpd-hpa
sudo systemctl status tftpd-hpa --no-pager

Si el inicio falla, compruebe el registro del servicio con sudo journalctl -u tftpd-hpa -b --no-pager.

Comandos de terminal de Ubuntu Server para habilitar, reiniciar e inspeccionar el servicio tftpd-hpa.
Reinicie el servicio después de cambiar su configuración.

6. Limitar el acceso al cortafuegos

Si UFW está habilitado, permita la solicitud inicial solo desde su subred de cliente. Reemplace la red de ejemplo con su rango de LAN de confianza:

sudo ufw allow from 192.168.1.0/24 to any port 69 proto udp
sudo ufw status

Consulte la guía UFW de Ubuntu para obtener información sobre las reglas de la red de origen. TFTP se inicia en el puerto UDP 69 y, a continuación, utiliza un puerto UDP seleccionado por el servidor para los datos de los archivos, tal como se describe en la especificación del protocolo . Un cortafuegos, enrutador o dispositivo NAT estricto puede permitir la solicitud, pero bloquear la transferencia. Si los clientes agotan el tiempo de espera, utilice el seguimiento de conexiones compatible con TFTP o una política de cortafuegos adecuada; no abra todos los puertos UDP ni exponga TFTP a internet. Este comando añade una regla; no habilita UFW. Si administra el servidor mediante SSH y tiene previsto activar un cortafuegos inactivo, primero permita SSH para preservar el acceso remoto.

Comando UFW que permite el puerto UDP 69 solo desde la subred de ejemplo 192.168.1.0/24
Permitir las solicitudes iniciales desde una subred de confianza.

Pruebas de descarga y carga

7. Descargar desde un cliente Ubuntu

En el servidor, ejecute el comando ip -brief addressy anote su dirección LAN accesible. En un cliente Ubuntu, instale el cliente si es necesario. Reemplace 192.0.2.10lo siguiente con la dirección real del servidor:

sudo apt install tftp-hpa
tftp 192.0.2.10
tftp> binary
tftp> get hello.txt
tftp> quit

El archivo se guarda en el directorio actual del cliente. El manual del cliente TFTP de Ubuntu documenta binaryy get. Se recomienda el modo binario para firmware, imágenes de arranque y archivos cuyos bytes deben permanecer sin cambios. Los nombres de archivo de Linux distinguen entre mayúsculas y minúsculas, así que introduzca cada nombre remoto exactamente como se indica.

Terminal cliente TFTP conectándose al servidor de ejemplo y descargando hello.txt en modo binario.
Solicitar el archivo conocido en modo binario.

8. Subir a la carpeta restringida

En el cliente, cree un archivo de prueba y envíelo a una ruta dentro del directorio de carga del servidor:

printf 'Upload test' > upload-check.txt
tftp 192.0.2.10
tftp> binary
tftp> put upload-check.txt upload/upload-check.txt
tftp> quit

Utilice la dirección real del servidor. La ruta remota es relativa a /srv/tftp; verifique la carga en el servidor con sudo ls -l /srv/tftp/upload/. Los clientes TFTP utilizan nombres de archivo conocidos en lugar de explorar un listado de directorios.

El terminal cliente TFTP envía upload-check.txt a upload/upload-check.txt en modo binario.
Los archivos subidos permanecen dentro del subdirectorio con permisos de escritura.

Solucionar errores comunes

  • Archivo no encontrado: compruebe el nombre del archivo en relación con /srv/tftpy confirme que existe.
  • Violación de acceso: Haga que los archivos servidos sean de lectura pública; para las cargas, verifique la tftppropiedad del destino y confirme --createque esté configurada.
  • Tiempo de espera agotado: Confirme que el cliente utiliza la dirección accesible del servidor, que el servicio está activo y que el cortafuegos permite el flujo de datos UDP negociado.

Para aislar un problema de red, primero realice una prueba desde un cliente en la misma LAN. Si funciona, pero un cliente enrutado agota el tiempo de espera, verifique si el enrutador o el firewall gestionan el puerto de datos negociado de forma compatible con TFTP.

Para un servicio de solo lectura, elimine --createy TFTP_OPTIONSreinicie tftpd-hpa.

Dejar un comentario

Cómo recuperar particiones y datos de disco duro perdidos de forma segura

Cómo recuperar particiones y datos de disco duro perdidos de forma segura

Aprende a recuperar particiones y archivos perdidos con TestDisk y PhotoRec. Protege la unidad de origen, realiza un escaneo seguro y guarda los datos recuperados en otro disco.

Cómo escanear códigos QR en un ordenador de escritorio Linux

Cómo escanear códigos QR en un ordenador de escritorio Linux

Escanea códigos QR en Linux con CoBang usando una cámara web o un archivo de imagen. Consulta las opciones de instalación, los pasos de configuración y las soluciones para el acceso a la cámara Flatpak.

Cómo cambiar la configuración de la cámara web en Linux con Cameractrls

Cómo cambiar la configuración de la cámara web en Linux con Cameractrls

Cambia la configuración de la cámara web en Linux con Cameractrls: ajusta la exposición, el color, la reducción de parpadeo y otros controles compatibles, y luego comprueba los modos de vídeo compatibles.

Cómo instalar PhpStorm en Linux: Toolbox, Tar.gz, Snap y AUR

Cómo instalar PhpStorm en Linux: Toolbox, Tar.gz, Snap y AUR

Instala PhpStorm en Linux con JetBrains Toolbox o el archivo tar.gz independiente, además de las opciones Snap y Arch AUR. Java ya viene incluido.

Cómo configurar paneles duales en XFCE 4

Cómo configurar paneles duales en XFCE 4

Crea un panel XFCE 4 independiente para cada pantalla, asigna el segundo panel a la salida correcta, colócalo y ajusta su tamaño, y añade los lanzadores y elementos de estado que necesites.

Cómo instalar Cisco Packet Tracer en Linux

Cómo instalar Cisco Packet Tracer en Linux

Descarga Cisco Packet Tracer 9.0.1 para Ubuntu de 64 bits, instala el paquete DEB con APT, acepta la licencia en la terminal e inicia sesión para comenzar un laboratorio.

Cómo recortar una imagen en Linux con GIMP

Cómo recortar una imagen en Linux con GIMP

Eliminar el fondo de una foto en Linux con GIMP: trazar el sujeto, eliminar el fondo seleccionado, mantener la transparencia y exportar un archivo PNG reutilizable.

Cómo hacer una copia de seguridad de un CD-ROM como imagen ISO en Linux

Cómo hacer una copia de seguridad de un CD-ROM como imagen ISO en Linux

Crea una imagen ISO de CD-ROM en Linux con GNOME Disks o dd. Identifica la unidad óptica, supervisa la copia, verifica la imagen y descubre cuándo un disco dañado o de audio requiere otra herramienta.

Descarga FlightGear gratis: Guía de instalación oficial

Descarga FlightGear gratis: Guía de instalación oficial

Descarga FlightGear gratis desde el sitio web oficial. Compara los paquetes para Windows, macOS y Linux, instala los archivos de datos y comienza tu primer vuelo.

OKSampler: Un muestreador de música gratuito y sencillo para ritmos de teclado.

OKSampler: Un muestreador de música gratuito y sencillo para ritmos de teclado.

OKSampler asigna clips MP3 a teclas del teclado y permite reproducir audio en bucle. Descubre qué hace este antiguo programa gratuito, dónde terminan sus funciones anteriores y qué debes comprobar antes de descargarlo.