Vsftpd kasutamine Debian Lennyga

Allikas: Kuutõrvaja
Redaktsioon seisuga 1. august 2009, kell 10:51 kasutajalt Imre (arutelu | kaastöö) (vsftpd serveri seadistamise võimalused)

Sissejuhatus

vsftpd http://vsftpd.beasts.org/ on eeskujulik ftp serveri tarkvara.

Tarkvara paigaldamine

Debian Lenny paketihaldus sisaldab vsftp tarkvara v. 2.0.7 ja paigaldamiseks sobib öelda

 # apt-get install vsftpd

Tarkvara paigaldamise käigus lisatakse süsteemi kasutaja ftp, kes kuulub gruppi nogroup.

Debiani pakett sisaldab SSL/TLS tuge.

Serveri seisukohast ei ole see oluline, aga praktiliselt ehk on katsetamiseks abiks ka paigaldada ftp serverisse ftp klient, operatsioonisüsteem Debian vaikimisi ei sisalda ftp kliendi, paigaldamiseks sobib öelda nt

 # apt-get install ftp

vsftpd serveri seadistamise võimalused

vsftpd serverit saab käivitada

  • inetd superserveri abil
  • iseseisva deemonina

vsftpd kasutajad jagunevad kolme gruppi

  • anonüümne kasutaja
  • lokaalsed kasutajad - operatsioonisüsteemi NSS süsteemile teadaolevad kasutajad, nt need, mis esinevad 'getent passwd' väljundid
  • virtuaalsed kasutajad - kasutajad, mis on olemas tänu /etc/pam.d/vsftpd mooduli abil välise kasutajate andmebaasi ühendusele, nt LDAP kataloog ja mis samal ajal puuduvad NSS süsteemist

Lokaalsete ja virtuaalsete kasutajate puhul tuleb tähele panna, et kui sama LDAP kataloogi vastu on seadistatud käima nii NSS kui /etc/pam.d/vsftpd, siis muidu virtuaalsed kasutajad on lokaalsed.

Üks oluline virtuaalsete ja lokaalsete kasutajate erinevus seisneb selles, milline on kasutaja kodukataloogi nimi

  • virtuaalsetel kasutajatel saab kodukataloogiks seadistada /katalooginimi/virtuaalse-kasutaja-nimi kujul esineva katalooginime
  • lokaalsetel kasutajatel on kodukataloogiks /etc/passwd failis näidatud kodukataloog või kui NSS on seadistatud vastu LDAP'i siis nt homeDirectory atribuudi väärtus

vsftpd serverit on kombeks käivitada mingil viisil järgnevatest

  • anonüümne ftp server andmete alla kopeerimiseks - kõik ftp serveri kasutajad on ftp failisüsteemi operatsioonide jaoks teisendatud üheks süsteemi kasutajaks, nt ftp ning sellele kasutajale on lubatud liikuda nn ftp serveri juurfailisüsteemiks näidatud kataloogi all ning kopeerida faile; selliselt seadistatakse tavaliselt nt tarkvara ftp mirrorid
  • anonüümne ftp server andmete alla ja üles kopeerimiseks - sarnane eelmisele kuid teatud kataloogidesse saab anonüümne kasutaja kopeerida ka andmeid ülesse; tavaliselt on need nn pimedad kataloogid, st selliselt töötavate kataloogide nime on vaja eelnevalt teada kusjuures ftp serveri kasutaja ei saa katalooge juurde moodustada ning ei saa kord üles kopeeritud andmed kustutada
  • kasutajaid autentiv ftp server - ftp server autendib kasutajaid, kuid muul viisil käitub sarnaselt anonüümsele ftp serverile; nt autenditud kasutajad saavad ainult andmeid alla kopeerida; selliselt sobib seadistada mingi piiratud ligipääsuga andmete jagamine kui otsustatakse kasutada ftp protokolli ligipääsuks
  • kasutajaid autentiv ftp server - kasutaja sisse ftp serverisse sisse logida oma kasutajanime ja parooliga ning seejärel toimetada oma personaalses kodukataloogis kuhu teistel ftp serveri kasutajatel puudub ligipääs; andmeid on võimalik üles ja alla laadida, moodustada katalooge ning kustutada andmeid serverist; selliselt seadistatakse tavaliselt käima nt veebimajutuse süsteemide ligipääsukontod kui otsustatakse kasutada ftp protokolli ligipääsuks

Anonüümse vsftpd serveri seadistamine

Vaikimisi vsftpd seadistusfail /etc/vsftpd.conf vastab anonüümse ligipääsuga ftp serverile, st ftp server on selliste omadustega

  • serverist saavad kopeerida andmeid anonüümsed kasutajad (sisselogimiseks tuleb traditsiooniliselt sisestada kasutajanimi ftp ning parooliks kirjutada oma eposti aadress või niisama enteriga mööda minna)
  • vaikimisi serveeritakse faile üle ftp protokolli ftp kasutaja kodukataloogist /home/ftp
  • lokaalne ega virtuaalne kasutaja ei saa sisse logida
 # egrep -v "^$|^#" vsftpd.conf
 listen=YES
 anonymous_enable=YES
 dirmessage_enable=YES
 xferlog_enable=YES
 connect_from_port_20=YES
 secure_chroot_dir=/var/run/vsftpd
 pam_service_name=vsftpd
 rsa_cert_file=/etc/ssl/certs/vsftpd.pem

Kataloogi saab muuta muutes /etc/passwd failis ftp kasutaja kodukataloogi asukohta.

Logi tekib faili

 # cat /var/log/vsftpd.log
 Fri Jul 31 19:49:04 2009 [pid 24044] CONNECT: Client "127.0.0.1"
 Fri Jul 31 19:49:06 2009 [pid 24043] [ftp] OK LOGIN: Client "127.0.0.1", anon password "?"

Virtuaalsete kasutajatega vsftpd serveri seadistamine

Virtuaalseteks vsftpd kasutajateks nimetatakse selliseid kasutajaid, mida pole kirjeldatud ftp serveri /etc/passwd failis, õigemini, mida ei tea NSS teenus, aga mis esinevad nt /etc/pam.d/vsftpd kaudu kättesaadavaks tehtud andmebaasis, nt LDAP kataloogis.

Olgu eesmärgiks selliste omadustega vsftpd serveri seadistamine

  • sisse logida saavad virtuaalsed kasutajad, nt LDAP kataloogist
  • sisselogitud kasutaja saab toimetada oma kodukataloogis
  • sisselogitud kasutaja saab faile serverisse kopeerida
  • anonüümne kasutaja ei saa serverisse sisse logida

Nt selline seadistusfail sobib eesmärgi täitmiseks

 # egrep -v "^$|^#" vsftpd.conf
 listen=YES
 anonymous_enable=NO
 local_enable=YES
 write_enable=YES
 local_umask=022
 anon_mkdir_write_enable=NO
 anon_other_write_enable=NO
 dirmessage_enable=YES
 xferlog_enable=YES
 connect_from_port_20=YES
 chroot_local_user=YES
 secure_chroot_dir=/var/run/vsftpd
 pam_service_name=vsftpd
 virtual_use_local_privs=YES

kusjuures tarvilik on sobiv LDAP kataloogi ja selle kataloogi kliendiks olemise seadistus, mida on kirjeldatud palas OpenLDAP kasutamine Debianiga ning lisaks sellise sisuga /etc/pam.d/vsftpd seadistusfail

 # cat /etc/pam.d/vsftpd
 auth       required   pam_ldap.so
 account    required   pam_ldap.so

Mitme vsftpd serveri kasutamine ühes arvutis

TODO

SSL/TLS vsftpd serveri seadistamine

TODO

Kasulikud lisamaterjalid