Hoe stel je een TFTP-server in op Ubuntu Server met tftpd-hpa?

Installeer de tftpd-hpa- server en tftp-hpa- client van Ubuntu. Deze configuratie serveert bestanden /srv/tftpen bewaart uploads in een aparte map. Raadpleeg de pakketlijsten van de Ubuntu-server en -client .

Beveiliging: TFTP kent geen inloggegevens of versleuteling. Beperk de toegang tot een vertrouwd lokaal netwerk (LAN); bereikbare clients kunnen beschikbare bestanden lezen en bestanden uploaden indien de juiste machtigingen dit toestaan. Verstuur geen geheimen. De TFTP-specificatie beschrijft de beveiligingslimieten.

Stel de TFTP-server in.

1. Installeer de server en de client.

Vernieuw de APT-metadata en installeer vervolgens beide pakketten:

sudo apt update
sudo apt install tftpd-hpa tftp-hpa
De terminal van Ubuntu Server toont de opdracht om tftpd-hpa en tftp-hpa te installeren.
Installeer de server- en clientpakketten.

2. Configureer de TFTP-root

Bewerk het pakketconfiguratiebestand:

sudo nano /etc/default/tftpd-hpa

Stel deze waarden in:

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

--secureHiermee wordt de daemon beperkt tot de geconfigureerde root, --createzijn uploads toegestaan ​​en --umask 027worden nieuwe uploadbestanden beperkt tot de modus 0640. De Ubuntu tftpd-handleiding beschrijft deze opties. Opslaan met Ctrl+O, druk op Enter en vervolgens op Ctrl+X.

Omdat de rootmap zichtbaar is --securevoor /srv/tftpde client, zijn bestandsnamen relatief ten opzichte daarvan: gebruik hello.txt, niet /srv/tftp/hello.txt. TFTP-clients bladeren niet door mappen, dus houd een lijst bij van gepubliceerde bestandsnamen en hun paden.

Terminaleditor toont tftpd-hpa geconfigureerd met /srv/tftp root, beveiligde modus, uploads en umask 027
Beperk de bestanden en stel het uploadmasker in.

3. Maak de hoofdmap en de uploadmap aan.

Zorg ervoor dat de hoofdmap eigendom blijft van root en geef alleen schrijftoegang tot de uploadmap:

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

De daemon kan de rootmap lezen, maar alleen het tftpaccount kan erin schrijven /srv/tftp/upload. Vermijd het om de hele bestandsstructuur wereldwijd beschrijfbaar te maken met machtigingen zoals 777.

Bestanden in de openbare rootmap moeten leesbaar zijn voor elke toegestane client. Beperk die map tot opstartimages, firmware of ander materiaal dat voor dat netwerk bedoeld is. Kies voor privéoverdrachten een protocol met authenticatie en versleuteling.

Ubuntu-terminal maakt /srv/tftp/upload aan met de tftp-gebruiker en -groep en modus 0750
Alleen de subdirectory 'upload' is beschrijfbaar.

4. Voeg een bestand toe om te serveren

Maak een bekend bestand aan in de rootmap. De standaard leescontroles van TFTP vereisen dat aangeboden bestanden openbaar leesbaar zijn, dus stel de modus in op 0644:

echo 'TFTP test file' | sudo tee /srv/tftp/hello.txt
sudo chmod 0644 /srv/tftp/hello.txt
Ubuntu Server-terminal schrijft hello.txt naar /srv/tftp en stelt de bestandsrechten in op 0644.
Maak een bekend bestand aan voor de downloadtest.

5. Schakel de service in en herstart deze.

Schakel het apparaat in bij het opstarten, herstart het om de instellingen toe te passen en controleer de status:

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

Als het opstarten mislukt, controleer dan het servicelogboek met sudo journalctl -u tftpd-hpa -b --no-pager.

Ubuntu Server-terminalopdrachten om de tftpd-hpa-service in te schakelen, opnieuw te starten en te inspecteren.
Start de service opnieuw op nadat u de instellingen hebt gewijzigd.

6. Beperk de toegang tot de firewall

Als UFW is ingeschakeld, sta dan alleen het eerste verzoek toe vanuit uw clientsubnet. Vervang het voorbeeldnetwerk door uw vertrouwde LAN-bereik:

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

Zie de UFW-handleiding van Ubuntu voor regels voor bronnetwerken. TFTP start op UDP-poort 69 en gebruikt vervolgens een door de server geselecteerde UDP-poort voor bestandsgegevens, zoals beschreven in de protocolspecificatie . Een strikte firewall, router of NAT-apparaat kan het verzoek toestaan, maar de overdracht blokkeren. Als clients een time-out krijgen, gebruik dan TFTP-compatibele verbindingsregistratie of een passend firewallbeleid; open niet elke UDP-poort en stel TFTP niet bloot aan het internet. Deze opdracht voegt een regel toe; hiermee wordt UFW niet ingeschakeld. Als u de server via SSH beheert en van plan bent een inactieve firewall in te schakelen, sta dan eerst SSH toe om toegang op afstand te behouden.

UFW-opdracht die alleen UDP-poort 69 toestaat vanuit het voorbeeldsubnet 192.168.1.0/24.
Sta initiële verzoeken toe vanuit een vertrouwd subnet.

Test downloads en uploads

7. Downloaden vanaf een Ubuntu-client

Voer op de server het commando uit ip -brief addressen noteer het bereikbare LAN-adres. Installeer indien nodig de client op een Ubuntu-client. Vervang 192.0.2.10onderstaande tekst door het daadwerkelijke serveradres:

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

Het bestand wordt opgeslagen in de huidige map van de client. De handleiding van de Ubuntu TFTP-client beschrijft binarydit get. De binaire modus wordt aanbevolen voor firmware, opstartimages en bestanden waarvan de bytes ongewijzigd moeten blijven. Linux-bestandsnamen zijn hoofdlettergevoelig, dus voer elke externe naam exact zo in.

De TFTP-clientterminal maakt verbinding met de voorbeeldserver en downloadt hello.txt in binaire modus.
Vraag het bekende bestand op in binaire modus.

8. Uploaden naar de beveiligde map

Maak aan de clientzijde een testbestand aan en stuur dit vervolgens naar een map in de uploaddirectory van de server:

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

Gebruik het daadwerkelijke adres van de server. Het externe pad is relatief ten opzichte van /srv/tftp; controleer de upload op de server met sudo ls -l /srv/tftp/upload/. TFTP-clients gebruiken bekende bestandsnamen in plaats van een directorylijst te doorzoeken.

TFTP-clientterminal verzendt upload-check.txt naar upload/upload-check.txt in binaire modus.
Uploads blijven binnen de beschrijfbare subdirectory.

Los veelvoorkomende fouten op

  • Bestand niet gevonden: Controleer de bestandsnaam ten opzichte van de oorspronkelijke locatie /srv/tftpen bevestig dat het bestand bestaat.
  • Toegangsschending: Zorg ervoor dat aangeboden bestanden openbaar leesbaar zijn; controleer bij uploads het tftpeigenaarschap van de bestemming en bevestig dat --createdit is ingesteld.
  • Time-out: Controleer of de client het bereikbare adres van de server gebruikt, of de service actief is en of de firewall de overeengekomen UDP-gegevensstroom toestaat.

Om een ​​netwerkprobleem te isoleren, test u eerst vanaf een client op hetzelfde LAN-netwerk. Als dat werkt, maar een gerouteerde client een time-out geeft, controleert u of de router of firewall TFTP-compatibel is met de onderhandelde datapoort.

Voor een alleen-lezen service, verwijder --createdeze TFTP_OPTIONSen herstart de service tftpd-hpa.

Laat een reactie achter

Hoe u verloren partities en harde schijfgegevens veilig kunt herstellen

Hoe u verloren partities en harde schijfgegevens veilig kunt herstellen

Leer hoe u verloren partities en bestanden kunt herstellen met TestDisk en PhotoRec. Bescherm de bronschijf, scan veilig en sla de herstelde gegevens op een andere schijf op.

Hoe scan je QR-codes op een Linux-desktop?

Hoe scan je QR-codes op een Linux-desktop?

Scan QR-codes op Linux met CoBang met behulp van een webcam of afbeeldingsbestand. Bekijk de installatieopties, configuratiestappen en oplossingen voor toegang tot de Flatpak-camera.

Hoe je webcaminstellingen op Linux kunt wijzigen met Cameractrls

Hoe je webcaminstellingen op Linux kunt wijzigen met Cameractrls

Wijzig de webcaminstellingen op Linux met Cameractrls: pas de belichting, kleur, flikkerreductie en andere ondersteunde instellingen aan en controleer vervolgens de compatibele videomodi.

Hoe installeer je PhpStorm op Linux: Toolbox, Tar.gz, Snap en AUR?

Hoe installeer je PhpStorm op Linux: Toolbox, Tar.gz, Snap en AUR?

Installeer PhpStorm op Linux met JetBrains Toolbox of het zelfstandige tar.gz-archief, plus de Snap- en Arch AUR-opties. Java is al meegeleverd.

Hoe stel je twee schermen in op XFCE 4?

Hoe stel je twee schermen in op XFCE 4?

Maak voor elk scherm een ​​apart XFCE 4-paneel aan, wijs het tweede paneel toe aan de juiste uitvoer, positioneer en schaal het en voeg de benodigde launchers en statusitems toe.

Hoe installeer je Cisco Packet Tracer op Linux?

Hoe installeer je Cisco Packet Tracer op Linux?

Download Cisco Packet Tracer 9.0.1 voor Ubuntu 64-bit, installeer het DEB-pakket met APT, accepteer de licentie in de terminal en meld u aan om een ​​lab te starten.

Hoe maak je een back-up van een cd-rom als ISO-bestand op Linux?

Hoe maak je een back-up van een cd-rom als ISO-bestand op Linux?

Maak een cd-rom-ISO op Linux met GNOME Disks of dd. Identificeer het optische station, controleer het kopieerproces, verifieer de image en weet wanneer een beschadigde of audio-cd een ander programma nodig heeft.

Hoe je een afbeelding uitknipt in Linux met GIMP

Hoe je een afbeelding uitknipt in Linux met GIMP

Verwijder de achtergrond van een foto op Linux met GIMP: selecteer een onderwerp, verwijder de geselecteerde achtergrond, behoud de transparantie en exporteer een herbruikbare PNG-afbeelding.

Download FlightGear gratis: officiële installatiehandleiding

Download FlightGear gratis: officiële installatiehandleiding

Download FlightGear gratis van de officiële website. Vergelijk de Windows-, macOS- en Linux-pakketten, installeer de gegevensbestanden en begin aan je eerste vlucht.

Google Tasks desktop-app: hoe gebruik je deze op een computer?

Google Tasks desktop-app: hoe gebruik je deze op een computer?

Open Google Taken in een browser, voeg een Chrome-snelkoppeling of een app-achtige start toe en beheer taken met een datum via Agenda en Gmail.