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.