Linux Sistemleri

      Ubuntu Üzerinden TFPT Kurulumu Ve Yapılandırma

      Dosya aktarımı söz konusu olduğunda, sistem yöneticileri için hız, sadelik ve düşük kaynak kullanımı ön plandadır. Bu ihtiyaçlara doğrudan yanıt veren protokollerden biri ise TFTP’dir. Bu makalede, TFTP protokolünü hem sunucu hem de istemci perspektifinden değerlendirerek temel yapı ve avantajlarını açıklayacağız.

      TFTP Nedir?

      TFTP, en temel seviyede dosya transferi için kullanılan sade bir protokoldür. Veri iletiminde TCP yerine UDP protokolünü kullanır ve 69 numaralı porttan çalışır. Gelişmiş işlemler olan kullanıcı doğrulama, dizin görüntüleme veya dosya silme gibi özellikleri içermez. Bu basit mimarisi, genellikle ağ donanımları gibi kaynak kısıtlı cihazlarda hızlı ancak güvenliksiz dosya aktarımı için idealdir. Özellikle Ubuntu root yetkileriyle çalışan otomasyon betiklerinde, TFTP ile yapılandırma dosyalarının hızlıca iletilmesi mümkündür. Ayrıca, Nagios gibi izleme sistemleri içinde ağ cihazlarının ilk yapılandırma dosyalarının erişimini sağlamak veya bazı özel plug-in senaryolarında TFTP desteği kullanılabilir.

      TFTP Ne Zaman Tercih Edilir?

      TFTP, sistem otomasyonunun merkezde olduğu yapılarda, dosya transferi gerektiren işlemler için ideal çözümlerden biridir. Router ve switch gibi ağ ekipmanlarının konfigürasyonlarını yedeklemek veya firmware güncellemelerini dağıtmak gibi işlemlerde öne çıkar. PXE desteği sayesinde işletim sistemlerinin uzaktan başlatılması sırasında gerekli dosyaların iletimini üstlenir. Ayrıca IoT cihazlarının kontrol süreçlerinde hızlı ve basit veri aktarımı için yaygın biçimde kullanılır.

      TFTP Avantaj Ve Dezavantajları

      TFTP düşük RAM ve CPU tüketimi sayesinde özellikle ağ cihazlarında tercih edilir. Ek katmanlara ihtiyaç duymadan çalışır ve yaygın donanım desteği ile birçok ağ ekipmanı TFTP sunucularını doğrudan tanıyabilir. Kurulum süreci oldukça hızlıdır ve yapılandırma işlemleri son derece kolaydır.

      TFTP bazı önemli eksiklikler barındırır. Şifreleme desteği bulunmadığından, iletilen veriler açık metin olarak gönderilir ve bu da güvenlik risklerini beraberinde getirir. Kimlik doğrulama mekanizmasının olmayışı, sunucuya izinsiz erişimlerin önünü açabilir.

      Ayrıca, FTP gibi gelişmiş dosya yönetim özelliklerinden yoksundur; örneğin dosya listeleme veya silme işlemleri desteklenmez. Dosya boyutu konusunda da kısıtlamalar mevcuttur.

      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çıklamaDetaylar
      RRQ – Okuma İsteğiDosya almak için istemci tarafından gönderilir
      WRQ – Yazma İsteğiDosya göndermek için kullanılır
      DATA – Veri512 bayta kadar veri içerir
      ACK – OnayVerinin 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

      copy tftp://<sunucu_ip>/firmware.bin flash:
      Hi, I’m Spesifik

      Bir yanıt yazın

      E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir