
Ftp server kurulumu Centos (7) sunucularda, ftp bağlantıları için program kurulumu (vsftpd) ve kullanıcı hesabı ekleme çalışmaları için hazırladığım bu doküman ile panelsiz websunucuları oluşturan arkadaşlar için yararlı bir kaynak oluşturmayı düşünüyorum.
— Ftp bağlantıları için vsftpd kurulumu —
yum -y install vsftpd ftp
Bu işlemlerden sonra kurulum tamamlandı artık ayarları yapabiliriz.
VSFTP ayarları
nano /etc/vsftpd/vsftpd.conf
Açılan ayar sayfasında aşağıdaki parametreleri aynı olacak şekilde düzeltin:
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
Bağlanan kullanıcıların home dizininden üste çıkmasını engellemek içinde bunu yapalım:
touch /etc/vsftpd/chroot_list
Ftp programına restart atalım (vsftpd)
service vsftpd restart
Sunucu restart edildiğinde ftp hizmetinin otomatik başlatılması için aşağıdaki ayarıda ekleyelim:
/bin/systemctl enable vsftpd.service
ftp hizmetinin kurulumu tamamlandı. Sıra geldi kullanıcı hesabı eklemeye.
— Ftp kullanıcı hesabı ve şifresi ekleme —
Kullanıcı ismi ve izinleri oluşturma:
adduser test_ftp_kullanici
Oluşturduğumuz kullanıcı için şifre belirleme:
passwd test_ftp_kullanici
Yukardaki komutu çalıştırdığınızda sizden şifre isteyecek, sonrasında tekrar aynı şifreyi girmenizi isteyecek. Sonrasında aşağıdaki gibi bir yazı çıktığında kullanıcı hesabı ve şifre tamamdır demektir:
passwd: all authentication tokens updated successfully.
Kullanıcı için ssh giriş yetkisini kaldırma
Oluşturduğumuz kullanıcı ismi ve şifresi ile ssh giriş yetkisi otomatik oluşuyor. Bu yetkiyi güvenliğiniz kaldırmanızı öneririm, aşağıdaki şekilde kullanıcının ssh erişim yetkisini iptal etmiş oluruz:
usermod -s /sbin/nologin test_ftp_kullanici
Bu işlemlerden sonra artık ftp bağlantısı yapabiliriz.

Bu islemden sonra /home klasoru icerisinde cdn_test ismine bir klasor olusacak. Bu klasorun chmod ayarini ve kullanici/grup ayarlarini duzenlemek gerekli, aksi durumda yetki kontrolu sebebi ile sitemiz acilmayacak, hata mesaji ile karsilasacaksiniz.
Chmod ayarini degistirme
chmod 0711 /home/test_ftp_kullanici
Site dosyalari icin klasor olusturalim
Sitenizin dosyalarini barindiracaginiz klasoru olusturacagiz simdi. Standart ve uzun yillardir default gelen ismi: public_html, ancak siz bunu istediginiz gibi degistirerek kullanabilirsiniz. Hemde guvenlik acisindan iyi olabilir ;)
mkdir -p /home/test_ftp_kullanici/public_html
Site klasörünün kullanıcı/grup ayarlarını düzeltme
chown -R test_ftp_kullanici:test_ftp_kullanici /home/test_ftp_kullanici/public_html
Bu işlemlerden sonra sitemizin dosyaları ve kullanıcı ayarları yapılmış oldu.
Anlatımı olduğunca kısa tutmaya çalıştım, merak ettiklerinizi ve karşılaştığınız hataları konu altından iletebilirsiniz.
***
NOT: Centos 7 de iptables kullanılmıyor olabilir, aşağıdaki kısmı eş geçebilirsiniz.
Uyarı: Sunucunuzdaki güvenlik duvarı (iptables) ftp portunu bloklamış yada açmamış olabilir. Bu yüzden bağlantı yapamayabilirsiniz. Manuel bu portu kullanıma açmak için aşağıdaki işlemleri yapın:
Iptables kural dosyasını açalım:
nano /etc/sysconfig/iptables
COMMIT yazısından öncesine ekleyelim:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
Sonrasında aşağıdaki işlemleri sırası ile yapın ve bağlantıyı tekrar deneyin:
service iptables save service iptables restart
Oluşabilecek sorunlar için yada yardım amaçlı konular:
Kullanıcı bilgileriniz ile bağlanamıyorsanız!! 530 Login incorrect.
Bazı durumlarda herşeyi yaptınız ancak bağlantı hatası aldınız. Genelde aşağıdaki gibi hata mesajları görebilirsiniz:
- 331 Please specify the password
- 530 Login incorrect.
- Kritik hata: Sunucuyla bağlantı kurulamıyor

Bu hatayı ben aşağıdaki düzenlemeyi yaparak çözdüm. Umarım sizde aynı hata ile karşılaşırsanız bu şekilde çözebilirsiniz:
Bu dosyayi duzenlemek icin acin: /etc/shells
Dosya içerisindekileri yedekleyip, aşağıdaki kodları, son satıra ekleyin
/sbin/nologin
/usr/sbin/nologin
Kaydedip vsftpd ye restart atın.
/bin/systemctl restart vsftpd.service
Sonrasında bağlanmayı tekrar deneyin, çözülmüş olması gerekiyor, ancak çözülmediyse konu altından hata mesajı ile beraber yorumunuzu bırakın, yardımcı olmaya çalışırım.
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Yukadaki hatayı alıyorsanız, kullanıcı klasörlerine küçük bir yetki vermeniz bağlantı sorununu düzeltmeniz için yeterli olacaktır. Aşağıdaki adımları uygulayarak, yukarıdaki bağlantı hatası sorunundan kurtulabilirsiniz.
chmod a-w /home/KULLANICI-ADI
Yukarıdaki komutu putty ile ssh panelinizden çalıştırın ve sonrasında aynı panelden aşağıdaki ftp restart kodunu çalıştırın. Ayarların aktif olması için:
systemctl restart vsftpd
Bu adımdan sonra bağlantı sorunsuz açılması gerekiyor. Ancak yinede aynı hatayı alıyorsanız aşağıdaki ayarı yaparak tekrar deneyin. Her satırı tek tek çalıştırarak sonrasında bağlanmayı deneyin:
echo 'allow_writeable_chroot=YES' >> /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
Yukarıdaki başlıkta yer alan hatanın çözümünü, buradaki yazıyı deneyerek çözdüm, sizlerde yukarda anlattığım şekilde bu bağlantı sorununu çözebilirsiniz.
FTP bağlantısı yapmak için
Panelsiz bir sunucu kullanıyorsanız, ftp bağlantısı yapmak için sunucu IP sini kullanmanızı öneririm. Aksi durumda sunucunuzda hangi webserver’i kullanıyorsanız ona domain ile birleşik ip bütünleşmesini eklemeniz gereklidir. Yoksa ftp bağlantısı sağlayamazsınız (domain ile).
Bu kadar..
Bu konuda kaynak olabilecek siteler: