Pardus Sunucu Üzerinde FTP Sunucu (vsftpd) Kurulumu ve Yapılandırması

Pardus (Debian tabanlı) sisteminizde güvenli ve performanslı bir FTP sunucusu kurmak için en popüler ve kararlı çözüm olan vsftpd (Very Secure FTP Daemon) kullanılmaktadır.

Aşağıda, belirttiğiniz yapılandırma bilgilerine (192.168.101.250, pserver, bilisim.local) uygun olarak hazırladığım eğitim makalesi yer almaktadır.



Bu makalede, Pardus sunucunuzu bir dosya paylaşım merkezine dönüştürmek için izlemeniz gereken adımları teknik detaylarıyla ele alacağız.

1. Hazırlık ve Sistem Güncelleme

Kuruluma başlamadan önce sunucunuzun hostname ve ağ yapılandırmasının doğru olduğundan emin olalım.

  • Hostname ve FQDN Kontrolü:

    Bash
    sudo hostnamectl set-hostname pserver
    

    /etc/hosts dosyasını düzenleyerek FQDN tanımını ekleyin:

    Plaintext
    127.0.0.1       localhost
    192.168.101.250 pserver.bilisim.local pserver
    
  • Sistem Güncelleme:

    Bash
    sudo apt update && sudo apt upgrade -y
    

2. vsftpd Paketinin Kurulması

Pardus depolarında bulunan vsftpd paketini yüklemek için aşağıdaki komutu çalıştırın:

Bash
sudo apt install vsftpd -y

Kurulum sonrası servisin durumunu kontrol edin:

Bash
systemctl status vsftpd

3. FTP Yapılandırması (vsftpd.conf)

FTP sunucusunun davranışını belirleyen ana dosya /etc/vsftpd.conf dosyasıdır. Orijinal dosyanın yedeğini alarak işe başlayalım:

Bash
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
sudo nano /etc/vsftpd.conf

Dosya içerisinde aşağıdaki ayarların aktif (başındaki # işareti kaldırılmış) veya eklenmiş olduğundan emin olun:

ParametreDeğerAçıklama
anonymous_enableNOİsimsiz (şifresiz) girişi kapatır.
local_enableYESYerel kullanıcıların girişine izin verir.
write_enableYESDosya yükleme ve silme yetkisi verir.
chroot_local_userYESKullanıcıyı kendi ana dizinine hapseder (güvenlik için).
local_umask022Yeni oluşturulan dosyaların izin maskesi.

Önemli Not: chroot_local_user=YES aktifken kullanıcının ana dizinine yazma yetkisi olması FTP hatasına (500 OOPS) neden olabilir. Bunu aşmak için şu satırı dosyanın en altına ekleyin:

Plaintext
allow_writeable_chroot=YES

4. Kullanıcı Oluşturma ve Yetkilendirme

FTP erişimi için sisteme özel bir kullanıcı ekleyelim:

Bash
sudo adduser ftpuser

(Bu aşamada size şifre soracaktır, güçlü bir şifre belirleyin.)

5. Güvenlik Duvarı (UFW) Ayarları

Eğer sunucunuzda ufw aktifse, FTP trafiğine izin vermeniz gerekir:

Bash
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp  # Pasif mod aralığı için

6. Servisi Yeniden Başlatma

Yaptığınız değişikliklerin geçerli olması için servisi yeniden başlatın:

Bash
sudo systemctl restart vsftpd

7. Bağlantı Testi

Sunucunuza başka bir bilgisayardan bağlanmak için FileZilla veya WinSCP gibi bir istemci kullanabilirsiniz.

  • Sunucu (Host): 192.168.101.250 veya pserver.bilisim.local

  • Kullanıcı Adı: ftpuser

  • Şifre: (Belirlediğiniz şifre)

  • Port: 21


Özet Komut Listesi

İşlemKomut
Kurulumsudo apt install vsftpd
Servis Başlatmasudo systemctl start vsftpd
Otomatik Başlatmasudo systemctl enable vsftpd
Yapılandırma Düzenlemesudo nano /etc/vsftpd.conf

IP: 192.168.101.250/24
Hostname: pserver
FQDN: bilisim.local
Tam Adı: pserver.bilisim.local

Pardus Server üzerinde güvenli ve yapılandırılmış bir FTP sunucusu kuracağız. Eğitim amaçlı bir okul/lab ortamı senaryosuna göre hazırlanmıştır.


📌 1️⃣ Senaryo ve Hedef

Okul ağında:

  • FTP Sunucu IP: 192.168.101.250

  • Hostname: pserver

  • FQDN: pserver.bilisim.local

  • Öğrenciler dosya yükleyip indirebilecek

  • Her kullanıcı kendi klasörüne erişebilecek

  • Sistem güvenli olacak

FTP servisi olarak Linux dünyasında en stabil ve güvenli servislerden biri olan:

👉 vsftpd kullanacağız.


📌 2️⃣ Sistem Hazırlığı

🔹 Hostname Ayarlama

sudo hostnamectl set-hostname pserver

🔹 /etc/hosts Düzenleme

sudo nano /etc/hosts

Ekleyin:

192.168.101.250   pserver.bilisim.local   pserver

Kontrol:

hostname
hostname -f

📌 3️⃣ FTP Sunucu Kurulumu

🔹 Paket Güncelleme

sudo apt update
sudo apt upgrade -y

🔹 vsftpd Kurulumu

sudo apt install vsftpd -y

Servis kontrolü:

sudo systemctl status vsftpd

Aktif değilse:

sudo systemctl enable vsftpd
sudo systemctl start vsftpd

📌 4️⃣ Temel FTP Yapılandırması

🔹 Konfigürasyon Dosyası

sudo nano /etc/vsftpd.conf

Aşağıdaki ayarları düzenleyin:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022

chroot_local_user=YES
allow_writeable_chroot=YES

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100

Kaydedin ve çıkın.


📌 5️⃣ FTP Kullanıcısı Oluşturma

Örnek öğrenci hesabı:

sudo adduser ogrenci1

FTP klasörü oluştur:

sudo mkdir -p /home/ogrenci1/ftp/files

Yetkileri düzenle:

sudo chown nobody:nogroup /home/ogrenci1/ftp
sudo chmod a-w /home/ogrenci1/ftp
sudo chown ogrenci1:ogrenci1 /home/ogrenci1/ftp/files

Bu yapı sayesinde:

/home/ogrenci1/ftp
                 └── files

Öğrenci sadece files klasörüne yazabilir.


📌 6️⃣ Firewall Ayarları

Eğer UFW aktifse:

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:40100/tcp
sudo ufw reload

Kontrol:

sudo ufw status

📌 7️⃣ Servisi Yeniden Başlatma

sudo systemctl restart vsftpd

📌 8️⃣ İstemci Bilgisayardan Bağlantı Testi

Windows'tan:

  • Dosya Gezgini

  • Adres çubuğuna yaz:

ftp://192.168.101.250

Linux'tan:

ftp 192.168.101.250

GUI istemci olarak:

👉 FileZilla

Bağlantı bilgileri:

  • Host: 192.168.101.250

  • Kullanıcı: ogrenci1

  • Şifre: (oluşturduğunuz)

  • Port: 21


📌 9️⃣ Eğitim Ortamı İçin Ek Güvenlik (Önerilir)

⚠ FTP şifreleri düz metin gönderir. Gerçek ortamda FTPS kullanmanız önerilir.

SSL aktif etmek için:

sudo openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout /etc/ssl/private/vsftpd.pem \
-out /etc/ssl/private/vsftpd.pem

/etc/vsftpd.conf içine ekleyin:

ssl_enable=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

📌 1️⃣0️⃣ Servis Mimarisi (Ağ Diyagramı)

Öğrenci PC
   │
   │ FTP (21)
   ▼
Switch
   │
   ▼
pserver.bilisim.local
192.168.101.250
(vsftpd)

📌 1️⃣1️⃣ Kontrol Komutları

sudo systemctl status vsftpd
sudo ss -tulnp | grep 21

📌 1️⃣2️⃣ Olası Hatalar ve Çözümleri

HataÇözüm
530 Login incorrectKullanıcı şifresini kontrol edin
Connection refusedFirewall açık mı kontrol edin
500 OOPS chrootallow_writeable_chroot=YES ekleyin

📌 1️⃣3️⃣ Eğitim Senaryosu Örneği

✔ Her öğrenciye ayrı kullanıcı
✔ Ortak paylaşımlı klasör
✔ Öğretmen için full erişim
✔ FTP log takibi

Log dosyası:

/var/log/vsftpd.log

🎯 Sonuç

Bu makalede:

  • Pardus üzerinde FTP server kurduk

  • Kullanıcı bazlı erişim sağladık

  • Güvenlik ayarları yaptık

  • Eğitim ortamı için optimize ettik

Harika! FTP trafiğini şifrelemek, kullanıcı adı ve şifrelerin ağ üzerinden açık metin (clear text) olarak gitmesini engellemek için kritik bir adımdır. Bu işleme FTPS (FTP over SSL/TLS) diyoruz.

İşte eğitim makalenizin devamı niteliğindeki SSL/TLS ile Güvenli FTP Yapılandırması bölümü:


8. SSL/TLS Sertifikası Oluşturma ve Yapılandırma

Pardus sunucunuzda verilerin şifrelenmesi için kendinden imzalı (self-signed) bir SSL sertifikası oluşturacağız.

8.1. SSL Sertifikası Üretme

Aşağıdaki komutla 365 gün geçerli, 2048-bit anahtar uzunluğuna sahip bir sertifika oluşturalım:

Bash
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/vsftpd.pem \
-out /etc/ssl/private/vsftpd.pem

Bu komutu çalıştırdığınızda size Ülke (TR), Şehir, Kurum gibi sorular sorulacaktır. FQDN kısmına pserver.bilisim.local yazmanız profesyonel bir yaklaşım olacaktır.

8.2. vsftpd Yapılandırma Dosyasını Güncelleme

Oluşturduğumuz sertifikayı sunucuya tanıtmak için /etc/vsftpd.conf dosyasını tekrar açın:

Bash
sudo nano /etc/vsftpd.conf

Dosyanın en altına gidin veya ilgili satırları şu şekilde güncelleyin:

Plaintext
# Sertifika Yolları
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

# SSL/TLS Aktifleştirme
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

# Güvenli TLS Versiyonları
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

# Pasif Mod Port Aralığı (Güvenlik Duvarı İçin)
pasv_min_port=40000
pasv_max_port=50000

8.3. Servisi Yeniden Başlatma

Yapılandırmayı sisteme yansıtın:

Bash
sudo systemctl restart vsftpd

9. Bağlantı Testi (FileZilla Örneği)

SSL yapılandırmasından sonra standart FTP bağlantısı hata verebilir veya uyarı çıkarabilir. Bağlanırken şunlara dikkat etmelisiniz:

  1. Protokol: FTP - Dosya Aktarım Protokolü

  2. Şifreleme: "TLS üzerinden açık FTP gereksin (Explicit)" seçeneğini seçin.

  3. Sertifika Uyarısı: Bağlanırken "Bilinmeyen Sertifika" uyarısı alacaksınız (kendimiz imzaladığımız için). "Gelecek oturumlar için bu sertifikaya her zaman güven" kutucuğunu işaretleyip tamam deyin.

Güvenlik DurumuDurum
Bağlantı TürüTLS 1.2 / 1.3 Şifreli
Veri GüvenliğiDosya içerikleri şifrelenmiş
Giriş GüvenliğiKullanıcı bilgileri şifrelenmiş

Bu bölümle birlikte FTP sunucunuz profesyonel bir veri yönetim merkezine dönüşecektir. Kullanıcıların sadece kendilerine ayrılan alanları görmesi ve sunucunun disk alanını bitirmemesi için Kota (Quota) ve Dizin Sınırlandırma işlemlerini şu adımlarla gerçekleştirebilirsiniz:


10. Kullanıcı Bazlı Klasör Yetkileri ve Alan Sınırlandırması

Sunucunuzda her öğretmenin veya öğrencinin sadece kendi klasörüne erişmesini ve belirli bir boyuttan (örneğin 5GB) fazla dosya yükleyememesini sağlayalım.

10.1. Kullanıcı Dizin Yapılandırması (Chroot)

Daha önce vsftpd.conf içerisinde chroot_local_user=YES yapmıştık. Şimdi kullanıcıların FTP ile bağlandıklarında görecekleri ana dizini özelleştirelim:

Bash
# Kullanıcı için özel bir FTP klasörü oluşturalım
sudo mkdir -p /home/ftpuser/ftp/yuklemeler

# Yetkileri düzenleyelim (Root dizini yazılabilir olmamalıdır)
sudo chown nobody:nogroup /home/ftpuser/ftp
sudo chmod a-w /home/ftpuser/ftp

# Yükleme yapılacak klasörün yetkisini kullanıcıya verelim
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/yuklemeler

Ardından /etc/vsftpd.conf dosyasına şu satırı ekleyin:

Plaintext
local_root=/home/ftpuser/ftp

10.2. Disk Kotası (Quota) Kurulumu

Pardus üzerinde disk kullanımını sınırlandırmak için quota paketini kullanalım:

Bash
sudo apt install quota quotatool -y

10.3. Disk Yapılandırması

Kotayı etkinleştirmek için /etc/fstab dosyasında ilgili diskin yanına usrquota eklemelisiniz:

  1. Dosyayı açın: sudo nano /etc/fstab

  2. Kök dizin (/) satırını bulun ve şu şekilde düzenleyin:

    UUID=... / ext4 errors=remount-ro,usrquota 0 1

  3. Değişikliği sisteme tanıtın:

    Bash
    sudo mount -o remount /
    sudo quotacheck -cum /
    sudo quotaon -v /
    

10.4. Kullanıcıya Kota Tanımlama

ftpuser kullanıcısına 5GB (5000000 KB) sınır koymak için:

Bash
sudo setquota -u ftpuser 5000000 5500000 0 0 /
  • 5000000 (Soft Limit): Kullanıcı bu sınıra geldiğinde uyarı alır.

  • 5500000 (Hard Limit): Bu sınırdan sonra kesinlikle dosya yükleyemez.


11. Kota Durumunu İzleme

Kullanıcıların ne kadar alan kullandığını raporlamak için şu komutu kullanabilirsiniz:

Bash
repquota -as

Eğitim Makalesi İçin Son Notlar:

Bu makale serisi ile bir Pardus sunucusu üzerinde;

  1. Temel FTP kurulumunu,

  2. FQDN ve network yapılandırmasını,

  3. SSL/TLS ile veri güvenliğini,

  4. Quota ile kaynak yönetimini tamamlamış oldunuz.



Yorumlar

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Etap 23 Yazıcı Kurulumu