Merih Forum

Tam Versiyon: Linux ftp kurulumu
Şu anda tam olmayan bir versiyonun içeriğine bakıyorsunuz. Tam versiyon'a bakınız.
Pure-ftpd kurulumu ve yapılandırması nasıl yapılır? Pure-ftpd Ubuntu Debian
Pure-ftpd ftp programıdır.

Yükleme 
       aptitude install pure-ftpd

Ayarlar 
pure-ftpd'nin standalone çalışması için 
       vim /etc/default/pure-ftpd-common
               STANDALONE_OR_INETD=standalone


pure-ftpd'nin inetd ile çalışması için 
       aptitude install openbsd-inetd

       vim /etc/default/pure-ftpd-common
               STANDALONE_OR_INETD=inetd

Kullanıcının kendi klasörü dışına çıkmasını engellemek için

       echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone
Chroot aktif iken kendi klasörü altında olmayan klasörlere yapılmış sembolik linklerin de içeriğinin görünebilmesi için

       vim /etc/default/pure-ftpd-common
               VIRTUALCHROOT=true

       .Bağlanan kullanıcı için DNS sorgusu yapılmayacaksa
       echo "yes" > /etc/pure-ftpd/conf/DontResolve

       .Standart FTP portu değiştirilecekse
       echo "1021" > /etc/pure-ftpd/conf/Bind

       .Passive mode FTP portları için aralık tanımlama
       echo "40000 40100" > /etc/pure-ftpd/conf/PassivePortRange

       .Anonymous FTP erişimi olmayacaksa
       echo "yes" > /etc/pure-ftpd/conf/NoAnonymous

       .Nokta ile başlayan dosyalar (örneğin .htaccess) gösterilecekse
       echo "yes" > /etc/pure-ftpd/conf/DisplayDotFiles



Read-Only anonymous FTP erişimi olacaksa 
       adduser --system --group ftp
       echo "no" > /etc/pure-ftpd/conf/NoAnonymous
       echo "no" > /etc/pure-ftpd/conf/AnonymousCanCreateDirs
       echo "yes" > /etc/pure-ftpd/conf/AnonymousCantUpload



Dosya yüklendiğinde bir scriptin otomatik çalıştırılması isteniyorsa 
       echo "yes" > /etc/pure-ftpd/conf/CallUploadScript

       vim /etc/default/pure-ftpd-common
               UPLOADSCRIPT=/calisacak/scriptin/pathi
               UPLOADUID=1000
               LOADGID=1000

Scripti çalıştıracak kullanıcının UID ve GID numaraları yazılır. 
"id kullanici" komutu ile ID bilgileri öğrenilebilir. Çalıştırılacak scripte, bu kullanıcı için çalıştırma hakkı verilmiş olması gerekmekte.


               $1              ile yüklenen dosyanın path'i gelir.
               $UPLOAD_VUSER   ile yüklemeyi yapan sanal kullanıcı adı gelir.
               $UPLOAD_SIZE
               $UPLOAD_PERMS
               $UPLOAD_UID
               $UPLOAD_GID
               $UPLOAD_USER
               $UPLOAD_GROUP



TLS ile SFTP desteği verilmesi. Şifreli trafik için 
       aptitude install openssl
       cd /etc/ssl/private/
       openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout \
       /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
               Country Name             :TR
               State or Province Name   :Türkiye
               Locality Name            :<İl adı>
               Organization Name        :<Firma Adı>
               Organizational Unit Name :<Bölüm adı>
               Common Name              :<web adresi veya kişi adı>
               Email Address            :<email adresi>
       echo "1" > /etc/pure-ftpd/conf/TLS
               TLS 0 olursa: Sadece şifresiz trafiği destekler (FTP)
               TLS 1 olursa: Hem şifreli hem de şifresiz trafiği destekler
               TLS 2 olursa: Sadece şifreli trafiği destekler (SFTP)




Sanal kullanıcı işlemleri (pure-ftpd'nin kendi veritabanı ile) 
İlk kullanıcıyı ekleme 
               mkdir -p /home/ftpdata/kullanici1
               chown emrah: /home/ftpdata -R
               pure-pw useradd kullanici1 -u emrah -d /home/ftpdata/kullanici1
               pure-pw mkdb

               echo "/etc/pure-ftpd/pureftpd.pdb" > /etc/pure-ftpd/conf/PureDB
               ln -s ../conf/PureDB /etc/pure-ftpd/auth/60puredb
               /etc/init.d/pure-ftpd restart



Yeni kullanıcılar ekleme 
               mkdir /home/ftpdata/kullanici2
               chown emrah: /home/ftpdata/kullanici2
               pure-pw useradd kullanici2 -u emrah -d /home/ftpdata/kullanici2
               pure-pw mkdb



Kullanıcı parolası değiştirme 
               pure-pw passwd kullanici1
               pure-pw mkdb



Kullanıcı silme 
               pure-pw userdel kullanici1
               pure-pw mkdb



Kullanıcıları listeleme 
               pure-pw list


Kullanıcı bilgisini görme 
               pure-pw show kullanici1



Notlar
Sistem dili 'en_US.UTF-8' olsun. Eğer sistem dili bu değilse pure-ftpd'nin bu dili kullanması için '/etc/init.d/pure-ftpd' scriptinin 13. satırına şu eklensin:

LANG=en_US.UTF-8
Bu yapılmazsa bazı yerellerde problem çıkarıyor. En iyisi sistem dilinin 'en_US.UTF-8' yapılması.

Güncel yapılan işlemlerin izlenilmesi
0.97.7 versiyonundan yapılan işlemleri pure-ftpwho komutuyla izleyebilirsiniz.
Varsayılan çıktı aşağıdaki şekilde gözükür.

+------+---------+-------+------+-------------------------------------------+
| PID  |  Login  |For/Spd| What |                 File/IP                   |
+------+---------+-------+------+-------------------------------------------+
| 2239 | jedi    | 00:17 |  D/L | XFree86-clients-4.0.3.tar.gz              |
|  ''  |    ''   |  41K/s|  33% | ->                     nestea.funboard.de |
+------+---------+-------+------+-------------------------------------------+
| 2385 | ftp     | 00:02 | IDLE |                                           |
|  ''  |    ''   |       |      | ->                     gw2.crn.kjop.co.uk |
+------+---------+-------+------+-------------------------------------------+
  • D/L istemci tarafından yapılan download işlemini gösterir.

  • U/L istemci tarafından yapılan upload işlemini gösterir.

  • 41K/s bant genişliğini gösterir.

  • 33% gerçek zamanlı olarak işlemin tamamlanma oranını gösterir
pure-ftpwho komutu seçenekleri
  • '-c': bu parametre çıktıyı html formatında verir herhangi bir web sunucusuna örneğin apache gibi yönlendirilebilir.

  • '-h': parametresi komut satırı seçenekleri özeti yardım ekranı da diyebiliriz.

  • '-n': ana bilgisayar adlarını çözümlemez, sadece (hızlı olarak) IP adreslerini gösterir.

  • '-s': çıkışı kabuk betikleri kolayca çözümlenebilir biçim (ama çok kullanıcı dostu değildir). Bu seçenek çok okunabilir değildir fakat kolay ayrıştırma için tasarlanmıştır.

  • '-w': çıktı komple HTML formatındadır tam sayfa olarak (web).

  • '-W': Çıktı hiçbir başlık ve hiçbir altbilgiye yer vermeyecek şekilde HTML ouşturur. Bu parametre ile gömülü olarak CGI, SSI veya PHP komut satır araları için uygundur.

  • '-x': XML formatında çıktı verir. Zaman, saniye ve dosya boyutları kolay okunabilmesi için kullanılabilir.

  • '-v': Metin modunda ayrıntılı çıktı. Ek bilgi boyutunu içerir. Dosya yüklendi / indiriliyor, yerel IP veya yerel ana bilgisayar adı ve Bağlantı noktası. Bu sanal konaklar için özellikle yararlıdır. Aşağıda örnek '-v' çıktısıdır:
+------+---------+-------+------+-------------------------------------------+
| PID  |  Login  |For/Spd| What |     File/Remote IP/Size(Kb)/Local IP      |
+------+---------+-------+------+-------------------------------------------+
| 9086 | j       | 00:04 |  DL  | linux-2.4.4.tar.bz2                       |
|  ''  |    ''   |  22K/s|  27% | ->                              localhost |
|  ''  |    ''   |       |      | Total size:    20859 Transfered:     5632 |
|  ''  |    ''   |       |      | <-                        localhost:21    |
+------+---------+-------+------+-------------------------------------------+