Ubuntu Server FTP Kurulumu VSFTPD
Merhaba yücebilgi okurları bu yazımızda Ubuntu Server üzerinde FTP kurulumu yapmayı anlatıyoruz. Ubuntu üzerinde VSFTPD isimli FTP Server Kurulumunu yapmak için maalesef Türkçe kaynak bulmak mümkün değil. FTP server kurulumu hakkında geniş ve detaylı ilk Türkçe kaynak yücebilgi.net olarak bizdedir.
FTP kurulumu için Root yetkilerinizin olması gerekir. Root yetkilerine sahipseniz sırası ile işlemlere başlayabiliriz.
sudo apt update
sudo apt install vsftpd
Yükleme işlemi tamamlandıktan sonra, üzerinde düzenleme yapacağımız vsftpd.conf dosyasının aşağıdaki komut ile bir yedeğini alacağız.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.yedek
Yedek alma işlemi tamamlandıktan sonra artık sıra güvenlik duvarında (firewall) ayarlamalar yapmaya geldi. Ayarlamalar sayesinde güvenlik duvarına bir takım kurallar koyarak FTP trafiğine izin verilmesini sağlayacağız. Şimdi aşağıdaki komut ile Güvenlik Duvarının durumunu kontrol edelim.
sudo ufw status
Yukarıdaki komutun çıktısı aşağıdaki gibi olacaktır.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Artık güvenlik duvarımıza yeni kurallar ekleyerek FTP bağlantısı için gerekli portlara izin vermesini sağlayalım. Aşağıda açacağımız portlardan 20-21 olanlar FTP portu, 990 olan TLS aktif edildiğinde gerekli olan port, 4000-5000 aralığındaki portlar ise bizim sonradan düzenleme yapacağımız geniş pasif portlardır.
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw status
Daha sonra yukarıda yer alan son komut satırı ile tekrar güvenlik duvarı kurallarını kontrol edelim. Ekran çıktısı aşağıdaki gibi olmalıdır.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
990/tcp ALLOW Anywhere
20/tcp ALLOW Anywhere
21/tcp ALLOW Anywhere
40000:50000/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
20/tcp (v6) ALLOW Anywhere (v6)
21/tcp (v6) ALLOW Anywhere (v6)
990/tcp (v6) ALLOW Anywhere (v6)
40000:50000/tcp (v6) ALLOW Anywhere (v6)
Güvenlik duvarına gerekli kuralları ekleme işlemi tamamlandıktan sonra artık FTP kullanıcısı belirleme işlemine geçeceğiz.
İlk olarak aşağıdaki komut ile bir kullanıcı oluşturalım. Kullanıcı ismini siz belirleyebilirsiniz.
sudo adduser yucebilgi
Kullanıcıya şifre belirlememek için enter tuşuna basarak şifre belirleme kısmını atlayabilirsiniz. Kullanıcı oluşturulduktan sonra aşağıdaki komutlar yardımı ile FTP klasörünü oluşturalım.
sudo mkdir /home/yucebilgi/ftp
FTP klasörü oluşturulduktan sonra sıra klasörün mülkiyet haklarını yani izinlerini düzenlemeye geldi. Yine aşağıdaki komutlar ile izinler üzerinde gerekli düzenlemeyi yapıyoruz.
sudo chown nobody:nogroup /home/yucebilgi/ftp
Yukarıda yer alan komut ile oluşturduğumuz dizini hiç bir kullanıcı grubuna dahil etmiyoruz. Bu işlem dizinin güvenliği için gereklidir. Aşağıdaki komut ile dizin üzerinde kullanıcının yazma izinlerini kaldırıyoruz.
sudo chmod a-w /home/yucebilgi/ftp
sudo ls -la /home/yucebilgi/ftp
Gerekli düzenlemeler yapıldıktan sonra şimdi izinlerin son halinin kontrolünü yukarıda yer alan son komut ile sağlayalım ve çıktının aşağıdaki gibi olup olmadığını kontrol edin. Buraya kadar her şey sorunsuzsa işlemlerimize devam ediyoruz.
4 dr-xr-xr-x 2 nobody nogroup 4096
4 drwxr-xr-x 3 yucebilgi yucebilgi 4096
Şimdi ise dosyaları yükleyeceğimiz dizinleri oluşturalım ve gerekli yetkilendirmeleri yapalım.
sudo mkdir /home/yucebilgi/ftp/dosyalar
sudo chown yucebilgi:yucebilgi /home/yucebilgi/ftp/dosyalar
Şimdi ise dosyalar dizinimizin içerisine aşağıda yer alan komut ile deneme.txt isminde örnek bir dosya oluşturalım.
echo "vsftpd FTP kurulumu icin ornek dosya yuklendi" | sudo tee /home/yucebilgi/ftp/dosyalar/deneme.txt
Şimdi sıra FTP izinlerini düzenlemeye geldi. Yazımızın en başında yedeğini aldığımız dosya üzerinde bir takım değişikler yapacağız. Bunun için terminal ekranını açarak aşağıda ki komut ile dosyayı açın.
sudo nano /etc/vsftpd.conf
Dosyayı açtıktan sonra düzenleme yapacağınız satırlar aşağıdaki gibi olacak. Satırları tek tek bulup aşağıda olduğu şekilde düzenleyin.
. . .
# Allow anonymous FTP? (Disabled by default).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
. . .
——-
. . .
write_enable=YES
. . .
——-
. . .
chroot_local_user=YES
. . .
——-
. . .
user_sub_token=$USER
local_root=/home/$USER/ftp
——-
. . .
pasv_min_port=40000
pasv_max_port=50000
——-
. . .
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
——-
Yukarıda olduğu gibi /etc/vsftpd.conf dosyası üzerinde gerekli düzenlemeleri yaptıktan sonra şimdi sıra FTP kullanıcısını user list dosyasına kayıt etmeye geldi. Bunun içinde aşağıdaki komut işimizi görecektir.
echo "yucebilgi" | sudo tee -a /etc/vsftpd.userlist
-Aşağıdaki komut ile user list dosyasının içeriğini okuyacağız.
cat /etc/vsftpd.userlist
—Ekran çıktısı aşağıdaki gibi olmalıdır.
yucebilgi
Şimdi yaptığımız değişikliklerin uygulanması için vsftpd servisini aşağıdaki komut ile yeniden başlatın.
sudo systemctl restart vsftpd
ftp -p 203.0.113.0
Yukarıdaki komut yardımı ile FTP hesabına terminal üzerinden bağlanabilirsiniz. FTP bağlantısını yapmadan önce yazımızın başında oluşturduğumuz kullanıcı hesabını kullanmak zorundasınız. Oluşturulan FTP hesabından bağlantı sağlandığında aşağıda olduğu gibi bir ekran çıktısı ile karşılaşacaksınız.
Connected to 203.0.113.0.
220 (vsFTPd 3.0.3)
Name (203.0.113.0:default): yucebilgi
331 Please specify the password.
Password: your_user's_password
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
Sistem yeniden başlatıldığında artık FTP kurulumu başarıyla tamamlanmış olacaktır. Yukarıdaki tüm işlemler eksiksiz olarak yerine getirildiyse herhangi bir sorun ile karşılaşmamanız gerekir. Yinede herhangi bir sorun ile karşılaşmanız halinde yazımızın altına yorum bırakabilirsiniz.
Yukarıdaki komutun çıktısı aşağıdaki gibi olacaktır.
1
2
3
4
5
6
Status: active
To Action From
— —— —-
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Artık güvenlik duvarımıza yeni kurallar ekleyerek FTP bağlantısı için gerekli portlara izin vermesini sağlayalım. Aşağıda açacağımız portlardan 20-21 olanlar FTP portu, 990 olan TLS aktif edildiğinde gerekli olan port, 4000-5000 aralığındaki portlar ise bizim sonradan düzenleme yapacağımız geniş pasif portlardır.
1
2
3
4
5
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw status
Daha sonra yukarıda yer alan son komut satırı ile tekrar güvenlik duvarı kurallarını kontrol edelim. Ekran çıktısı aşağıdaki gibi olmalıdır.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Status: active
To Action From
— —— —-
OpenSSH ALLOW Anywhere
990/tcp ALLOW Anywhere
20/tcp ALLOW Anywhere
21/tcp ALLOW Anywhere
40000:50000/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
20/tcp (v6) ALLOW Anywhere (v6)
21/tcp (v6) ALLOW Anywhere (v6)
990/tcp (v6) ALLOW Anywhere (v6)
40000:50000/tcp (v6) ALLOW Anywhere (v6)
Güvenlik duvarına gerekli kuralları ekleme işlemi tamamlandıktan sonra artık FTP kullanıcısı belirleme işlemine geçeceğiz.
İlk olarak aşağıdaki komut ile bir kullanıcı oluşturalım. Kullanıcı ismini siz belirleyebilirsiniz.
buradaki işlemleri eksik anlatmışsın üstadım