Pythontr

husonet | Tarih: 12.09.2014

Linux ftp kurulumu

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
ln -s /etc/pure-ftpd/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 |
+------+---------+-------+------+-------------------------------------------+