Centos 7’de vsFTP Kurulumu ve Yönetimi

Centos’a yum üzerinden vsftp kuracağız. Öncelikle aşağıdaki komutla hangi versiyon vsftp bulunduğuna bakalım. Ben kurulum aşamasında 3.0.2 versiyonunu kuracağım. Versiyon farklılıklarına göre konfigürasyon ayarları pek değişmeyecektir.

1
yum info vsftpd
1
yum install vsftpd

vsftp’de bir servis olduğu için servisi açılışta enable yapmamız ve start etmemiz gerekiyor ama bunu ayarlarını yaptıktan sonra yapacağız. Şimdi değil.

vsftp’nin konfigürasyon ayarları da klasik olarak /etc klasörü altında bulunmaktadır.

1
2
cd /etc/vsftpd/
nano vsftpd.conf

vsftpd.conf dosyasında bazı değişiklikler yapacağız. Bunları aşağıda sıralıyorum, bazılarının sadece başındaki # kalkacak, sizin conf dosyasında satır farkı olabilir.

1
2
3
4
5
anonymous_enable = NO
xferlog_file=/var/log/xferlog
chroot_local_user=YES
chroot_list_enable=YES
listen_ipv6=NO

Ayarlar dosyası tamamlandı.

vsftp ile giriş yapabilmek ve ilgili web sayfalarımızı güncelleyebilmek için bir kullanıcı açmamız gerekiyor. Bu kullanıcının ssh yetkisi olmayacak (olabilir de size bağlı) ve sadece ftp ile giriş yapılabilecek;

1
adduser -r -s /sbin/nologin -M -c 'x Domaini İçin Kullanıcı' domain_adi

Açtığımız kullanıcıya şifre tanımlıyoruz. Bazen şifreyi büyük küçük harf ve rakam kullanarak yazmamızı isteyebilir. İki kere yazıyoruz.

1
passwd domain_adi

Açtığımız kullanıcı ile ftp’ye bağlanıp direkt web sitesi ile ilgili klasöre bağlanmak için /etc/passwd dosyasını açıyoruz. passwd dosyası içerisinde bulunan domainadi ile başlayan satırı aşağıdaki gibi değiştirelim. Ancak sizin klasör ve nginx kullanıcı adı ve grup numarasına göre!

1
domain_adi:x:996:994:Domain İçin Kullanıcı:/home/domain_adi:/sbin/nologin

Şununla değiştireceğiz:

1
domain_adi:x:996:994:Domain İçin Kullanıcı:/var/www/domain_adi.com/public_html:/sbin/nologin

Şimdi yukarıda ne yaptık?
ilk önce bir kullanıcı tanımladık. Bu kullanıcının bilgilerinin tutulduğu passwd dosyası içerisinden 2. kısımda değişiklikler yaptık. Yani biz ftp ile giriş yaptığımızda domain_adi kullanıcısı ile, direkt olarak bizi /var/www/domain_adi.com/public_html klasörüne yönlendirecek. Ama yönlendirdiği klasördeki izin hakları da aynı açtığımız domain_adi user’ının isim ve grup haklarında olmalıdır. Yoksa bağlantı sağlayamayız. Bakın benim passwd dosyamın içeriği şu şekilde:

1
2
3
4
5
6
7
root:x:0:0:root:/root:/bin/bash
..
..
..
..
nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
domain_adi:x:996:994:Kullanici:/var/www/domain_adi.com:/sbin/nologin

Nginx kullandığınızı varsayarak aşağıdaki açıklamayı yapıyorum:

domain_adi kullanıcısının numalarını da nginx’in numaraları ile aynı yaptım. Tam açıklayamamışta olabilirim, yorumlar kısmından sorabilirsiniz.

996 dediğimiz nginx’in kullanıcı nosu.
994 dediğimiz nginx’in grup nosu.
(Yukardaki nginx grup numaralarını aynı passwd dosyası içerisinde yukarıdaki satırlarda görebilirsiniz.)

/var/www/domainadi.com ise bizim web sitemizin olduğu klasör. FTP ile bağlandığında kullanıcıyı buraya gönderiyoruz.

Firewall var ise FTP izni vermek:

firewall var ise firewall üzerinden ftp servisini eklememiz lazım. Bunun için öncelikle şunu yapın:

1
firewall-cmd --list-all

firewalld not found, çalışmıyor vs. gibi bir hata alırsanız firewall aktif değil demektir. Aktif etmeyebilirsiniz bu size kalmış. Tabiki güvenlik sebebi ile aktif etmenizde fayda var. Firewall aktif etmek ve ayarlarını yapmak ile ilgili internetten doküman bulabilirsiniz.

Firwall aktif diye düşünerek devam ediyorum.

1
2
3
firewall-cmd --add-servie=ftp --permanent
firewall-cmd --reload
firewall-cmd --list-all

son komutu verdiğimizde services kısmında ftp’yi görüyor olmamız gerekiyor.

Bağlanmayı deneyelim. Eğer bağlantı sırasında şu şekilde bir hata alırsanız:

1
vsftpd: refusing to run with writable root inside chroot()...

vsftpd.conf (/etc/vsftpd/ )dosyasına şunu ekleyelim veya varsa YES olarak düzeltelim:

1
allow_writeable_chroot=YES

vsftp’i servisini enable edip tekrar çalıştıralım. Hata veriyorsa /var/log/vsftpd.log dosyasından görebilirsiniz.

1
2
systemctl enable vsftpd
systemctl start vsftpd

Başarılar…

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Güvenlik Sorusu *