Ubuntu Sunucunuza ProFTPD Kurulumu ve Ayarları Nasıl Yapılır?

Mert Aydın
2 min readJan 12, 2019

--

Uzun bir aradan sonra tekrar merhaba.

Aslında uzun zamandır bir şeyler yazayım diye düşünürken, dün bir origin sunucusu için proftpd kurmuştum, hızlıca adımlarını buraya da yazayım diye düşündüm.

Image from ssh.com

Öncelikle,

apt-get update

diyelim paket yöneticisinin paketleri güncellemesini sağlayalım. Ardından proftpd’yi kurmak için

sudo apt-get install proftpd

komutunu çalıştıralım. Bu komut çalıştırılması bittikten sonra proftpd sistemimize kurulmuş olacak. Ardından proftpd’nin ayarları için

sudo nano /etc/proftpd/proftpd.conf

ile config dosyasını açalım ve aşağıda belirttiğim parametreleri düzenleyelim.

DefaultRoot ~ #varsayılan root dizinini belirler.
RootLogin off #root kullanıcı izinlerini düzenler.
AllowStoreRestart on #Kesintiye uğramış yükleme işleminin devam etmesini sağlar.
Port 21 #FTP portunu istediğiniz port ile değiştirebilirsiniz. (seçtiğiniz portun başka uygulamalar tarafından kullanılmadığınına dikkat edin.) Default FTP Portu 21 olduğu için 21 olarak bıraktım.

Bu işlemler ardından conf dosyası kaydedilir, dosyadan çıkılır ardından

sudo proftpd -t

çalıştırılarak yapılan değişiklikler neticesinde conf’ta bir hata olup olmadığı kontrol edilir eğer bir hata yoksa

sudo /etc/init.d/proftpd restart

ile ayarların aktif olması için proftpd restart edilir.

Bu işlemler ardından FTP’ye bağlanacak kullanıcı/kullanıcıları belirleme işlemi var. Bunu 2 farklı şekilde yapabiliriz. İsterseniz sisteme kullanıcı ekleyerek isterseniz de sanal kullanıcı oluşturarak yapabilirsiniz bu işlemi. İkisinden de burada bahsedelim.

Normal kullanıcı oluşturmak için;

sudo useradd ftp_user -d /home/ftp -s /bin/falsesudo passwd ftp_user #ile şifre belirteceğiz.

ile ftp_user adında bir kullanıcı oluşturup onun erişebileceği dizin olarak /home/ftp vermiş olacağız.

Sanal kullanıcı oluşturmak için;

Öncelikle;

sudo nano /etc/proftpd/proftpd.conf

açılır ve aşağıdaki eklemeler yapılır.

RequireValidShell off #Shell ile Bağlanmaya çalışan kullanıcının /etc/shells altındaki köklerden birine sahip olup olmadığını kontrol eder.
AuthUserFile /etc/proftpd/ftpd.passwd
#Oluşturulan ya da oluşturulacak sanal kullanıcılar listesinin bulunduğu dosya yolunu belirtiyoruz.
AuthGroupFile /etc/proftpd/ftpd.group
#Oluşturulan ya da oluşturulacak sanal kullanıcıların gruplarının listesinin bulunduğu dosya yolunu belirtiyoruz.
AuthOrder mod_auth_file.c
#Bu parametre /etc/passwd değil de AuthUserFile kullanılacağı aktif edilir.

Evet şimdi ise sanal kullanıcımızı oluşturalım;

sudo ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=test --uid=60 --gid=60 --home=/var/www/html/ --shell=/bin/false

Bu komut ile test isminde, /var/www/html/ dizinine bağlananan ve user id ve group id’si 60 olan (bunun hangi user ve group’a denk geldiğini /etc/passwd altından görebilirsiniz.) bir kullanıcı oluşturacağız. Ben kullanıcı oluştururken www-data kullanıcısı için oluşturdum www-data:www-data için /etc/passwd altından uid ve gid parametrelerini seçerek değiştirdim. Kullanıcı oluşturma işleminin ardından,

sudo ftpasswd --group --name=nogroup --file=/etc/proftpd/ftpd.group --gid=60 --member test

komutu ile de grup dosyamızı oluşturduk. Ardından değişikliklerin uygulanması için;

sudo /etc/init.d/proftpd restart

ile proftpd’yi restart ettik.

Bu işlemlerden sonra eğer herhangi bir kullanıcıya ait şifreyi değiştirmek için aşağıdaki komutu kullanabiliriz.

sudo ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name= test --change-password

FTP kullanıcısını lock ya da unlock etmek için;

sudo ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=test2 --locksudo ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=test --unlock

Kullanıcı silmek için ise;

sudo ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=test --delete-user

--

--