FTP Sunucusu Kurmak

Bu bölümde Raspberry Pi’ı FTP (File Transfer Protocol) sunucusu olarak yapılandıracağız. Dosyaları ağa/internete bağlı bir bilgisayardan bir diğerine aktarmak için kullanılan iletişim protokolüne FTP adı verilir.Bu iletişim protokolünü kullanarak dosyaları servis eden ve sunan programlara da FTP sunucusu adı verilir. Linux ortamında çalışan birçok FTP sunucu yazılımı bulmak mümkündür. ProFTPD, vsftpd ve Pure-FTPd en çok kullanılan açık kaynak kodlu FTP sunucu yazılımlarıdır. Bu bölümde sınırlı sistem kaynaklarına sahip Raspberry Pi üzerinde hem yüksek başarımı hem de basit olması açısından proFTPd ve vstfpd (very secure FTP daemon)[1] sunucularının kurulumunu ve yapılandırılmasını gerçekleştireceğiz.

Daha önceki bölümlerde SAMBA ile dosya aktarma konusunu incelemiştik. Aklınıza SAMBA varken neden dosya aktarmak için FTP sunucusu kurmak gerektiği gelmiş olabilir. Hemen belirteyim SAMBA sadece yerel ağlarda çalışabilen bir protokoldür ve Microsoft teknolojisidir ve daha çok yerel ağlarda çalışmak üzere geliştirilmiş olduğundan modeminiz/yönlendiriciniz(router) üzerinden internete yönlendirildiğinde başarım kayıpları yaşar. Ayrıca FTP aktarılacak veriyi birkaç kanala bölerek daha hızlı aktarabilir ve de veriyi şifreleyerek ağdaki kem gözlerden koruyabilir (sFTP yani secure FTP). FTP protokolü çok eski ve yaygın bir protokoldür ve hemen hemen tüm işletim sistemlerinde yerleşik olarak bir FTP istemcisi bulunur. Bu gibi avantajlar sizi FTP sunucu kurmaya yönlendirilebilir.

ProFTPD FTP Sunucusunu Kurmak

ProFTPD kullanımı kolay, açık kaynak kodlu ve güvenli bir FTP sunucu programıdır. Kurmak için aşağıdaki komutu kullanabilirsiniz:

Kurulum başladıktan sonra aşağıdaki gibi bir seçim ekranı ile karşılaşacaksınız. Bu ekranda kurulum tipinin inetd mi yoksa standalone mu olacağı sorulmaktadır. FTP sunucusunu yoğun şekilde kullanmıyorsanız from inetd seçeneğini seçerek devam edebilirsiniz. Eğer yoğun bir FTP trafiği söz konusuysa, standalone seçeneği önerilmektedir.

ProFTPD kurulum seçeneği

Kurulum kısa sürede tamamlanacak ve FTP sunucumuz hazır hale gelecektir. ProFTPD’de varsayılan olarak sistemdeki her kullanıcı (pi) kendi ev dizinine erişebilir durumdadır. Pi kullanıcısının SSH parolası ile hemen FTP dizininize giriş yapabilirsiniz.

ProFTPD İçin Kullanıcı Oluşturmak

ProFTPD’nin varsayılan olarak, sadece sistemde tanımlı kullanıcılara FTP erişimini açtığını belirtmiştik. Örneğin /var/www altındaki web yayın dizinimize FTP ile erişebilmek için yeni bir kullanıcı tanımlamamız gerekir. Bu dizine erişmek üzere www adında yeni FTP kullanıcısı tanımlamak için aşağıdakine benzer bir komutu uygulayabilirsiniz. Yeni bir kullanıcı eklemeden önce /etc/proftpd dizinine gitmelisiniz:

Kullanıcı ekleme:

Yukarıdaki komutu girdikten sonra www kullanıcısı için bir parola tanımlamanız istenecektir. gid ve uid seçeneklerine girilen 33 değeri,  kullanıcı kimlik numarasını ifade eder. Her eklediğiniz kullanıcıya farklı bir grup ve kullanıcı kimlik numarası vermeye dikkat edin.

shell seçeneğine verilen /bin/false değeri ile eklenen kullanıcının bir komut kabuğuna sahip olmayacağı belirtilmiştir. Böylece yeni oluşturulan kullanıcı sisteme sadece FTP üzerinden erişim sağlayacak ve komut satırını kullanamayacaktır. Bu komut çalıştırıldıktan sonra içinde bulunulan dizinde (/etc/proftpd) kullanıcı bilgilerinin ve parolasının tutulduğu ftpd.passwd adında bir dosya oluşur.

Yeni kullanıcımızın FTP sunucusuna giriş yapabilmesi için ftpd.passwd dosyasının yolunun ProFTPD’ye tanıtılması gerekir, bunun için nano ile /etc/proftpd/proftpd.conf dosyasını açarak, dosyanın sonuna aşağıdaki satırları ekleyin:

Son olarak ayarların geçerli olması için ProFTPD servisini yeniden başlatalım:

Proftpd ile sadece root kullanıcısının erişme izni olan dizinleri home yani ev dizini yapmak isterseniz proftpd.conf dosyasının sonuna RootLogin on satırını eklemeniz yeterlidir.

ProFTPD Kullanıcısını Silmek

Bir önceki kısımda oluşturduğumuz www isimli FTP kullanıcısını silmek için /etc/proftpd dizinine gidin ve şu komutu verin:

vsftpd FTP Sunucusunu Kurmak

vsftpd Linux türevi işletim sistemleri için açık kaynak kodlu bir FTP sunucu programıdır. Vsftpd’nin belirgin özellikleri güvenli ve hızlı olmasıdır. Çok büyük ölçekli sunucu görevlerinde gösterdiği başarı ile ön plana çıkmıştır. SSL ve IPv6 desteğine sahiptir.

Vsftpd (Very Secure FTP Deamon) sunucu programı hâlihazırda Raspberry Pi OS depolarında bulunduğundan kolayca kurulumunu gerçekleştirebilirsiniz:

Kurulumdan sonra vsftpd.conf dosyasını nano editörü ile açarak aşağıdaki ayarları yapalım:

Aşağıdaki ayarların bazıları zaten vsftpd.conf dosyasında bulunan ayarlar. Bunların başındaki # yorum karakterini kaldırıp değerlerini değiştirebilirsiniz, olmayanları ise dosyanın herhangi bir yerine ekleyebilirsiniz:

ftpd_banner=Raspberry Pi FTP Sunucusuna Hosgeldiniz.

Yukarıdaki ayarlar ile şunları yapmış olduk:

  • ftpd_banner: Giriş yapacak FTP kullanıcıları için karşılama mesajı hazırladık.
  • anonymous_enable: Anonim yani şifre belirtmeden giriş yapılması engelledik.
  • local_enable: Sistemde tanımlı yerel kullanıcıların (örn.:pi) giriş yapmasına izin verdik.
  • write_enable: Kullanıcıların dosyalar üzerinde değişiklik yapabilmesi için yazma izni verdik.
  • local_umask: Kullanıcıların kendi oluşturacağı dosyalarda tam izne sahip olmalarını sağladık.
  • chroot_local_user: Kullanıcıların FTP ev dizinlerini değiştirerek dışına çıkamamasını sağladık.
  • user_sub_token: Kullanıcının ev dizinine sahiplik yapacak dizinin kullanıcı adı ile aynı olmasını sağladık.
  • local_root: Kullanıcı ev dizininin tam yolunu tanımladık.

local_root ayarı ile yaptığımız tanımlamaya dikkat ederseniz FTP ev dizini olarak belirttiğimiz dizin /home/pi/ftp olarak yer almakta. Dolayısıyla öncelikle bu dizinin oluşturulması gereklidir:

Tüm FTP programlarında olduğu gibi vsftp’de güvenlik açısından bazı kuralların uygulanmasını zorunlu kılar. Vsftp FTP ana dizininin yazmaya karşı korumalı olmasını gerektirir. Bu nedenle FTP ana dizini içerisinde kullanıcılarının dosyalarını özgürce silip değiştirebileceği bir alt dizinin bulunması gerekir. Bu amaçla FTP ana dizinimizi yazmaya karşı koruyup daha sonra yazılabilir başka bir dizin oluşturacağız:

Artık FTP sunucumuz hazır durumda. Ayarların geçerli olması için sunucumuzu yeniden başlattıktan sonra kullanmaya başlayabiliriz:

pi@raspberry ~ $ sudo systemctl restart vsftpd

vsftpd FTP Oturumlarını canlı olarak izlemek

Aktif FTP işlemlerini canlı olarak izlemek için vsftpd.conf dosyasına setproctitle_enable=YES değerini ekleyip sunucuyu yeniden başlattıktan sonra watch komutu ile FTP aktarımlarını canlı olarak izleyebilirsiniz:

FTP oturumlarını canlı takip etmek

Benzer işlemi vstfpd’nin günlük dosyasını tail komutuyla canlı izleyerek de yapabilirsiniz. Bu şekilde FTP oturumları süresince gerçekleşmiş ve gerçekleşen tüm işlemleri görüntüleyebilirsiniz.

Tail ile günlük dosyasını izlemek

Dilerseniz o ana kadar birikmiş tüm günlük kayıtlarını cat komutu ile ekrana bastırabilirsiniz. Günlük kayıtları özellikle FTP sunucunuz ile sorun yaşadığınızda hatanın nedenini belirlemek için faydalı bilgiler içerir.

vsFTPd’ye Yeni bir FTP kullanıcısı eklemek

FTP sunucusunu kullanmak üzere yeni bir FTP kullanıcısı eklemek için aşağıdaki komutu kullanabilirsiniz:

Yukarıdaki komutlar ile kullanıcı adı yedek, parolası da parolayedek olan bir kullanıcı ekledik. Güvenlik açısından bu kullanıcıya SSH erişimi vermedik. Komut kabuğu olarak /usr/sbin/nologin programını belirttik. Dolayısıyla yedek isimli kullanıcı komut satırına ulaşamayacak. Daha önce yaptığımız gibi yedek kullanıcısının FTP ev dizinini ve erişim izinlerini de ayarlamalıyız:

Son olarak vsftpd’nin oluşturduğumuz kullanıcıya oturum açabilmesi için /usr/sbin/nologin programını /etc/shells dosyasının sonuna bir kereliğine ekleyelim. Daha sonra oluşturacağınız kullanıcılar için bunu tekrarlamamıza gerek yok.

FTP Sunucusuna Bağlanmak

FTP sunucumuza bağlanmak için eğer Windows kullanıyorsanız herhangi bir Windows penceresinin adres çubuğuna şuna benzer bir URL’i yazabilirsiniz.

Sizden kullanıcı adı ve parola girmenizi isteyerek FTP sunucumuzda oturum açacaktır.

Windows FTP oturum açma ekranı

Dilerseniz bu ekranda “Parolayı kaydet” işaret kutusunu seçerek Windows’un bu sunucu için parolayı hatırlamasını sağlayabilirsiniz. Bunu yaparsanız sonraki girişlerinizde parola sorulmayacaktır. Başarıyla oturum açtıktan sonra FTP dizininiz görüntülenecektir. Bu pencerede yapacağınız işlemler herhangi bir Windows klasörü ile aynıdır. Sürükle bırak ve kopyala/yapıştır işlevlerini kullanabilirsiniz.

Windows FTP istemci ekranı

Kurulumunu yaptığımız FTP sunucumuza bağlanmak için birçok FTP istemci programı mevcuttur. Bu programlardan en meşhuru olan FileZilla[2]’dan bahsetmek iyi olur. FileZilla üzerinde birçok gelişmiş özelliği bulunduran ücretsiz ve açık kaynak kodlu bir FTP istemci programdır. Programı resmi web sayfası olan www.filezilla-project.org adresinden bilgisayarınıza indirerek kullanmaya başlayabilirsiniz. FileZilla’nın öne çıkan bazı özellikleri şöyledir:

  • Kullanım kolaylığı.
  • SSL/TLS (FTPS) ve SSH FTP (SFTP) desteği.
  • Platform bağımsız olması (Linux, Windows ve MacOS’larda çalışabilir).
  • IPv6 desteği.
  • Türkçe dil desteğini sahip olması.
  • Dosya aktarım hızı ayarlanabilir.
  • Sürükle bırak özelliği.
  • Uzak dosya düzenleme.
  • Uzak dosya arama.

Ücretsiz FileZilla FTP istemcisi

FileZilla’nın kullanımı çok basittir. Sunucu, kullanıcı adı ve parola kutularını doldurduktan sonra “Bağlan” düğmesine tıklayın. FileZilla arabirimi dosyalarınızı yönetebilmeniz için iki kısma ayrılmıştır. Sol kısımda yerel bilgisayarınıza ait dosya ve klasörleri, sağ tarafta ise FTP sunucumuzun dizin ve dosyalarını listeler. Bu iki kısım arasında fareyi kullanarak sürükle bırak yöntemiyle dosya aktarımı yapabilirsiniz.

FileZilla’ya her seferinde sunucunun IP adresi ve kullanıcı bilgilerinizi girmek istemezseniz, bunun için kullanışlı bir özellik mevcut. Dosya menüsünde site yöneticisi’ne tıklatarak bu bilgilerini bir kereliğine mahsus kaydettikten sonra; araç çubuğunda ilk sırada yer alan açılır düğmeye tıklayarak kolayca kullanabilirsiniz.


[1] Vsftpd FTP sunucu programı: https://en.wikipedia.org/wiki/Vsftpd

[2] FileZilla FTP istemcisi: https://filezilla-project.org/

Yazar: Özgür Koca

Yazar - Tankado.com

Bir yanıt yazın

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

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.