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 |
+------+---------+-------+------+-------------------------------------------+