Kullanıcı Dizini İçin Güvenli FTP Sunucusu: vsftpd Kurulumu

vsftpd cpynet secure file transfer

Vsftpd, “Very Secure FTP Daemon” kelimelerinin kısaltmasıdır ve Unix sistemleri, özellikle Linux için bir FTP sunucusudur. Vsftpd, Ubuntu, CentOS ve RHEL dağıtımlarında varsayılan FTP sunucusudur. Sistem yöneticileri, her gün yeni kullanıcılar ekler ve kullanıcının yalnızca kendi dizinlerinde dosya veya klasör yüklemesine izin verecek şekilde vsftpd yapılandırması yapar. Bu senaryo genellikle kullanıcılarına sınırlı erişim sağlamak isteyen bayi hizmet sağlayıcıları için geçerlidir.

Ubuntu 22.04 için vsftpd’yi bir kullanıcının dizininde kurmak ve yapılandırmak oldukça basittir. Hadi başlayalım!

İçindekiler

  • Ön koşullar
  • Adım 1: Sistemi Güncelle
  • Adım 2: Vsftpd Daemonunu Kur
  • Adım 3: Kullanıcı Oluştur
  • Adım 4: FTP Erişimini Yapılandır
  • Adım 5: FTP Erişimini Test Et

Ön Koşullar

  • Yeni kurulum yapılmış bir Ubuntu 22.04
  • Kullanıcı ayrıcalıkları: root veya sudo ayrıcalıklarına sahip bir normal kullanıcı

Adım 1: Sistemi Güncelle

Sistem paketlerini en son sürümlere güncelleyin.

sudo apt update -y && sudo apt upgrade -y

Adım 2: Vsftpd Daemonunu Kur

Yapılandırmaya başlamadan önce, aşağıdaki komutlarla vsftpd daemonunu kuracağız:

sudo apt install vsftpd

Kurulumdan sonra, vsftpd’yi başlatın ve etkinleştirin.

sudo systemctl start vsftpd.service && sudo systemctl enable vsftpd.service

Servisin düzgün çalışıp çalışmadığını kontrol edin.

sudo systemctl status vsftpd.service

Aşağıdaki çıktıyı almalısınız:

root@cpynet:~# sudo systemctl status vsftpd.service
 vsftpd.service - vsftpd FTP server
     Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-09-19 21:00:12 CEST; 5min ago
   Main PID: 97973 (vsftpd)
      Tasks: 1 (limit: 4575)
     Memory: 856.0K
        CPU: 16ms
     CGroup: /system.slice/vsftpd.service
             └─97973 /usr/sbin/vsftpd /etc/vsftpd.conf

Adım 3: Kullanıcı Oluştur

Bir kullanıcı oluşturmak için aşağıdaki komutu çalıştırın:

sudo adduser developer

Komutu çalıştırdıktan sonra, iki kez şifre girin, Enter’a beş kez basın ve bilgileri “Y” ile onaylayın.

root@cpynet:~# sudo adduser developer
Adding user `developer' ...
Adding new group `developer' (1001) ...
Adding new user `developer' (1001) with group `developer' ...
Creating home directory `/home/developer' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for developer
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] Y

developer kullanıcısı, /home/developer dizininde otomatik olarak oluşturulur.

root@cpynet:~# cd /home/developer/ && ls -al
total 20
drwxr-xr-x 2 developer developer 4096 Sep 19 21:27 .
drwxr-xr-x 3 root      root      4096 Sep 19 21:27 ..
-rw-r--r-- 1 developer developer  220 Sep 19 21:27 .bash_logout
-rw-r--r-- 1 developer developer 3771 Sep 19 21:27 .bashrc
-rw-r--r-- 1 developer developer  807 Sep 19 21:27 .profile

Şimdi, developer kullanıcısının ev dizininde bir ftp adlı dizin oluşturacağız.

mkdir /home/developer/ftp

Oluşturulan dizin için aşağıdaki izinleri ayarlayın.

chown developer: /home/developer/ftp/
sudo chmod 700 /home/developer/ftp

Adım 4: FTP Erişimini Yapılandır

Kullanıcı oluşturulduktan sonra, FTP erişimini yapılandırmaya geçebiliriz.

Vsftpd’nin yapılandırması /etc/vsftpd.conf dosyasında saklanır. Herhangi bir değişiklik yapmadan önce, dosyanın bir kopyasını almak önerilir.

cp /etc/vsftpd.conf /etc/vsftpd.conf.original

Şimdi, dosyaya aşağıdaki satırları ekleyin veya değiştirin:

chroot_local_user=YES
write_enable=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

Bu değişikliklerden sonra dosyayı kaydedin ve vsftpd servisini yeniden başlatın.

sudo systemctl restart vsftpd

Sonra, developer kullanıcısını /etc/vsftpd.userlist dosyasına ekleyin:

touch /etc/vsftpd.userlist && echo "developer" | sudo tee -a /etc/vsftpd.userlist

Adım 5: FTP Erişimini Test Et

Bağlantıyı test etmeden önce, bazı portları UFW hizmeti aracılığıyla açmamız gerekiyor.

sudo ufw allow 20,21/tcp

Bittiğinde, UFW durumunu aynı komutla kontrol edin.

root@cpynet:~# ufw status
Status: active

To                         Action      From
--                         ------      ----
20,21/tcp                  ALLOW       Anywhere
22/tcp                     ALLOW       Anywhere
20,21/tcp (v6)             ALLOW       Anywhere (v6)
22/tcp (v6)                ALLOW       Anywhere (v6)

Sonra, aşağıdaki komutla developer kullanıcısıyla giriş yapmayı deneyin:

ftp -p server_ip_address

Developer kullanıcı adı ve şifresini girin. Giriş yaptıktan sonra aşağıdaki çıktıyı almalısınız:

root@cpynet:~# ftp -p server_ip_address
Connected to server_ip_address.
220 (vsFTPd 3.0.5)
Name (server_ip_address:root): developer
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Eğer vsftpd kullanıcılar listesinde yer almayan başka bir kullanıcı ile giriş yapmayı denerseniz, aşağıdaki çıktıyı alırsınız:

root@cpynet:~# ftp -p server_ip_address
Connected to server_ip_address.
220 (vsFTPd 3.0.5)
Name (server_ip_address:root): other-user
530 Permission denied.
ftp: Login failed

Gördüğünüz gibi, diğer kullanıcılar için erişim izni reddedildi. Bu, Ubuntu 22.04 üzerinde vsftpd’yi bir kullanıcı dizini için başarılı bir şekilde yapılandırdığımızı gösterir.

Önceki Konu

Linux Sunucularda Kaynak İzleme: top, du, ve netstat

Sonraki Konu

SSH Bağlantılarında Güvenlik: İki Faktörlü Kimlik Doğrulama (2FA) Kurulumu

Bültenimize Abone Olun 📬

En son gönderilerimizin doğrudan e-posta kutunuza gelmesi için e-posta bültenimize abone olun.
Düşüncelerinizi özgür bırakın ✨