Veri aktarım işlemlerinde sistem kaynaklarını minimum düzeyde kullanan, pratik ve hızlı çözümler sistem yöneticileri açısından kritik rol oynar. Bu gibi durumlarda tercih edilen TFTP, sadeliği ile dikkat çeker. Bu içerikte, TFTP protokolünün teknik yapısını ve her iki uçtan sağladığı faydaları ele alacağız.
TFTP Nedir?
TFTP, karmaşık olmayan bir dosya iletim protokolüdür. Aktarımlarında TCP yerine UDP (port 69) kullanır. Fonksiyonel olarak yalnızca dosya gönderme ve alma işlemlerini içerir. Kullanıcı doğrulama, dizin gezme, dosya silme gibi işlemleri desteklemez. Bu sade yapısı sayesinde, genellikle ağ donanımlarında ve düşük kaynaklı sistemlerde hızlı ama güvenli olmayan dosya transfer ihtiyaçları için kullanılır. Ayrıca OpenStack benzeri modüler bulut sistemlerinde, düşük seviyeli yapılandırma verilerinin hızlı aktarımı gerektiğinde TFTP, hafifliğiyle uygun bir çözüm olabilir.
TFTP Ne Zaman Tercih Edilir?
- Ağ ekipmanlarının firmware güncellemeleri
- Yönlendirici ve switch konfigürasyonlarının yedeklenmesi ve geri yüklenmesi
- PXE ile sistem önyükleme
- IoT cihazlarında küçük boyutlu dosya transferleri
- Sistem otomasyonu
TFTP Avantaj Ve Dezavantajları
TFTP, kaynak tüketimi bakımından oldukça hafif bir protokol olup, genellikle ağ donanımlarında kullanılır. Ekstra bir protokol katmanına gerek duymadan çalışır ve donanımların büyük çoğunluğu TFTP sunucularını doğrudan tanıyarak işlem gerçekleştirebilir. Kurulumu hızlıdır ve yapılandırılması son derece basittir.
Bununla birlikte, TFTP’nin bazı temel zaafları vardır. Aktarılan veriler şifrelenmediği için açık metin halinde iletilir, bu da ciddi güvenlik açıkları doğurabilir. Ayrıca kimlik doğrulama özelliği olmaması nedeniyle sunucular yetkisiz erişimlere karşı savunmasız kalabilir. Bu tür saldırı girişimlerini önlemek için Fail2ban ve Regex kombinasyonu kullanılarak sistem günlüklerinden zararlı girişimler tespit edilip IP adresleri engellenebilir.
Ayrıca, FTP’de bulunan dosya silme veya listeleme gibi gelişmiş özelliklere sahip değildir. Üstelik aktarılabilecek dosya boyutlarında da bazı sınırlamalar bulunur.
TFTP’nin Teknik Yapısı ve Mesaj Türleri
TFTP, istemci ile sunucu arasında istek-cevap (request-response) temelli çalışır. Temel mesaj türleri şunlardır.
| Açıklama | Detaylar |
|---|---|
| RRQ – Okuma İsteği | Dosya almak için istemci tarafından gönderilir |
| WRQ – Yazma İsteği | Dosya göndermek için kullanılır |
| DATA – Veri | 512 bayta kadar veri içerir |
| ACK – Onay | Verinin alındığını belirtir |
TFTP Aktarım Modları
TFTP protokolü yalnızca iki farklı aktarım modunu destekler: Netascii ve Octet. Netascii modu, ASCII karakter setine dayalı olarak metin dosyalarının iletiminde kullanılır ve özellikle insan tarafından okunabilir veri aktarımları için uygundur. Bu modda veriler, sistemler arası uyumluluğu artırmak için belirli karakter dönüşümleri uygulanarak gönderilir. Diğer yandan Octet modu, verileri ham (binary) formatta iletir. Bu sayede herhangi bir dönüşüm yapılmaksızın orijinal hâliyle veri aktarımı sağlanır.
Octet modu, genellikle firmware güncellemeleri, sistem imajları veya görüntü dosyaları gibi ikili veri içeren dosyaların taşınmasında tercih edilir.
Ubuntu Üzerinde TFTP Sunucusu Kurulumu
Ubuntu‘da belirli bir yazılımı kurmak istediğinizde, hangi paketin bu yazılımı içerdiğinden emin değilseniz, apt paket yöneticisi üzerinden anahtar kelime ile arama yaparak ilgili paketleri kolayca tespit edebilirsiniz.
petru@petru-ubuntu:~$ apt-cache search tftp | grep tftp erlang-tftp - Erlang/OTP TFTP client and server python3-txtftp - Twisted-based TFTP implementation tftp-hpa - HPA's tftp client tftp-hpa-dbg - HPA's tftp (debug) tftpd-hpa - HPA's tftp server atftp - advanced TFTP client atftpd - advanced TFTP server golang-github-pin-tftp-dev - TFTP server and client library for Golang (library) libnet-tftp-perl - Perl module for accessing TFTP servers libnet-tftpd-perl - Perl extension for Trivial File Transfer Protocol Server puppet-module-puppetlabs-tftp - Puppet module for managing tftp-hpa python3-fbtftp - Framework to build dynamic TFTP servers (Python3) tftp - transitional package petru@petru-ubuntu:~$

İlk olarak sisteminizdeki paket listelerini güncelleyerek en güncel paketlere erişimi sağlamak önemlidir.
sudo apt update
TFTP hizmetini sağlayan tftpd-hpa paketini yükleyerek sunucuyu sisteminize kurabilirsiniz.
sudo apt install tftpd-hpa
Kurulum sonrası TFTP servisi otomatik olarak başlatılır. Durumunu aşağıdaki komutla kontrol edebilirsiniz. Eğer servis aktif ve çalışır durumda ise, yeşil bir “active (running)” mesajı görürsünüz. Aksi durumda hata mesajlarına dikkat edin.
sudo systemctl status tftpd-hpa
TFTP sunucusunun hangi dizini kullanacağı, hangi IP ve port üzerinden dinleyeceği gibi bilgileri ayarlamak için konfigürasyon dosyasını açın:
sudo nano /etc/default/tftpd-hpa
Aşağıdaki örnek yapılandırma satırlarını bu dosyaya girin veya var olanları düzenleyin:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
Yukarıda belirttiğiniz /tftp dizini sistemde yoksa, elle oluşturulmalı ve gerekli izinler atanmalıdır.
sudo mkdir /tftp
sudo chown tftp:tftp /tftp
sudo chmod 755 /tftp
Yapılandırma değişikliklerinin aktif olabilmesi için TFTP servisini yeniden başlatmanız gerekmektedir. Bu işlem sonrası TFTP sunucunuz yapılandırılmış olur ve veri aktarımlarına hazırdır.
TFTP İstemcisi Kullanımı
Kurulum tamamlandıktan sonra, bir TFTP sunucusuna bağlanmak için aşağıdaki komutu kullanabilirsiniz. <sunucu_ip_adresi> kısmına gerçek IP adresini girmeniz gerekir.
tftp <sunucu_ip_adresi>
Sunucudan bir dosya indirmek için get komutunu kullanabilirsiniz.
get dosya.txt
Sunucuya dosya yüklemek için put komutu kullanılır.
put dosya.txt
TFTP, özellikle aynı yapılandırmanın birden fazla ağ cihazına hızlı şekilde aktarılması gereken durumlarda büyük kolaylık sağlar. Örneğin, birden fazla switch’e aynı konfigürasyonu yüklemek için merkezi bir TFTP sunucusundan cihazlara özel betikler aracılığıyla yapılandırma dosyaları saniyeler içinde dağıtılabilir.
Ancak bu pratikliğe rağmen, TFTP’nin şifreleme ve kimlik doğrulama desteğinin olmaması nedeniyle yalnızca güvenli, izole edilmiş ağ ortamlarında kullanılmalıdır. Günlük ağ yönetim görevlerinde zaman kazandırsa da, kritik sistemlerde veri güvenliği için FTP, SFTP veya SCP gibi daha güvenli alternatiflerin tercih edilmesi tavsiye edilir.
Sık Sorulan Sorular
TFTP hangi portu kullanır?
TFTP, UDP 69 portu üzerinden çalışır. Bu port üzerinden gelen paketler tftpd-hpa, tftpd32 veya tftpd64 gibi sunucu yazılımları tarafından dinlenir.
TFTP ile firmware nasıl yüklenir?
TFTP ile firmware yüklemek için, firmware dosyası bir TFTP sunucusuna yerleştirilir. Ardından cihaz üzerinde aşağıdaki gibi bir komut çalıştırılır:
copy tftp://<sunucu_ip>/firmware.bin flash:
Tftpd64 nedir?
tftpd64, Windows işletim sistemleri için geliştirilmiş popüler bir TFTP sunucu yazılımıdır. DHCP, syslog, SNTP ve TFTP hizmetlerini tek bir arayüzde sunar. Resmi indirme bağlantısı https://pjo2.github.io/tftpd64 adresinden erişilebilir.
TFTP Server nasıl kurulur?
Linux’ta tftpd-hpa veya atftpd gibi servislerle kurulum yapılabilir. Windows sistemlerde ise tftpd32 veya tftpd64 yazılımları kullanılır.
TFTP Server download için en iyi kaynaklar nelerdir?
- Windows için tftpd64, SolarWinds TFTP Server
- Linux için
tftpd-hpa,atftpd,dnsmasq(entegre TFTP) - macOS için Homebrew üzerinden
tftp-serverkurulabilir.