Giriş
Pure-FTPd, Linux ve Unix benzeri sistemlerde yaygın olarak kullanılan, güvenli, hızlı ve kolay yapılandırılabilir bir FTP sunucusudur. Ancak, bazen kurulum veya güncelleme sonrası "Active: failed (Result: timeout)" hatasıyla karşılaşılabilir. Bu hata, Pure-FTPd servisinin başlatılamadığını ve zaman aşımına uğradığını gösterir. Bu rehber, bu sorunun nedenlerini anlamanıza ve adım adım çözümler uygulamanıza yardımcı olacaktır. FTP server kurulumu, konfigürasyonu ve güvenlik ayarlarının doğru yapılması, bu tür hataların önüne geçmek için kritik öneme sahiptir.
1. Hata Nedenleri ve Temel Kontroller
1.1. Ağ Bağlantısı Sorunları
En sık karşılaşılan nedenlerden biri, sunucunun ağ bağlantısında yaşanan problemlerdir. Sunucunun internete erişimi olup olmadığını kontrol edin. DNS çözünürlüğü sorunları da bu hataya neden olabilir.
- Çözüm:
ping google.com
komutu ile internet bağlantısını test edin. Eğer ping atılamıyorsa, ağ ayarlarınızı kontrol edin./etc/resolv.conf
dosyasında doğru DNS sunucularının tanımlı olduğundan emin olun.
1.2. Güvenlik Duvarı (Firewall) Ayarları
Güvenlik duvarı, FTP trafiğini engelleyebilir. Pure-FTPd'nin kullandığı portların (genellikle 21 ve pasif mod için dinamik port aralığı) güvenlik duvarında açık olduğundan emin olun.
- Çözüm:
iptables
,firewalld
veya kullandığınız diğer güvenlik duvarı yazılımının ayarlarını kontrol edin. Örneğin,firewalld
kullanıyorsanız, aşağıdaki komutlarla FTP servisinin geçmesine izin verebilirsiniz:
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload
1.3. Yanlış Yapılandırma Dosyası
pure-ftpd.conf
dosyası hatalı yapılandırılmış olabilir. Bu dosyadaki hatalı parametreler, servisin başlatılmasını engelleyebilir.
- Çözüm:
/etc/pure-ftpd/pure-ftpd.conf
dosyasını dikkatlice inceleyin. Hatalı veya eksik satırlar olup olmadığını kontrol edin. Özellikle,PassivePortRange
,ForcePassiveIP
gibi parametrelerin doğru ayarlandığından emin olun.
1.4. Port Çakışması
21 numaralı port başka bir servis tarafından kullanılıyor olabilir. Bu durumda Pure-FTPd başlatılamaz.
- Çözüm:
netstat -tulnp | grep :21
komutu ile 21 numaralı portu hangi servisin kullandığını kontrol edin. Eğer başka bir servis kullanıyorsa, o servisi durdurun veya Pure-FTPd'yi farklı bir portta çalıştırın.
1.5. Yetersiz Sistem Kaynakları
Sunucunun bellek veya işlemci gibi sistem kaynakları yetersiz olabilir. Bu durumda Pure-FTPd servisi zaman aşımına uğrayabilir.
- Çözüm:
top
veyahtop
komutları ile sistem kaynaklarının kullanımını izleyin. Eğer kaynaklar aşırı yüklenmişse, gereksiz servisleri durdurun veya sunucuya daha fazla kaynak sağlayın.
1.6. Disk Alanı Sorunları
Disk alanının dolması, Pure-FTPd'nin log dosyalarını yazamamasına veya geçici dosyalar oluşturamamasına neden olabilir. Bu da servisin başlatılmasını engelleyebilir.
- Çözüm:
df -h
komutu ile disk alanını kontrol edin. Eğer disk doluysa, gereksiz dosyaları silin veya disk alanını genişletin.
2. Systemd ile İlgili Sorunlar
2.1. Servis Dosyasının Doğruluğu
Pure-FTPd servisinin systemd
konfigürasyon dosyası (pure-ftpd.service
) hatalı olabilir.
- Çözüm:
/lib/systemd/system/pure-ftpd.service
veya/etc/systemd/system/pure-ftpd.service
dosyasını kontrol edin.ExecStart
,User
,Group
gibi parametrelerin doğru ayarlandığından emin olun.
2.2. Systemd Daemon'ının Yeniden Yüklenmesi
Yapılandırma değişikliklerinden sonra systemd
daemon'ının yeniden yüklenmesi gerekebilir.
- Çözüm: Aşağıdaki komutları kullanarak
systemd
daemon'ını yeniden yükleyin ve Pure-FTPd servisini yeniden başlatın:
sudo systemctl daemon-reload
sudo systemctl restart pure-ftpd
2.3. Servis Durumunu Kontrol Etme
Servisin durumunu kontrol etmek, sorunun kaynağını belirlemede yardımcı olabilir.
- Çözüm:
sudo systemctl status pure-ftpd
komutu ile servisin durumunu kontrol edin. Hata mesajlarını inceleyin ve çözüm için ipuçları arayın.
3. Yapılandırma Dosyasını İnceleme ve Düzeltme
3.1. Temel Yapılandırma Parametreleri
pure-ftpd.conf
dosyasında aşağıdaki parametrelerin doğru ayarlandığından emin olun:
Listen
: FTP sunucusunun dinleyeceği IP adresi ve port.PassivePortRange
: Pasif mod için kullanılacak port aralığı.ForcePassiveIP
: Pasif modda kullanılacak IP adresi.PureDB
: Kullanıcı veritabanının yolu.AnonymousOnly
: Sadece anonim erişime izin verilip verilmeyeceği.NoAnonymous
: Anonim erişimin engellenip engellenmeyeceği.
3.2. Örnek Yapılandırma Dosyası
Aşağıda, temel bir pure-ftpd.conf
dosyası örneği verilmiştir:
Listen 192.168.1.10:21
PassivePortRange 30000 30100
ForcePassiveIP 192.168.1.10
PureDB /etc/pure-ftpd/pureftpd.pdb
AnonymousOnly no
NoAnonymous no
MaxClientsNumber 50
MaxClientsPerIP 5
3.3. Yapılandırma Dosyasını Test Etme
Yapılandırma dosyasındaki değişikliklerden sonra, dosyayı test etmek önemlidir.
- Çözüm:
pure-ftpd -t
komutu ile yapılandırma dosyasını test edin. Hata mesajlarını inceleyin ve düzeltmeler yapın.
4. Kullanıcı Hesapları ve İzinler
4.1. Kullanıcı Veritabanını Kontrol Etme
Pure-FTPd, kullanıcı hesaplarını bir veritabanında saklar. Bu veritabanının doğru oluşturulduğundan ve kullanıcıların doğru izinlere sahip olduğundan emin olun.
- Çözüm:
pure-pw show
komutu ile kullanıcının bilgilerini görüntüleyin. Gerekirse,pure-pw useradd
,pure-pw usermod
,pure-pw userdel
komutları ile kullanıcıları ekleyin, düzenleyin veya silin. - Önemli: Veritabanında değişiklik yaptıktan sonra,
pure-pw mkdb
komutu ile veritabanını yeniden oluşturun.
4.2. Dosya İzinlerini Kontrol Etme
Kullanıcıların erişmeye çalıştığı dosyaların ve dizinlerin doğru izinlere sahip olduğundan emin olun.
- Çözüm:
ls -l
komutu ile dosya ve dizinlerin izinlerini kontrol edin. Gerekirse,chmod
vechown
komutları ile izinleri ve sahipliği değiştirin.
5. Pasif Mod Sorunları ve Çözümleri
5.1. Pasif Port Aralığını Doğru Ayarlama
Pasif mod için kullanılan port aralığının güvenlik duvarında açık olduğundan ve yapılandırma dosyasında doğru ayarlandığından emin olun.
- Çözüm:
PassivePortRange
parametresinipure-ftpd.conf
dosyasında doğru ayarlayın. Genellikle 30000-30100 veya 49152-65534 gibi bir aralık kullanılır. Güvenlik duvarında bu aralığı açmayı unutmayın.
5.2. Harici IP Adresini Belirtme
Sunucunun harici IP adresini ForcePassiveIP
parametresi ile belirtin. Bu, özellikle NAT arkasında bulunan sunucular için önemlidir.
- Çözüm:
ForcePassiveIP
parametresini sunucunun harici IP adresi ile ayarlayın. Eğer sunucunun dinamik bir IP adresi varsa, bir DNS hizmeti kullanarak bir alan adı ile eşleştirebilirsiniz.
5.3. NAT ve Yönlendirme Ayarları
Eğer sunucu bir NAT arkasında bulunuyorsa, FTP trafiğini sunucuya yönlendirmek için yönlendiricide gerekli port yönlendirmelerini yapın.
- Çözüm: Yönlendiricinizin ayarlarında 21 numaralı portu ve pasif port aralığını sunucunun yerel IP adresine yönlendirin.
6. Log Dosyalarını İnceleme
6.1. Log Dosyalarının Konumu
Pure-FTPd log dosyaları genellikle /var/log/syslog
veya /var/log/pure-ftpd/
dizininde bulunur.
6.2. Log Dosyalarını İnceleme
Log dosyalarını inceleyerek, hataların nedenini belirleyebilirsiniz. Örneğin, başarısız giriş denemeleri, dosya izinleri sorunları veya ağ bağlantısı sorunları log dosyalarında görülebilir.
- Çözüm:
tail -f /var/log/syslog
veyatail -f /var/log/pure-ftpd/pureftpd.log
komutları ile log dosyalarını gerçek zamanlı olarak izleyin. Hata mesajlarını inceleyin ve çözüm için ipuçları arayın.
7. Gerçek Hayattan Örnekler ve Vaka Çalışmaları
7.1. Vaka Çalışması 1: Güvenlik Duvarı Sorunu
Bir kullanıcı, Pure-FTPd'yi kurduktan sonra "Timeout" hatası alıyordu. Log dosyalarını incelediğinde, bağlantıların güvenlik duvarı tarafından engellendiğini gördü. Güvenlik duvarında FTP servisinin geçmesine izin verdikten sonra sorun çözüldü.
7.2. Vaka Çalışması 2: Pasif Mod Yapılandırması
Bir başka kullanıcı, NAT arkasında bulunan bir sunucuda Pure-FTPd'yi çalıştırmaya çalışıyordu. Pasif mod yapılandırmasını doğru yapmadığı için bağlantı sorunları yaşıyordu. ForcePassiveIP
parametresini doğru ayarladıktan ve yönlendiricide gerekli port yönlendirmelerini yaptıktan sonra sorun çözüldü.
8. Görsel Açıklamalar (Metinsel Açıklamalar)
8.1. FTP Bağlantı Şeması
FTP bağlantısı, istemci ve sunucu arasında iki kanal üzerinden gerçekleşir: kontrol kanalı (21 numaralı port) ve veri kanalı (pasif modda dinamik port aralığı). Kontrol kanalı, komutları göndermek ve yanıtları almak için kullanılırken, veri kanalı dosya transferi için kullanılır.
8.2. Güvenlik Duvarı Şeması
Güvenlik duvarı, gelen ve giden trafiği kontrol ederek yetkisiz erişimleri engeller. FTP trafiğinin sorunsuz bir şekilde geçebilmesi için, güvenlik duvarında 21 numaralı portun ve pasif mod için kullanılan port aralığının açık olması gerekir.
9. Sık Sorulan Sorular
- 9.1. Pure-FTPd'yi nasıl yeniden başlatırım?
sudo systemctl restart pure-ftpd
komutu ile Pure-FTPd'yi yeniden başlatabilirsiniz.- 9.2. Pasif modu nasıl yapılandırırım?
/etc/pure-ftpd/pure-ftpd.conf
dosyasındaPassivePortRange
veForcePassiveIP
parametrelerini ayarlayarak pasif modu yapılandırabilirsiniz.- 9.3. Kullanıcı nasıl eklerim?
pure-pw useradd -u -d
komutu ile kullanıcı ekleyebilirsiniz. Ardındanpure-pw mkdb
komutu ile veritabanını yeniden oluşturmayı unutmayın.- 9.4. Neden "Timeout" hatası alıyorum?
- "Timeout" hatası, ağ bağlantısı sorunları, güvenlik duvarı ayarları, yanlış yapılandırma dosyası, port çakışması veya yetersiz sistem kaynakları gibi çeşitli nedenlerden kaynaklanabilir. Bu rehberdeki adımları izleyerek sorunun kaynağını belirleyebilir ve çözebilirsiniz.
- 9.5. Hangi portları açmam gerekiyor?
- FTP için 21 numaralı portu ve pasif mod için yapılandırdığınız port aralığını (örneğin, 30000-30100) güvenlik duvarında açmanız gerekir.
10. Sonuç ve Özet
Pure-FTPd "Timeout" hatası, çeşitli nedenlerden kaynaklanabilen karmaşık bir sorundur. Bu rehberde, bu sorunun olası nedenlerini ve adım adım çözüm yöntemlerini detaylı bir şekilde ele aldık. Ağ bağlantısı sorunlarını kontrol etmek, güvenlik duvarı ayarlarını düzenlemek, yapılandırma dosyasını incelemek, kullanıcı hesaplarını ve izinleri kontrol etmek, pasif mod yapılandırmasını doğru yapmak ve log dosyalarını incelemek, sorunu çözmek için atmanız gereken temel adımlardır. Umarım bu rehber, Pure-FTPd "Timeout" hatasını çözmenize ve güvenli, hızlı ve güvenilir bir FTP sunucusu çalıştırmanıza yardımcı olur.
Önemli Notlar:
- Herhangi bir değişiklik yapmadan önce, yapılandırma dosyalarının yedeğini alın.
- Komutları çalıştırırken, doğru kullanıcı haklarına sahip olduğunuzdan emin olun (genellikle
sudo
kullanmanız gerekir). - Sorun devam ederse, Pure-FTPd belgelerine ve forumlarına başvurun.
Ek Bilgiler ve Kaynaklar
Tablolar
Tablo 1: Pure-FTPd Yapılandırma Parametreleri Karşılaştırması
Parametre | Açıklama | Varsayılan Değer |
---|---|---|
Listen |
FTP sunucusunun dinleyeceği IP adresi ve port. | Tüm IP adresleri (0.0.0.0) ve 21 numaralı port |
PassivePortRange |
Pasif mod için kullanılacak port aralığı. | (Genellikle ayarlanmamış, rastgele portlar kullanılır) |
ForcePassiveIP |
Pasif modda kullanılacak IP adresi. | (Ayarlanmamış) |
PureDB |
Kullanıcı veritabanının yolu. | /etc/pure-ftpd/pureftpd.pdb |
AnonymousOnly |
Sadece anonim erişime izin verilip verilmeyeceği. | no |
NoAnonymous |
Anonim erişimin engellenip engellenmeyeceği. | no |
Tablo 2: Pure-FTPd Hata Kodları ve Anlamları
Hata Kodu | Açıklama | Olası Çözümler |
---|---|---|
421 | Servis kullanılamıyor, bağlantı kapatılıyor. | Sunucunun aşırı yüklenmiş olup olmadığını kontrol edin, kaynakları artırın. |
530 | Giriş yapılamadı. | Kullanıcı adını ve parolayı kontrol edin, kullanıcı veritabanının doğru yapılandırıldığından emin olun. |
550 | Dosya bulunamadı veya erişim engellendi. | Dosya izinlerini kontrol edin, kullanıcının doğru dizine erişim izni olduğundan emin olun. |
425 | Veri bağlantısı açılamadı. | Pasif mod yapılandırmasını kontrol edin, güvenlik duvarı ayarlarını düzenleyin. |
426 | Bağlantı kesildi; transfer iptal edildi. | Ağ bağlantısını kontrol edin, sunucunun kararlı bir bağlantıya sahip olduğundan emin olun. |