TFTP Nedir? Port 69, Switch Yedeği ve PXE
TFTP nedir, UDP 69 üzerinden nasıl çalışır ve switch yapılandırma yedeği neden bu protokolle alınır? Gerçek paket dökümü, PXE boot ve SFTP karşılaştırması.
- TFTP Nedir? Port 69’da Kimlik Sormayan Dosya Aktarımı
- Ağ Cihazları Neden Hâlâ TFTP Kullanıyor?
- TFTP Nasıl Çalışır? Beş Opcode, 512 Baytlık Blok, Tek ACK
- İstek Port 69’a Gider, Cevap Başka Porttan Döner
- Lab: TFTP ile Switch Yedeği Alırken Ağda Ne Görünüyor?
- TFTP Hatası Nerede Yazılı? Switch Susuyor, Sunucu da Susuyor
- Yedeğin İçinde Ne Var? SNMP Community Paket Dökümünde
- TFTP mi SFTP mi? Aynı Dosya, İki Yakalama
- ”Başarıyla Tamamlandı” Diyen Switch Yedeği Neden Boş Olabilir?
- PXE Boot Nedir? TFTP’nin İkinci Hayatı
- TFTP ile Firmware Yükleme: Geri Dönüşü Olmayan Aktarım
- TFTP Sorun Giderme: Sunucu Ayakta, Dosya Gelmiyor
- Sonuç: Kilitsiz Kapı Bir Kusur Değil, Bir Sınırdır
- TFTP Hakkında Sık Sorulan Sorular
TFTP (Trivial File Transfer Protocol), UDP üzerinde 69 numaralı portta çalışan, kimlik doğrulaması hiç bulunmayan ve tek bir iş için tasarlanmış çok küçük bir dosya aktarım protokolüdür: bir dosyayı bir yerden alıp bir yere koymak. Switch ve router yapılandırmalarının yedeklenmesi, cihaz yazılımının yüklenmesi ve ağ üzerinden işletim sistemi kurulumu bugün hâlâ büyük ölçüde bu protokolle yürür.
Her kurumda bir fotokopi odası vardır. Kapısında kilit yoktur, girerken kimse kimliğinizi sormaz, kimin ne çektiğinin kaydı tutulmaz. Bu bir ihmal değil, bilinçli bir tercihtir: her fotokopi için parola isteseydiniz kimse fotokopi çekmezdi. Odanın işe yaraması, tam olarak kimseyi sorgulamamasına bağlıdır.
TFTP o odadır ve makale boyunca aynı odaya döneceğiz. Çünkü protokolün hem neden bu kadar yaygın olduğu hem neden bu kadar tehlikeli olduğu aynı yerden, o kilitsiz kapıdan çıkıyor. Bu makale Kurumsal Network Kurulumu ana hizmetinin yönetim ve yedekleme koluna odaklanıyor ve kurumsal ağ protokolleri rehberimizde tek paragrafla geçilen TFTP başlığını açıyor. Protokolün komşularını, yani hangi işin hangi porta düştüğünü merak ediyorsanız önce oraya bakmanız işinizi kolaylaştırır; burada tek bir protokolün içine ineceğiz. Aşağıdaki bütün paket dökümleri, komut çıktıları ve hata mesajları kendi lab ağımdan, gerçek bir yönetilebilir switch ile bir Ubuntu sunucusu arasında alındı. Protokolün tanımını değil doğrudan sahadaki halini arıyorsanız, lab turuna atlayabilirsiniz: yedek alma denemesi orada başlıyor ve ilk denemede başarısız oluyor.
TFTP Nedir? Port 69’da Kimlik Sormayan Dosya Aktarımı
TFTP, bir dosyayı ağ üzerinden okumak ya da yazmak için gereken en küçük komut kümesini tanımlayan bir protokoldür ve UDP 69 portunda dinler. Adındaki trivial kelimesi bir aşağılama değil, tasarım hedefidir: protokol o kadar sade tutulmuştur ki bir cihazın açılış yazılımına, işletim sistemi henüz yüklenmemişken bile sığar.
Adı FTP’yi çağrıştırır ama akrabası değildir. FTP ayrı bir komut kanalı ile veri kanalı kurar, TCP kullanır, kullanıcı adı ve parola ister, dizin listeler, dosya siler, izin değiştirir. TFTP bunların hiçbirini yapmaz. İki protokolün ayrıntılı karşılaştırması ve güvenli dosya aktarımının seçim kararı FTP, FTPS ve SFTP farkı makalemizde duruyor; burada tek bir cümleyle sınırı çizip kendi konumuza dönelim: TFTP bir dosya paylaşım aracı değil, bir cihaz besleme aracıdır.
Fotokopi odası benzetmesinin karşılıkları şöyle oturuyor:
| Fotokopi odası | TFTP |
|---|---|
| Kapıda kimlik sorulmaz | Protokolde kimlik doğrulama alanı hiç yoktur |
| Kimin ne çektiği kaydedilmez | Sunucu çoğu varsayılan kurulumda aktarımı loglamaz |
| Odaya giren belgeyi okuyabilir | Hedefe ulaşabilen herkes dosyayı indirebilir |
| Çıktı tepside açıkta durur | Dosya ağda şifrelenmeden taşınır |
| Oda binanın içindedir | Protokol yalnızca yönetim ağında anlamlıdır |
Benzetmenin koptuğu yer de önemli: fotokopi odasının kapısında kilit yoktur ama binanın kapısında vardır. TFTP’de o bina kapısını protokol değil siz koyarsınız, ve koymazsanız kimse sizi uyarmaz. Yönetim ağının nasıl ayrılacağı VLAN nedir makalemizde anlatılıyor.
Ağ Cihazları Neden Hâlâ TFTP Kullanıyor?
Ağ cihazlarının TFTP’yi bırakmamasının iki gerçek sebebi var ve ikisi de protokolün eksiklerinden doğuyor, onlara rağmen değil.
Birincisi boyut. Bir switch açılırken önce bootloader çalışır, işletim sistemi henüz yüklü değildir. O aşamada cihazın elinde TCP yığını, TLS kütüphanesi, sertifika deposu ya da SSH istemcisi yoktur. Birkaç kilobaytlık bir kod parçasına sığan tek dosya aktarım protokolü TFTP’dir. Cihaz kendi yazılımını ağdan çekecekse, o çekmeyi yapacak kodun yazılımın kendisinden önce var olması gerekir.
İkincisi, ve asıl ilginç olanı, kimlik bilgisinin yokluğu. Bir cihazın SFTP ile yedek alabilmesi için üzerinde saklanmış bir kullanıcı adı ve parola bulunması gerekir. Fabrika ayarlarındaki bir cihazda böyle bir bilgi yoktur ve olmaması iyidir: saklanan her kimlik bilgisi, cihaz çalındığında ya da ikinci el satıldığında sızacak bir kimlik bilgisidir. TFTP kimlik sormadığı için cihazda saklanacak bir şey de kalmaz.
Kolaylık ile açık aynı karardan geliyor. Bu cümle makalenin geri kalanının özeti sayılabilir.
Peki bu, “TFTP kullanmayın” demek mi? Hayır, ve burada net bir alt eşik var. Cihaz henüz kimlik bilgisi taşıyamıyorsa, ya da işlem yalnızca yönetim VLAN’ı içinde kalıyorsa TFTP meşrudur ve pratikte alternatifi yoktur. Yedekleme trafiği o VLAN’ın dışına çıkıyorsa, uzak bir ofise ya da internete uzanıyorsa meşru değildir. Ölçüt protokolün kendisi değil, dosyanın kimin görebileceği bir yoldan geçtiğidir.
TFTP Nasıl Çalışır? Beş Opcode, 512 Baytlık Blok, Tek ACK
TFTP’nin tamamı birkaç mesaj türünden oluşur ve her mesaj ilk iki baytında hangi türden olduğunu söyler. Bu iki bayta opcode denir. Aşağıdaki tabloda listelenenlerin hepsini kendi paket dökümümde yakaladım:
| Opcode | Ad | Ne yapar |
|---|---|---|
1 | RRQ (Read Request) | Dosyayı okumak istiyorum |
2 | WRQ (Write Request) | Dosyayı yazmak istiyorum |
3 | DATA | İşte bir blok veri |
4 | ACK | Bu bloğu aldım |
5 | ERROR | Olmadı, sebebi şu |
6 | OACK | Önerdiğin seçenekleri kabul ettim |
İlk beşi protokolün 1981 tarihli özgün tanımından gelir. Altıncısı, OACK, sonradan eklenen seçenek pazarlığının cevabıdır: istemci blok boyutu ya da zaman aşımı gibi bir tercih önerirse sunucu bu paketle karşılık verir.
Akışın kendisi tek bir kuralla özetlenebilir: gönderen taraf bir blok yollar ve karşıdan onayını almadan sıradakini yollamaz. Buna kilit adım denir ve şöyle işler:
- İstemci
RRQya daWRQgönderir, içine dosya adını ve aktarım modunu yazar. - Karşı taraf kabul ederse
ACKile ya da doğrudan ilkDATAbloğuyla cevap verir. - Her
DATApaketi en fazla 512 bayt veri taşır ve kendi blok numarasını içerir. - Alıcı her bloğa ayrı bir
ACKdöner. Onay gelmeden sonraki blok yola çıkmaz. - Gönderen 512 bayttan küçük bir blok yollayınca aktarım biter. Ayrı bir bitiş mesajı yoktur.
Son maddedeki incelik gözden kaçar ama protokolün bütün sadeliği oradadır: dosyanın bittiğini söyleyen ayrı bir işaret yoktur, kısa gelen blok bitişin kendisidir. Dosya tam olarak 512’nin katıysa gönderen sıfır baytlık bir blok yollamak zorundadır, yoksa alıcı beklemeye devam eder.
Fotokopi odasına dönersek: makineye tek sayfa koyup çıkmasını beklersiniz, çıkanı alırsınız, sonra bir sonrakini koyarsınız. Yığını bir kerede besleyip arkanızı dönemezsiniz. Bu yavaştır, ama belleği birkaç kilobayt olan bir bootloader için tam olarak doğru tasarımdır: aynı anda takip edilecek tek bir blok vardır.
İstek Port 69’a Gider, Cevap Başka Porttan Döner
TFTP’nin en çok yanlış bilinen tarafı burasıdır: aktarımın tamamı port 69 üzerinden yürümez. İstemci ilk isteğini 69’a gönderir, ama sunucu o isteği aldıktan sonra kendine yeni bir port açar ve cevabı oradan döner. Geri kalan bütün alışveriş, istemcinin kaynak portu ile sunucunun bu yeni portu arasında sürer. Port 69 her aktarımda tam olarak bir paket görür.
Kendi ölçümümden, yedek alırken çıkan ilk iki paket:
192.168.1.2.50687 > 192.168.1.46.69: TFTP, length 27, WRQ "./sw01-running.cfg" octet
192.168.1.46.42295 > 192.168.1.2.50687: UDP, length 19Bu iki satırda bakılacak üç yer var:
- Birinci satırda hedef port
69. İstek doğru kapıya gitmiş. - İkinci satırda kaynak port
42295. Cevap69’dan gelmiyor. - İkinci satırdaki paketi çözümleyici artık “TFTP” diye adlandıramıyor, düz “UDP” diyor. Çünkü alışveriş bilinen porttan ayrılmış durumda.
Peki sunucu neden 69’dan cevap vermiyor da yeni bir port açıyor? Çünkü 69 bir dinleme kapısıdır ve aynı anda birçok istemciye hizmet vermesi gerekir. Sunucu her isteğe ayrı bir port ayırarak oturumları birbirinden ayırır; ikinci istemci geldiğinde birincinin blokları karışmaz. Portların bu iş bölümü ve UDP’nin TCP’den farkı port nedir makalemizde ayrıntılı olarak duruyor.
69'dan değil, sunucunun bu oturum için açtığı 42295'ten geliyor, ve aktarımın geri kalanı orada sürüyor.Bu tasarım kararının bedelini durum tabanlı firewall’lar öder ve bedeli makalenin sonunda ölçeceğiz.
Lab: TFTP ile Switch Yedeği Alırken Ağda Ne Görünüyor?
Sahada bu işin standart tarifi tek cümledir: TFTP sunucusunu kur, cihazdan copy komutunu çalıştır, yedeğin gelsin. Tarifi bir Ubuntu sunucusunda birebir uyguladım ve ilk denemede yedek alınamadı. Sebebi de, sebebin nerede yazılı olduğu da bu bölümün konusu.
Toplayıcı olarak zaten merkezi syslog sunucusu rolündeki makineyi kullandım; switch ona zaten log gönderiyordu, yani yönetim trafiğinin doğal hedefi orasıydı. Sunucu tarafındaki kurulum tek paket:
sudo apt install tftpd-hpaPaket kurulduğunda arkasında şu yapılandırmayı bırakıyor:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"Bu dört satırda iki şey eksik ve ikisi de birazdan yedeği düşürecek. Şimdilik cihaz tarafına geçelim. Yönetilebilir switch’in konsolunda yedekleme komutu şu biçimde:
copy running-config tftp://192.168.1.46/sw01-running.cfgKomut önce ne yapacağını özetliyor, sonra onay istiyor:
Transfer Mode.................................. TFTP
Server IP Address.............................. 192.168.1.46
Destination Filename........................... sw01-running.cfg
Source Filename................................ running-config
Management access will be blocked for the duration of the transfer
Are you sure you want to start? (y/n) y
File transfer failed!Aktarım sırasında yönetim erişiminin kesileceği uyarısı gerçektir ve cihaza uzaktan bağlıysanız hesaba katılması gerekir. Ama asıl mesele son satır: File transfer failed! Cihaz başarısız olduğunu söylüyor, neden başarısız olduğunu söylemiyor.
TFTP Hatası Nerede Yazılı? Switch Susuyor, Sunucu da Susuyor
Böyle bir durumda refleks olarak sunucu kayıtlarına bakılır. Baktım:
sudo journalctl -t in.tftpd --since "-6 min"-- No entries --Sunucu da susuyor. Cihaz sebebi söylemiyor, sunucu kayıt tutmuyor. Geriye sebebin yazılı olduğu tek yer kalıyor, o da paketlerin kendisi. Aktarım sırasında toplayıcı üzerinde bir yakalama açıp aynı komutu tekrarladım ve sunucunun döndürdüğü 19 baytlık cevabın içine baktım:
0x0010: c0a8 0102 a537 c5ff 001b 83ad 0005 0001
0x0020: 4669 6c65 206e 6f74 2066 6f75 6e64 00Bu iki satır okunmadığında anlamsız görünür, okunduğunda teşhisin tamamını verir:
0005paketin türünü söylüyor: opcode 5, yaniERROR.0001hata kodu: 1, yani “dosya bulunamadı”.- Kalan baytlar hata metninin kendisi:
File not found.
Bir yazma isteğine “dosya bulunamadı” cevabı ilk bakışta çelişkili görünür. Çelişki değil, güvenlik tercihi: yaygın TFTP sunucuları varsayılan olarak yalnızca var olan bir dosyanın üzerine yazar. Yeni dosya oluşturma yetkisi açıkça verilmemişse istek reddedilir, çünkü kimlik sormayan bir servise sınırsız dosya oluşturma hakkı vermek, diski dolduran ilk kişiye teslim etmek demektir. Fotokopi odasının kapısı kilitsizdir ama kâğıt dolabı kilitlidir.
Eksik iki şey buydu. Sunucuya dosya oluşturma yetkisini ve dizin sahipliğini vermek gerekiyor:
sudo sed -i 's|^TFTP_OPTIONS=.*|TFTP_OPTIONS="--secure --create"|' /etc/default/tftpd-hpa
sudo chown tftp:tftp /srv/tftp
sudo systemctl restart tftpd-hpaAynı komut, aynı cihaz, aynı ağ. Bu kez:
1972 bytes transferred
File transfer operation completed successfully.Yedeğin İçinde Ne Var? SNMP Community Paket Dökümünde
Başarılı aktarımın tamamı on paketten ibaret ve akış, protokolün kilit adım kuralını ekrana çiziyor:
192.168.1.2.50001 > 192.168.1.46.69: TFTP, length 27, WRQ "./sw01-running.cfg" octet
192.168.1.46.39668 > 192.168.1.2.50001: UDP, length 4
192.168.1.2.50001 > 192.168.1.46.39668: UDP, length 516
192.168.1.46.39668 > 192.168.1.2.50001: UDP, length 4
192.168.1.2.50001 > 192.168.1.46.39668: UDP, length 516
192.168.1.46.39668 > 192.168.1.2.50001: UDP, length 4
192.168.1.2.50001 > 192.168.1.46.39668: UDP, length 516
192.168.1.46.39668 > 192.168.1.2.50001: UDP, length 4
192.168.1.2.50001 > 192.168.1.46.39668: UDP, length 440
192.168.1.46.39668 > 192.168.1.2.50001: UDP, length 4Dökümde üç şey doğrulanıyor:
- İlk satır dışında
69hiç geçmiyor. Bütün alışveriş39668ile50001arasında yürüyor. - Her 516 baytlık veri paketini 4 baytlık bir onay izliyor. 516’nın 512’si veri, 4’ü başlık; onay paketi zaten yalnız opcode ile blok numarasından ibaret olduğu için 4 bayt.
- Son veri paketi 440 bayt, yani 512’den küçük. Aktarımı bitiren işaret bu.
Aritmetik de kapanıyor: 3 × 512 + 436 = 1972, cihazın raporladığı bayt sayısıyla birebir aynı.
Şimdi asıl soruya gelelim. Bu paketlerin içinde ne taşındı? Yakalama dosyasında yapılandırmanın içinden bir dizgeyi aradım:
grep -a "serceizleme" 20-basarili-tur.pcapDizge bulundu, çünkü paketin gövdesi hex dökümünde çıplak gözle okunabiliyor:
0x00c0: 594f 4e45 5449 4d22 0a65 7869 740a 6970 YONETIM".exit.ip
0x00d0: 2074 656c 6e65 7420 7365 7276 6572 2064 .telnet.server.d
0x00e0: 6973 6162 6c65 0a73 6e6d 702d 7365 7276 isable.snmp-serv
0x00f0: 6572 206c 6f63 6174 696f 6e20 2253 6572 er.location."SerTaşınan dosyanın içinde ne olduğunu hatırlamakta fayda var. Bir switch yapılandırması cihazın kurulum tarifi değil, güvenlik mimarisinin tarifidir. Benim yedeğimde şu iki satır düz metin olarak geçti:
username "ilker" password d0a6f64de950243bf2f4cbd905fc5da8 privilege 15 encrypted
snmp-server community "serceizleme" roİkinci satırda parola özeti bile yok: SNMP community dizgesi olduğu gibi duruyor. O dizgeyi ele geçiren biri cihazın bütün sayaçlarını, arayüz listesini ve komşularını okuyabilir; community dizgesinin neden bir parola sayılması gerektiği SNMP nedir makalemizde anlatılıyor.
Kimlik doğrulamasının yokluğunu da ölçtüm. Ne switch üzerinde ne sunucuda hiçbir hesabı olmayan üçüncü bir makineden dosyayı istedim:
curl -o calinan.cfg tftp://192.168.1.46/sw01-running.cfgÇıkış kodu 0, gelen dosya 1972 bayt, içeriği yedeğin aynısı. Hiçbir aşamada kimlik sorulmadı, çünkü protokolde soracak alan yok. Fotokopi odasına giren herkes tepsideki çıktıyı alabilir.
TFTP mi SFTP mi? Aynı Dosya, İki Yakalama
Bu sorunun cevabı tartışmalı görünür, ama ölçüldüğünde tartışma bitiyor. Aynı yapılandırma dosyasını aynı ağda bir de SSH üzerinden taşıdım ve her yakalamada aynı dizgeyi aradım:
| Yakalama | Protokol | serceizleme araması |
|---|---|---|
| Yedeği TFTP ile aldığım tur | TFTP | Bulundu |
| Aynı dosyanın SSH ile taşındığı tur | SCP | Bulunamadı |
| Cihazın kendi komutuyla gönderdiği tur | SFTP | Bulunamadı |
Üç turda da taşınan dosya bayt bayt aynı. Fark tek bir şeyde: ikisinde içerik şifreli, birinde değil.
İkinci fark komut satırında görünüyor. Cihaz SFTP ile gönderirken parola istiyor:
Remote Password:********************TFTP turunda böyle bir satır hiç çıkmadı. Bu, iki protokol arasındaki asıl ayrımın görünür hâli: SFTP’de saklanacak bir kimlik bilgisi vardır, TFTP’de yoktur. Aynı cümle hem SFTP’nin neden daha güvenli hem TFTP’nin neden daha kullanışlı olduğunu açıklıyor. SFTP’nin altında çalışan şifreli kanalın nasıl kurulduğu SSH nedir makalemizde, şifresiz yönetim protokollerinin ağda bıraktığı iz ise Telnet makalemizde duruyor.
Pratik hüküm şu: düzenli ve otomatik çalışan bir yedekleme kuruyorsanız, cihazınız SFTP destekliyorsa ve yedek yönetim ağının dışına çıkıyorsa, orada TFTP’yi savunacak bir gerekçe kalmıyor.
Ama hüküm bu kadarıyla sınırlı, ve TFTP’nin savunduğu bir alan var. O alan izole konsol ağıdır: yalnızca cihazın ve dizüstü bilgisayarınızın konuştuğu, başka kimsenin bulunmadığı geçici bir ağ. Yeni aldığınız bir firewall’u ilk kez yapılandırırken, bir switch’i sıfırdan kurarken ya da kritik bir cihazın yazılımını güncellerken kurduğunuz ağ tam olarak budur. Orada kimlik doğrulamasının yokluğu bir açık değil, kurulum süresini kısaltan bir kolaylıktır: karşınızda henüz hesap tanımlanmamış bir cihaz vardır.
İki protokolün işi burada net biçimde ayrışıyor. SFTP, ayakta duran bir sistemi düzenli olarak yedeklemeye yarar. TFTP’nin işi modern olmak değil: kriz anında, henüz hiçbir şey bilmeyen bir cihazı açılış ekranından ayağa kaldırmaktır. Biri çalışan sistemi korur, diğeri çalışmayanı geri getirir, ve ikincisi tam da kimlik sormadığı için işe yarar.
Ama SFTP’ye geçmek de tek başına yetmiyor, çünkü bir sonraki bölümdeki tuzak tam olarak SFTP turunda çıktı.
”Başarıyla Tamamlandı” Diyen Switch Yedeği Neden Boş Olabilir?
Yedekleme işinde en pahalı senaryo, yedeğin alınmaması değil, alındığının sanılmasıdır. Lab turunda bunun canlı bir örneği çıktı ve verdiği ders protokolden bağımsız.
Cihaza SFTP ile yedek gönderttim ve hedef yolu mutlak biçimde yazdım. Cihazın kendi özeti şuydu:
Destination File Path.......................... home/svc-cfgbak/
Destination Filename........................... sw01-sftp.cfg
1972 bytes transferred
File transfer operation completed successfully.Sunucuda o dosya yoktu. Dosya sistemi baştan sona tarandığında hiçbir yerde bulunmadı. SSH tarafında ise oturum gerçekten açılmış ve kapanmıştı:
sshd[4247]: Accepted password for svc-cfgbak from 192.168.1.2 port 60778 ssh2
sshd[4247]: pam_unix(sshd:session): session closed for user svc-cfgbakSebep, özetin ilk satırında görünüyor: cihaz yolun başındaki eğik çizgiyi atmış ve home/svc-cfgbak/ diye göreli bir yol üretmişti. Oturumun başladığı dizinin altında öyle bir klasör olmadığı için dosya hiçbir yere yazılmadı. Ve cihaz bunu bir hata olarak bildirmedi.
Aynı komutu tek farkla tekrarladım, yolu sadeleştirdim:
copy running-config sftp://svc-cfgbak@192.168.1.46/sw01-sftp2.cfgBu kez dosya geldi ve özeti TFTP ile alınan kopyayla birebir aynı çıktı. Yani cihaz yalan söylemiyordu, kendi ürettiği yolu doğrulamıyordu.
Buradan çıkan kural kullandığınız protokolden bağımsızdır: yedekleme işinin son adımı, cihazın verdiği başarı mesajını okumak değil, dosyayı hedefte doğrulamaktır. Doğrulama üç adımlıdır ve otomatize edilebilir:
- Dosya hedefte gerçekten oluştu mu, boyutu sıfırdan büyük mü.
- Boyut cihazın raporladığı bayt sayısıyla uyuşuyor mu.
- İçerik gerçekten yapılandırma mı, yoksa yarım kalmış bir aktarım mı.
Yedeğin geri yüklenebilir olduğunu da sınamak gerekir. Ben bunu canlı yapılandırmaya hiç dokunmadan, cihazın yedek yuvasına geri yazarak yaptım:
copy tftp://192.168.1.46/sw01-running.cfg backup-configValidating configuration script...
Configuration script validated.
File transfer operation completed successfully.Cihaz dosyayı geri aldı ve içeriğini satır satır doğruladı. Yedeğin işe yaradığını gösteren şey alınmış olması değil, geri okunabilmesidir. Switch ve router yapılandırmalarının bütün yönetim disiplini switch ve router kurulumu makalemizde ele alınıyor.
PXE Boot Nedir? TFTP’nin İkinci Hayatı
PXE (Preboot Execution Environment), bir bilgisayarın diskinde işletim sistemi olmadan, doğrudan ağ kartı üzerinden açılıp kurulum dosyalarını ağdan çekmesini sağlayan yöntemdir. Yüzlerce makineye tek tek USB takmak yerine hepsini ağdan kurmanın yolu budur ve o dosyaları taşıyan protokol TFTP’dir.
Akış, üç bileşenin sırayla devreye girmesiyle yürür:
- Makine açılır, diskinde açılabilir bir sistem bulamaz ve ağ kartından yayın yapar.
- DHCP sunucusu ona bir IP adresi verir, ama bu kez fazladan iki bilgi daha ekler: açılış dosyasının adı ve o dosyanın hangi sunucuda olduğu.
- Makine belirtilen sunucuya TFTP ile bağlanır, açılış dosyasını çeker ve çalıştırır. Kurulumun geri kalanı genellikle daha yetenekli bir protokole devredilir.
Üçüncü adımda TFTP’nin seçilmiş olması tesadüf değil, ikinci bölümdeki gerekçenin aynısıdır: o anda makinede işletim sistemi yoktur, ağ kartının kendi belleğine sığan bir istemci gerekir. Fotokopi odası, binada elektrik henüz açılmadan çalışan tek odadır.
PXE’nin güvenlik tarafı da aynı kapıdan çıkıyor. Ağda ikinci bir DHCP sunucusu ile ikinci bir TFTP sunucusu kuran biri, açılan makinelere kendi açılış dosyasını verebilir. Bu, kimlik doğrulaması olmayan bir zincirin doğal sonucudur ve PXE’nin yalnızca kontrollü kurulum ağlarında açık tutulmasının sebebidir.
TFTP ile Firmware Yükleme: Geri Dönüşü Olmayan Aktarım
TFTP’nin ikinci ana kullanımı cihaz yazılımının yüklenmesidir ve mekanizma yedeklemeyle birebir aynıdır: cihaz bir RRQ gönderir, sunucu blokları yollar, cihaz her bloğu onaylar. Fark protokolde değil, bahiste. Yarım kalan bir yapılandırma yedeği yeniden alınır; yarım kalan bir yazılım yüklemesi cihazı açılmaz hâle getirebilir.
Bu sebeple pratikte üç önlem standarttır:
- Yükleme, cihazın aktif olmayan yazılım yuvasına yapılır; aktif yuva sağlam kalır ve bir sorun çıkarsa cihaz eski yazılımla açılır.
- Yükleme öncesinde yapılandırma yedeği alınır ve hedefte doğrulanır.
- Sunucu ile cihaz aynı yönetim ağında tutulur; aktarımın yönlendirici üzerinden geçmesi hata olasılığını artırır.
Bu bölümdeki adımları lab cihazımda çalıştırmadım. Lab tek switch üzerinde yürüyor ve yarıda kalan bir yazılım yüklemesinin geri dönüşü belirsiz. Buradaki akış, yedekleme turunda ölçtüğüm TFTP davranışına ve cihazın kendi komut listesine dayanıyor; ölçülmüş bir aktarım kaydı olarak sunulmuyor.
TFTP Sorun Giderme: Sunucu Ayakta, Dosya Gelmiyor
Bu tablo sahada en sık karşılaşılanıdır ve en çok yanıltanıdır: TFTP servisi çalışıyordur, port dinleniyordur, dosya yerindedir, ama istemci hiçbir şey alamaz. Lab turunda bunun tam olarak nasıl göründüğünü yakaladım.
Yedek dosyasını sıradan bir Windows iş istasyonundan çekmeye çalıştım ve istek hiç tamamlanmadı. Sunucu tarafındaki yakalama olayı adım adım anlatıyor:
192.168.1.115.61607 > 192.168.1.46.69: RRQ "sw01-running.cfg" octet tsize 0 blksize 512 timeout 6
192.168.1.46.39415 > 192.168.1.115.61607: UDP, length 35
192.168.1.46.39415 > 192.168.1.115.61607: UDP, length 35
192.168.1.115.61607 > 192.168.1.46.69: RRQ "sw01-running.cfg" octet tsize 0 blksize 512 timeout 6
192.168.1.46.51134 > 192.168.1.115.61607: UDP, length 35
192.168.1.46.51134 > 192.168.1.115.61607: UDP, length 35
192.168.1.115.61607 > 192.168.1.46.69: RRQ "sw01-running.cfg" octet tsize 0 blksize 512 timeout 6
192.168.1.46.43358 > 192.168.1.115.61607: UDP, length 35Dökümde dört şey oluyor:
- İstemci isteğini gönderiyor ve sunucu cevap veriyor. Yani sunucu sağlam, dosya duruyor, izin sorunu yok.
- Cevap
39415numaralı yeni porttan dönüyor, dördüncü bölümde anlattığımız davranışın aynısı. - İstemci o cevabı hiç almıyor. Onay göndermediği için sunucu aynı paketi tekrar yolluyor.
- İstemci isteği baştan yapıyor ve sunucu her seferinde yeni bir port açıyor:
39415,51134,43358. Sonunda birbirinden habersiz altı oturum aynı anda tekrar gönderim yapar hâle geldi.
Cevabı düşüren şey sunucu değil, istemcinin kendi güvenlik duvarıydı. Durum tabanlı bir firewall, giden 61607 ile 69 arasındaki akışı kaydeder ve cevabı 69’dan bekler; 39415’ten gelen paket kayıtlı hiçbir akışa uymadığı için düşürülür. Aynı isteği güvenlik duvarı devrede olmayan bir istemciden yaptığımda dosya sorunsuz geldi.
Buradaki ders protokolün kendisinden daha önemli: dosyayı koruyan şey TFTP’nin güvenliği değildi, bir yapılandırma kazasıydı. Kimlik doğrulaması olmayan servisi erişilemez kılan şey, tesadüfen doğru davranan bir güvenlik duvarıydı. Durum tabanlı denetimin nasıl çalıştığı firewall kurulumu makalemizde anlatılıyor.
Sunucu ayakta ama dosya gelmiyorsa, sırayla şu dört yere bakın:
- Geçici port engelleniyor mu. İstemci ile sunucu arasındaki her güvenlik duvarının TFTP’yi tanıması ya da ilgili yardımcı modülün açık olması gerekir. Belirtisi yukarıdaki tablodur: sunucu cevap verir, istemci hiç almaz.
- Sunucu yeni dosya oluşturabiliyor mu. Yazma yönünde en sık sebep budur ve cevabı
ERRORpaketinin içindedir. - Dizin sahipliği doğru mu. Servis kendi kullanıcısıyla çalışır; hedef dizine yazma izni yoksa istek reddedilir.
- Servis doğru arayüzü dinliyor mu. Varsayılan kurulum çoğu zaman bütün arayüzleri dinler, kimlik sormayan bir servisi yalnızca yönetim arayüzüne bağlamak ilk sıkılaştırma adımıdır.
Sonuç: Kilitsiz Kapı Bir Kusur Değil, Bir Sınırdır
TFTP’nin tamamı birkaç mesaj türü, 512 baytlık bloklar ve her bloğa tek onaydan ibaret. Bu sadelik onu, bir cihazın işletim sistemi henüz yokken bile çalışabilen tek dosya aktarım aracı yapıyor; aynı sadelik yapılandırma dosyanızı ağda okunabilir hâlde taşıyor. İkisi aynı tasarım kararının iki yüzü.
Akılda tutulacak tek cümle şu olabilir: fotokopi odasının kapısı kilitsizdir, o yüzden binanın kapısı sizin sorumluluğunuzdadır. Yönetim ağını ayırın, servisi yalnızca o ağa bağlayın, cihaz destekliyorsa yedeği SFTP ile alın, ve en önemlisi cihazın “başarıyla tamamlandı” mesajını yedeğin kanıtı saymayın. Yedeğin kanıtı, hedefte duran ve geri okunabilen dosyadır.
Aynı yönetim ağında çalışan protokol ailesinin tamamı ve bu ailenin hangi üyesinin hangi işi üstlendiği ayrı bir rehberde duruyor; yönetim trafiğinin merkezi olarak nasıl toplanacağı ise syslog nedir makalemizde ele alınıyor.
TFTP Hakkında Sık Sorulan Sorular
Yazan
İlker PehlivanBT Danışmanı | Ağ, Sistem ve Güvenlik Yönetimi
İlker Pehlivan, karmaşık BT altyapılarını ölçeklenebilir ve güvenli sistemlere dönüştüren bir ağ ve sistem mühendisidir. Şirketlere özel teknoloji rehberleri burada.
Benzer Makaleler
Kurumsal Ağ Protokolleri: DHCP'den LDAP'a
Bir şirketi ayakta tutan ağ protokolleri: DHCP, DNS, Kerberos, LDAP, SMB, RDP, SSH ve BGP. Hangisi ne yapar, nasıl zincirlenir, bozulduğunda nereden anlaşılır.
ARP Nedir? MAC Adresi, ARP Tablosu ve Spoofing
ARP, IP adresini MAC adresine çeviren protokoldür. ARP tablosu durumları, yayın alanı sınırı ve ARP spoofing, gerçek makineden alınmış paket dökümleriyle.
DHCP Nedir? Ağda IP Adresi Nasıl Dağıtılır?
DHCP nedir, nasıl çalışır? Ağdaki cihazlara IP adresi, subnet, gateway ve DNS bilgisinin otomatik dağıtımı: DORA akışı, kira süresi, APIPA ve DHCP relay.
DNS Nedir, Nasıl Çalışır? Kayıt Türleri ve TTL
DNS nedir, nasıl çalışır? Kök, TLD ve yetkili sunucu zinciri; A, CNAME, MX, TXT kayıtları; nameserver devri, TTL ve önbellek, nslookup ile arıza teşhisi.
Kurumsal Firewall Kurulumu, Yönetimi ve Danışmanlığı
Kurumsal firewall kurulumu, yönetimi ve danışmanlığı: Fortinet, Palo Alto ve pfSense ile kural yönetimi, IPS/IDS, VPN ve sürekli izleme hizmeti sunuyoruz.
HTTP ve HTTPS Nedir? Aradaki Fark ve Şifreleme
HTTP ve HTTPS nedir, farkı ne? İstek ve yanıt anatomisi, durum kodları, şifresiz bağlantıda ne sızdığı ve TLS el sıkışması adım adım.
ICMP Nedir? Ping, TTL ve Tracert Komutu
ICMP, ping ve tracert komutunun altında çalışan protokoldür. Request timed out, Destination host unreachable ve General failure farkı, lab ölçümleriyle.
IP Adresi Nedir? Subnet Maskesi, CIDR ve IPv6
IP adresi nedir, subnet maskesi ne işe yarar, /24 ne demek? Ağ ve host kısmı ayrımını, özel adres aralıklarını ve IPv6'yı gerçek lab ölçümleriyle anlatıyoruz.
Kurumsal Kablosuz Ağ Tasarımı: Survey'den Kuruluma
Kurumsal kablosuz ağ tasarımı: survey planlamadan access point yerleşimine, PoE kablolamadan kanal planına kadar 63 AP'lik bir projede izlenen gerçek sıra.
Kerberos Nedir? Kimlik Doğrulama ve Bilet Mantığı
Kerberos nedir, nasıl çalışır? Bilet mantığını, paket düzeyinde yakalanmış gerçek akışı ve oturum açılamadığında izlenecek teşhis sırasını adım adım gösteriyoruz.
LDAP ve LDAPS Nedir? Dizin Sorgulama ve 636 Portu
LDAP nedir, nasıl çalışır? Dizin yapısı, DN ve base DN mantığı, bind türleri ve 389 ile 636 farkı; gerçek paket yakalamalarıyla anlatıyoruz.
NFS Nedir? NAS ve Sanallaştırmada Dosya Paylaşımı
NFS nedir, nasıl çalışır? UID/GID kimlik modeli, root_squash ayarı, NFS ile SMB'nin aynı klasörde çakışması ve izin sorunlarının teşhisi, lab ölçümleriyle.
NTP Nedir? Kurumsal Ağda Saat Senkronizasyonu
NTP nedir, nasıl çalışır? Stratum hiyerarşisi, ağda tek saat kaynağı, Kerberos'un beş dakikalık toleransı ve saat arızalarında teşhis sırası.
Port Nedir? TCP ve UDP Farkı, Bağlantı Arızası Tespiti
Port numarası ne işe yarar, TCP ve UDP farkı nasıl işler, açık port nasıl kontrol edilir ve bağlantı kurulmadığında arıza hangi tarafta, nasıl kanıtlanır?
RADIUS Sunucusu Nedir? 802.1X ile Ağ Kimlik Doğrulama
RADIUS sunucusu nedir, nasıl çalışır? 802.1X akışını, EAP yöntemlerini ve ağa bağlanamayan kullanıcıda izlenecek teşhis sırasını paket düzeyinde gösteriyoruz.
SMB Nedir? Dosya Paylaşımı ve SYSVOL Bağımlılığı
SMB nedir, nasıl çalışır? Dosya ve yazıcı paylaşımı, sürüm farkları, SMBv1 riski ve grup ilkelerinin SYSVOL üzerinden dağıtımı.
SSH Nedir? Şifreli Yönetim ve Anahtar Tabanlı Giriş
SSH nedir, port 22'de el sıkışma nasıl olur, ana bilgisayar anahtarı neyi kanıtlar, sürüm 1 neden kapatılmalı ve parola yerine anahtarla giriş nasıl kurulur.
Kurumsal Switch, Router Kurulumu ve VLAN Yapılandırma
Kurumsal switch, router kurulumu ve VLAN yapılandırma: HSRP/VRRP yedekliliği, port güvenliği ve doğru mimari danışmanlığıyla güvenilir ağ altyapısı kuruyoruz.
Telnet Nedir? Şifresiz Yönetim Protokolü ve Riskleri
Telnet nedir, port 23 nasıl çalışır, parolayı neden düz metin taşır ve hâlâ açık bulunan cihazlarda ne yapılmalı: kapatma, SSH'a geçiş ve yönetim VLAN'ı.
VLAN Nedir? 802.1Q Etiketi, Access ve Trunk Farkı
VLAN tek switch'i mantıksal ağlara böler. 802.1Q etiketi, access ile trunk portun farkı ve native VLAN riski, gerçek paket dökümleriyle anlatılıyor.
NAT Nedir? Ağ Adresi Çevirisi Nasıl Çalışır?
NAT (Network Address Translation) nedir, SNAT ile DNAT farkı nedir, PAT nasıl çalışır ve NAT tablosu ne tutar? Çeviri tablosunu lab ortamında açıp gösteriyoruz.
RDP Nedir? Uzak Masaüstü Protokolü ve Güvenliği
RDP (Remote Desktop Protocol) nedir, 3389 portu ne yapar ve NLA ne işe yarar? Uzak masaüstü protokolünü Windows sunucuda ölçtük, güvenlik tarafıyla birlikte.
SNMP Nedir? MIB, OID ve Trap Mekanizması
SNMP nedir ve nasıl çalışır? Yönetici ve ajan mimarisi, MIB ile OID kataloğu, poll ve trap arasındaki fark, community string riski ve SNMPv3 ile çözümü.
Syslog Nedir? Facility, Severity ve 514 Portu
Syslog nedir, log satırı neye benzer? Facility ile severity tek sayıya nasıl sıkışır, 514 portu neden UDP: gerçek switch çıktısıyla anlatıyoruz.
FTP, FTPS ve SFTP Nedir? Aralarındaki Fark
FTP, FTPS ve SFTP arasındaki fark: iki kanallı mimari, aktif ve pasif mod, firewall arkasında kırılan aktarımlar ve paket düzeyinde şifresiz dosya kanıtı.
TLS Nedir? SSL ile Farkı, Sürüm Pazarlığı ve Ölçümü
TLS nedir, SSL ile farkı ne? El sıkışmada sürüm ve şifre takımı nasıl seçilir, TLS 1.2 ile 1.3 arasında pakette ne değişir, sunucunuz hangisini konuşuyor?
IMAP Nedir, POP3 Nedir? Aralarındaki Fark
IMAP ile POP3 arasındaki fark: durumun sunucuda mı cihazda mı tutulduğu, 993 ve 995 portları, kota dolunca ne olur ve POP3'ten IMAP'a geçişin gerçek maliyeti.
SMTP Nedir? Mail Nasıl Gönderilir ve Neden Gitmez?
SMTP nedir, mail nasıl gönderilir: zarf ile başlık ayrımı, 25/587/465 portlarının farkı, STARTTLS öncesi düz metin okunan oturum ve gitmeyen mailin teşhisi.
Yapısal Kablolama ve Zayıf Akım: Kurumsal Bina Altyapısı
Kurumsal binada yapısal kablolama ve zayıf akım sistemleri nasıl kurulur? Kat kablolaması, kabinet düzeni, CAT6 ve fiber seçimi, test raporu ve saha hataları.
İçindekiler
Ücretsiz Değerlendirme
Ağınızdaki yedekleme trafiğini paket düzeyinde inceleyip riskli olanları raporluyoruz.
Ana Hizmet
Kurumsal Network Kurulumuİlgili Makaleler
- Kurumsal Ağ Protokolleri: DHCP'den LDAP'a
- ARP Nedir? MAC Adresi, ARP Tablosu ve Spoofing
- DHCP Nedir? Ağda IP Adresi Nasıl Dağıtılır?
- DNS Nedir, Nasıl Çalışır? Kayıt Türleri ve TTL
- Kurumsal Firewall Kurulumu, Yönetimi ve Danışmanlığı
- HTTP ve HTTPS Nedir? Aradaki Fark ve Şifreleme
- ICMP Nedir? Ping, TTL ve Tracert Komutu
- IP Adresi Nedir? Subnet Maskesi, CIDR ve IPv6
- Kurumsal Kablosuz Ağ Tasarımı: Survey'den Kuruluma
- Kerberos Nedir? Kimlik Doğrulama ve Bilet Mantığı
- LDAP ve LDAPS Nedir? Dizin Sorgulama ve 636 Portu
- NFS Nedir? NAS ve Sanallaştırmada Dosya Paylaşımı
- NTP Nedir? Kurumsal Ağda Saat Senkronizasyonu
- Port Nedir? TCP ve UDP Farkı, Bağlantı Arızası Tespiti
- RADIUS Sunucusu Nedir? 802.1X ile Ağ Kimlik Doğrulama
- SMB Nedir? Dosya Paylaşımı ve SYSVOL Bağımlılığı
- SSH Nedir? Şifreli Yönetim ve Anahtar Tabanlı Giriş
- Kurumsal Switch, Router Kurulumu ve VLAN Yapılandırma
- Telnet Nedir? Şifresiz Yönetim Protokolü ve Riskleri
- VLAN Nedir? 802.1Q Etiketi, Access ve Trunk Farkı
- NAT Nedir? Ağ Adresi Çevirisi Nasıl Çalışır?
- RDP Nedir? Uzak Masaüstü Protokolü ve Güvenliği
- SNMP Nedir? MIB, OID ve Trap Mekanizması
- Syslog Nedir? Facility, Severity ve 514 Portu
- FTP, FTPS ve SFTP Nedir? Aralarındaki Fark
- TLS Nedir? SSL ile Farkı, Sürüm Pazarlığı ve Ölçümü
- IMAP Nedir, POP3 Nedir? Aralarındaki Fark
- SMTP Nedir? Mail Nasıl Gönderilir ve Neden Gitmez?
- Yapısal Kablolama ve Zayıf Akım: Kurumsal Bina Altyapısı