Büyük bir poliklinik binasını gözünüzün önüne getirin. Randevu saatinizde binanın ana giriş kapısına geliyorsunuz. Güvenlik görevlisi kimliğinizi kontrol ediyor, turnikeden geçiyorsunuz, danışma memuru güler yüzle "Hoş geldiniz Ahmet Bey, muayene odanız 3. katta 312 numaradır" diyor. Her şey son derece kusursuz ve profesyonel görünmektedir.

Merdivenleri çıkıp 3. kata geliyorsunuz; koridorun başındaki yangın kapısına elinizi atıyorsunuz: Kilitli! Asansör kapısı: Kilitli! Koridordaki tüm ara kapılar kilitlenmiştir. Danışmadan içeri girmişsinizdir fakat doktorun muayene odasına ulaşacak tek bir açık koridor bile yoktur! Danışma görevlisi aşağıdan "Sizi içeri aldık ya, niye muayene olmuyorsunuz?" diye bağırır; siz ise kapalı kapıların önünde çaresizce donakalmışsınızdır.

Ağ mühendisliğinde ve web barındırma altyapılarında, internetin ta 1970'lerden kalma en yaşlı ve en antika protokolü olan FTP (File Transfer Protocol) ile çalışırken destek masalarını en çok kilitleyen o meşhur kriz tam olarak bu kilitli koridor trajedisidir: FTP Pasif Mod (Passive Mode) ve Güvenlik Duvarında Unutulan Port Aralığı.

FileZilla Ekranındaki Donma: O Uğursuz "MLSD" Komutu

Pazartesi sabahı şirketin web tasarımcısı veya müşterisi FileZilla programını açar. Sunucu bilgilerini girer:

  • Sunucu: ftp.sirketadi.com.tr
  • Kullanıcı Adı: firma_ftp
  • Parola: ******
  • Port: 21

"Hızlı Bağlan" butonuna tıklar.

FileZilla günlüğünde yeşil renkli komutlar hızla akmaya başlar:

Durum: ftp.sirketadi.com.tr:21 adresine bağlanılıyor...
Durum: Bağlantı kuruldu, karşılama iletisi bekleniyor...
Yanıt: 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
Komut: USER firma_ftp
Yanıt: 331 User firma_ftp OK. Password required
Komut: PASS ******
Yanıt: 230 OK. Current restricted directory is /
Durum: Oturum açıldı
Komut: SYST
Yanıt: 215 UNIX Type: L8
Komut: PWD
Yanıt: 257 "/" is your current location
Durum: Klasör listesi alınıyor...
Komut: TYPE I
Yanıt: 200 TYPE is now 8-bit binary
Komut: PASV
Yanıt: 227 Entering Passive Mode (185,120,45,12,117,48)
Komut: MLSD

Ve tam bu satırda ekran donar!

İmleç yanıp söner. FileZilla 10 saniye, 20 saniye bekler... Ve ekranda kırmızı harflerle o buz gibi ölüm fermanı patlar:

Hata: Bağlantı zaman aşımına uğradı (Connection timed out after 20 seconds of inactivity)
Hata: Klasör listesi alınamadı

Müşteri panikle tekrar dener; yine aynı hata! Üçüncü deneme; yine MLSD satırında donar.

Müşteri telefon santralini arar:

"Sizin sunucunuz bozuk! FTP şifremi doğru giriyorum, oturum açıldı diyor ama klasörlerimi göstermiyor! 'Zaman aşımı' verip atıyor beni! Sabahtan beri siteye dosya atamadım, ticaretim durdu! Derhal düzeltin şu FTP'yi!"

İki Ayrı Kanal: Kontrol Kapısı vs. Veri Koridoru

Bu sendromun kökeninde, FTP'nin modern internet protokollerinden (HTTP, SSH) tamamen farklı çalışan o arkaik, iki kanallı mimarisi yatar.

Modern protokoller (örneğin SFTP veya HTTPS) tek bir port üzerinden (Port 22 veya 443) hem komutları hem de verileri taşır. Oysa FTP iki ayrı TCP bağlantısı kurar:

  1. Kontrol Kanalı (Port 21): Kullanıcı adı, şifre ve komutların (USER, PASS, PWD) iletildiği kapıdır. FileZilla bu kapıdan girer ve oturumu açar.
  2. Veri Kanalı (Data Channel - Pasif Portlar): Dosyaların transfer edildiği ve dizin listesinin (LIST veya MLSD) aktarıldığı asıl koridordur!

İstemci PASV (Pasif Mod) komutu gönderdiğinde, sunucu der ki:
"Pekala Ahmet Bey, oturumunuz açıldı. Şimdi dosya listesini sana gönderebilmem için lütfen git benim 30.142 numaralı portuma bağlan!"

İşte dananın kuyruğu tam burada kopar!

Sunucunun önünde çalışan güvenlik duvarı (iptables, CSF veya veri merkezi donanım firewall'u), Port 21'i dış dünyaya açmıştır (danışma kapısı açıktır). Fakat sunucunun Pure-FTPd veya ProFTPD servisi tarafından rastgele açılan o 30.000 ile 35.000 arasındaki pasif veri portlarını güvenlik duvarında izinli (whitelist) kılmayı unutmuştur!

FileZilla sunucunun 30.142 portuna bağlanmaya çalışır; güvenlik duvarı kapıyı küt diye yüzüne kapatır (DROP). Paketler kaybolur, 20 saniye sonra zaman aşımı patlar ve dosya listesi asla yüklenemez.

Çözüm: Pasif Port Aralığını Mühürlemek ve Açmak

Bu 50 yıllık protokol krizini çözmenin ve FTP'yi tıkır tıkır çalıştırmanın mühendislik adımları bellidir:

1. FTP Daemon Yapılandırmasında Portları Sabitlemek

Varsayılan olarak FTP sunucuları rastgele yüksek portlar (1024-65535) seçmeye kalkabilir. Bunu dar ve kontrollü bir aralığa hapsetmek gerekir:

Pure-FTPd için (/etc/pure-ftpd.conf):

PassivePortRange 30000 35000
# Eğer sunucu NAT arkasındaysa genel IP'yi belirtin:
ForcePassiveIP 185.120.45.12

ProFTPD için (/etc/proftpd.conf):

PassivePorts 30000 35000
MasqueradeAddress 185.120.45.12
2. Güvenlik Duvarında (CSF / iptables) Portları Açmak

Belirlediğiniz bu 30000-35000 TCP port aralığını güvenlik duvarının gelen port listesine (TCP_IN) ekleyin:

/etc/csf/csf.conf dosyasını açın:

# TCP_IN satırının sonuna ekleyin:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,30000:35000"

Ardından güvenlik duvarını yeniden başlatın:

csf -r

Mühendis csf -r komutunu verdiği saniyede, o kilitli koridor kapıları ardına kadar açılır. FileZilla'da MLSD komutu milisaniyeler içinde yanıtlanır; public_html, cgi-bin klasörleri ekranda şak diye belirir!

2026 Yılında Hâlâ Düz FTP Kullanmanın Tehlikesi

Bu teknik çözüme rağmen profesyonel mühendislik dünyasının vermesi gereken asıl tavsiye şudur: 2026 yılında artık düz, şifresiz FTP kullanmayı tamamen terk edin!

Düz FTP, şifrelerinizi ve dosyalarınızı internet üzerinden açık metin (clear-text) olarak taşır. Kahve zincirindeki Wi-Fi ağından bağlanan biri şifrenizi koklayabilir (sniffing).

Bunun yerine:

  • SFTP (SSH File Transfer Protocol): Port 22 üzerinden, SSH tüneli içinde tamamen şifreli ve tek port üzerinden çalışan güvenli protokolü tercih edin. Pasif port derdi yoktur, zaman aşımı yoktur, tek bir portla tüm dünya güvenle yönetilir.
  • FTPS (FTP over TLS): İlla FTP istemcisi kullanılacaksa sunucu tarafında TLS zorunluluğu getirin.

Danışmada hastayı karşılayıp muayene odasının kapısını kilitleyen hastane yönetimi nasıl sağlık hizmetini baltalıyorsa; Port 21'i açıp pasif portları kapatan sistem yöneticisi de öyle bir teknik körlük içindedir. Protokolün doğasını bilmek, ağ güvenliğinin kapılarını doğru anahtarlarla açmanın ilk ve vazgeçilmez kuralıdır.