ftp_posluzitelj

12
FTP poslužitelji 1. Uvod File Transfer Protocol (FTP) je vrlo popularna Internet usluga koja omogućava prenošenje datoteka između dva računala na Internetu ili u lokalnoj mreži. U sklopu testiranja poslužitelja za SOHO odabrali smo dva vrlo popularna ftp poslužitelja (Proftpd i Wu-ftpd) koji se već nalaze kao gotovi paketi u svim Linux distribucijama. 2. PROFTPD 2.1. Instalacija U Debian distribuciji Proftpd se instalira pomoću programa Dselect koji je opisan u projektnoj dokumentaciji pod nazivom "Korištenje besplatnog softvera u školama", rev 2.0, elaborat 195/01-1, LSS-FER-ZESOI, koja se nalazi na adresi http://pingvin.carnet.hr/linux_u_obrazovanju/projekt /prva_etapa/linux_unix_operativni_sustavi_sadrzaj.html . Paket se nalazi u sekciji OPT-NET i zove se proftpd. Ako vam je teško pronaći paket u listi možete koristiti tipku / za pretraživanje liste po imenu paketa. Pritisnite tipku / (slash), upišite ime paketa i Dselect će pronaći prvi paket u nizu koji u svome nazivu sadrži tekst koji ste upisali. Sljedeći paket u nizu koji sadrži isti tekst Dselect će prikazati ako pritisnete tipku \. (backslash). Nakon instalacije potrebno je osigurati da se proftpd pokreće pri podizanju sustava, što je u većini situacija podešeno automatski. Ukoliko to nije slučaj potrebno je u neki od etc/rc.x (npr. rc.boot ili rc.local) direktorija dodati datoteku koja će predstavljati simboličku vezu na /etc/init.d/proftpd datoteku, što će omogućiti pokretanje proftpd poslužitelja pri podizanju sustava. U tu svrhu potrebno je u npr. /etc/rc.local ili nekom drugom direktoriju izvršiti sljedeće naredbe: Ove naredbe će u spomenutom direktoriju postaviti nove datoteke, koje će predstavljati simboličke vezu na proftpd datoteku koja se nalazi u /etc/init.d, i koja zaista obavlja postupke pokretanja i zaustavljanja servisa. Broj xx predstavlja proizvoljno odabrani nezauzeti broj od 00 do 99 kojim se definira koji će se po redu spomenuti servis unutar istog direktorija pokrenuti, s time da će se skripte sa manjim brojem izvršavati prije onih sa većim brojem. Datoteka koja počinje sa velikim slovom S (start), omogućit će pokretanje navedenog servisa, dok će datoteka kojoj ime počinje sa K (kill) omogućiti zaustavljanje istog servisa. Treba napomenuti da ovakav pristup vrijedi i za sve ostale servise koji se žele pokretati na ovakav način, s time da se u tom slučaju u etc/init.d direktoriju mora nalaziti skripta sa imenom tog drugog servisa, koja će omogućiti njegovo # ln -s /etc/init.d/proftpd Sxxproftpd # ln -s /etc/init.d/proftpd Kxxproftpd

Upload: api-3759825

Post on 07-Jun-2015

23 views

Category:

Documents


2 download

TRANSCRIPT

FTP poslužitelji 1. Uvod

File Transfer Protocol (FTP) je vrlo popularna Internet usluga koja omogućava prenošenje datoteka između dva računala na Internetu ili u lokalnoj mreži. U sklopu testiranja poslužitelja za SOHO odabrali smo dva vrlo popularna ftp poslužitelja (Proftpd i Wu-ftpd) koji se već nalaze kao gotovi paketi u svim Linux distribucijama.

2. PROFTPD

2.1. Instalacija

U Debian distribuciji Proftpd se instalira pomoću programa Dselect koji je opisan u projektnoj dokumentaciji pod nazivom "Korištenje besplatnog softvera u školama", rev 2.0, elaborat 195/01-1, LSS-FER-ZESOI, koja se nalazi na adresi http://pingvin.carnet.hr/linux_u_obrazovanju/projekt /prva_etapa/linux_unix_operativni_sustavi_sadrzaj.html. Paket se nalazi u sekciji OPT-NET i zove se proftpd. Ako vam je teško pronaći paket u listi možete koristiti tipku / za pretraživanje liste po imenu paketa. Pritisnite tipku / (slash), upišite ime paketa i Dselect će pronaći prvi paket u nizu koji u svome nazivu sadrži tekst koji ste upisali. Sljedeći paket u nizu koji sadrži isti tekst Dselect će prikazati ako pritisnete tipku \. (backslash). Nakon instalacije potrebno je osigurati da se proftpd pokreće pri podizanju sustava, što je u većini situacija podešeno automatski. Ukoliko to nije slučaj potrebno je u neki od etc/rc.x (npr. rc.boot ili rc.local) direktorija dodati datoteku koja će predstavljati simboličku vezu na /etc/init.d/proftpd datoteku, što će omogućiti pokretanje proftpd poslužitelja pri podizanju sustava. U tu svrhu potrebno je u npr. /etc/rc.local ili nekom drugom direktoriju izvršiti sljedeće naredbe:

Ove naredbe će u spomenutom direktoriju postaviti nove datoteke, koje će predstavljati simboličke vezu na proftpd datoteku koja se nalazi u /etc/init.d,i koja zaista obavlja postupke pokretanja i zaustavljanja servisa. Broj xx predstavlja proizvoljno odabrani nezauzeti broj od 00 do 99 kojim se definira koji će se po redu spomenuti servis unutar istog direktorija pokrenuti, s time da će se skripte sa manjim brojem izvršavati prije onih sa većim brojem. Datoteka koja počinje sa velikim slovom S (start), omogućit će pokretanje navedenog servisa, dok će datoteka kojoj ime počinje sa K (kill) omogućiti zaustavljanje istog servisa. Treba napomenuti da ovakav pristup vrijedi i za sve ostale servise koji se žele pokretati na ovakav način, s time da se u tom slučaju u etc/init.d direktoriju mora nalaziti skripta sa imenom tog drugog servisa, koja će omogućiti njegovo

# ln -s /etc/init.d/proftpd Sxxproftpd # ln -s /etc/init.d/proftpd Kxxproftpd

pokretanje i zaustavljanje. Također je u nekom od etc/rc.x direktorija potrebno napraviti simboličke veze na način kako je to upravo pokazano, što će omogućiti pokretanje i zaustavljanje određenog servisa prilikom podizanja, odnosno gašenja sustava. Naravno, uvijek postoji mogućnost manualnog pokretanja pojedinih servisa, izvršavanjem odgovarajuće komande unutar /etc/init.d direktorija. Sintaksa je:

Prilikom instalacije, skripta se automatski postavlja u odgovarajući direktorij, tako da ju nije potrebno ručno kopirati. U slučaju instalacije Proftpd poslužitelja iz Mandrake distribucije najbolje je koristiti Software Manager (paket se također zove proftpd). Potrebno je pripaziti da već nemate instaliran neki drugi FTP poslužitelj (anonftp ili wu-ftpd) jer će instalacijski program prijaviti grešku i prekinuti instalaciju. U tom slučaju potrebno je deinstalirati postojeći ftp poslužitelj i ponoviti instalaciju ftpd-a. U Mandrake Control Center-u pod sekcijom Sustav->Servisi podešava se pokretanje proftp-a pri podizanju sustava (opcija je već uključena nakon instalacije).

Slika 2.1 Pokretanje proftpd poslužitelja iz Mandrake Control Centra

Kod FreeBSD-a program je potrebno instalirati iz tar.gz paketa koji se nalazi na na priloženom CD-u sa besplatnim softverom. Nakon što paket otpakirate sa naredbom tar -xzvf proftpd-1.2.2.tar.gz

#./ime_servisa (start | stop | restart)

potrebno je u direktoriju koji je nastao otpakiravanjem pokrenuti konfiguraciju sa ./configure i instalirati paket sa make i make install. Postupak instalacije tar.gz paketa detaljnije je opisan u projektnoj dokumentaciji "Osnove korištenja Linux i Unix operativnih sustava", rev 2.0, elaborat 195/01-1, LSS-ZESOI-FER, koja se nalazi na adresi http://pingvin.carnet.hr/linux_u_obrazovanju/projekt /prva_etapa/linux_unix_operativni_sustavi_sadrzaj.html. Treba napomenuti da će upravo opisana instalacija i konfiguracija proftpd poslužitelja rezultirati standalone modom rada ovog poslužitelja, te će u tom slučaju kako ćemo kasnije vidjeti u proftpd.conf datoteci polje ServerType sadržavati vrijednost standalone. Ukoliko se želi postići da se proftpd pokreće putem inetd poslužitelja, polje ServerType sadržavati će u tom slučaju vrijednost inetd i u tom slučaju neće biti potrebno kreiranje ranije opisanih simboličkih veza.

2.2. Konfiguracija

Konfiguracija Proftpd-a na konzoli obavlja se editiranjem konfiguracijske datoteke proftpd.conf pomoću tekst editora (joe, emacs ili vi). Datoteka se obično nalazi u /etc direktoriju (kod svih operacijskih sustava) i nakon instalacije izgleda ovako:

# This is a basic ProFTPD configuration file (rename it to # 'proftpd.conf' for actual use. It establishes a single server # and a single anonymous login. It assumes that you have a user/group # "nobody" and "ftp" for normal operation and anon.

ServerName "ProFTPD Default Installation" ServerType standalone

# Port 21 is the standard FTP port. Port 21 # Umask 022 is a good standard umask to prevent new dirs and files # from being group and world writable. Umask 022

# To prevent DoS attacks, set the maximum number of child processes # to 30. If you need to allow more than 30 concurrent connections # at once, simply increase this value. Note that this ONLY works # in standalone mode, in inetd mode you should use an inetd server # that allows you to limit maximum number of processes per service # (such as xinetd) MaxInstances 30

# Set the user and group that the server normally runs at. User nobody Group nobody

# Normally, we want files to be overwriteable.

Funkcije pojedinih linija u konfiguracijskoj datoteci su sljedeće:

ServerName - definira ime poslužitelja koje će se prikazati korisniku prilikom spajanja na ftp deamon. ServerType - ova linija ima dvije opcije, inetd ili standalone. Ovisno o odabranoj opciji proftpd će se pokretati putem inetd poslužitelja ili kao samostalan program. Ukoliko se ovdje odabere inetd opcija, tada je potrebno unijeti i odgovarajuće promjene u inetd.conf datoteku. Port - definira port na kojemu će proftpd slušati mrežne zahtjeve (defaultport za ftp je 21). Naredba je važeća samo ako proftpd radi u standalone modu. Umask - definira masku (ovlasti za čitanje, pisanje...) koju će imati datoteke koje se prenesu ftp vezom. MaxLoginAttempts - definira maksimalni broj pokušaja autentikacije korisnika. Ukoliko se prekorači dozvoljena granica definirana ovom direktivom, sesija se prekida, i u log datoteku se bilježi odgovarajuća informacija, koja upućuje na eventualni pokušaj neautoriziranog pristupa FTP servisu. Vrijednost ovog polja ne bi smjela biti veća od 3. User - definira korisnika pod kojim će proftpd biti pokrenut, a inicijalno je to root korisnik, što je sa stanovišta sigurnosti nepoželjno. Group - definira korisničku grupu pod kojom će biti pokrenut proftpd. Inicijalno je to korisnička grupa kojoj pripada root korisnik. AllowOverwrite - dozvoljava brisanje postojećih datoteka ukoliko novostvorene datoteke imaju isto ime.

Od potrebnijih kofiguracijskih parametara još je potrebno navesti:

MaxClients - definira maksimalan broj klijenata koji mogu biti istovremeno spojeni na poslužiteljsko računalo. Navodi se ili broj ili opcija none koja uklanja sva ograničenja. Moguće je definirati i poruku koju će primiti klijent u slučaju prekoračenja broja konekcija. Npr. sljedeća konfiguracija MaxClients 5 "Sorry, the maximum number of allowed users are already connected (%m)" vraća klijentu poruku 530 Sorry,the maximum number of allowed users are already connected (5). Vrijednost koja će se ovdje odabrati ovisiti će ponajviše o performansama poslužiteljeskog računala i njegovoj namjeni, a preporučuju se vrijednosti između 10-30 klijenata. MaxClientsPerHost - postavlja ograničenje na broj konekcija sa istog računala. MaxClientsPerHost 1 "Sorry, you may not connect more than one time." Opcija none ukloniti će sva ograničenja isto kao kod MaxClients direktive.

<Directory /*> AllowOverwrite on </Directory>

Vrijednost ovog parametra uobičajeno se postavlja na vrijednost 1, ukoliko se ne zahtjeva drugačije. TimeoutIdle <broj> - definira koliko sekundi će poslužitelj čekati (prije nego što prekine vezu) ako nema signala na data ili control linijama. Broj 0isključuje timer, što nije preporučljivo jer u slučaju prekida veze proces ostaje pokrenut beskonačno. Uobičajene vrijednosti su između 800 i 1200 sekundi. TimeoutLogin <broj> - Postavlja vrijeme unutar kojega se klijent mora logirati (upisati ispravan username i password) inače se prekida veza. Uobičajene vrijednosti su između 300 i 600 sekundi. TimeoutNoTransfer <broj> Vrijeme koje će poslužitelj čekati od trenutka logiranja korisnika, pa do izdavanja prve naredbe. Ukoliko se naredba ne izda u određenom vremenu veza se prekida. Uobičajene vrijednosti su između 300 i 600 sekundi.

Ovo su najvažniji konfiguracijski parametri koji su u osnovi dovoljni za normalan rad ftp poslužitelja. Ostale parametre možete pronaći na adresi http://www.va.pubnix.com/man/proftpd/Configuration.html , ili u manual stranicama (man proftpd). U grafičkom sučelju postoji nekoliko aplikacija za podešavanje proftpd-a (GProFTPD i kproftpd) i one se nalaze na CD-u sa besplatnim softverom. Aplikacije je potrebno instalirati postupkom za instalaciju tar.gz paketa (pogledati "Osnove korištenja Linux i Unix operativnih sustava", rev 2.0, elaborat 195/01-1, LSS-ZESOI-FER).

Slika 2.2 GProFTPD grafičko sučelje

Proftpd je moguće jako lagano podesiti i u programu Linuxconf u sekciji Networking-> ServerTasks. Linuxconf je vrlo kvalitetan i moćan programski alat, i vjerojatno ćete ga već imati instaliranog na svom sustavu, budući da omogućuje prilično jednostavno podešavanje velikog broja servisa instaliranih na vašem računalu. Njegova prednost pred ostalim alatima za konfiguraciju je ta, što osim u grafičkom radi i u tekstualnom modu, što ga čini najpopularnijim alatom za konfiguraciju i administraciju u okolinama gdje nije instalirano X grafičko okružje. Osim toga, vrlo je intuitivan i jednostavan, te samim time prilagođen i manje naprednim korisnicima, kako bi im se na taj način olakšalo obavljanje jednostavnijih administrativnih zadaća. Na slikama 2.3 i 2.4 prikazani su glavni meniji ovog programa u grafičkom i tekstualnom modu.

Slika 2.3 Linuxconf program za konfiguraciju (grafički mod)

Slika 2.4 Linuxconf program za konfiguraciju (tekstualni mod)

3. WU-Ftpd

3.1. Instalacija

Instalacija wu-ftpd-a ne razlikuje se od instalacije proftpd-a osim u imenu paketa, u ovom slučaju ime paketa je wu-ftpd. Kod FreeBSD operativnog sustava program se instalira pomoću aplikacije sysinstall koja se nalazi u direktoriju /stand. Nakon pokretanja sysinstall-a potrebno je odabrati opciju Configure -> Packages -> CD-ROM, pa u poglavlju FTP pritiskom na tipku Space odabrati wu-fpd i nakon toga install packages. Potrebno je napomenuti da wu-ftpd za svoj rad isključivo zahtjeva inetd ili xinetd poslužitelje, pa je potrebno provjeriti da li ih imate instalirane, što bi redovito trebao biti slučaj budući da ti paketi spadaju u obavezne pakete kod instalacije sustava. Nije moguć rad wu-ftpd poslužitelja u standalone modu. Budući da inetd upravlja radom wu-ftpd-a, u Madrake Control Centre-u nećete moći podešavati pokretanje i zaustavljanje poslužitelja, kao kod proftpd-a. Mandrake Control Centre će pokazivati da je poslužitelj ugašen i ako ga pokušate pokrenuti, prikazati će poruku Unrecognized Service. Bez obzira na to poslužitelj će normalno raditi, a najbolji način da to provjerite je da se spojite ftp klijentom sa nekog drugog računala u mreži. Prilikom spajanja kao poslužitelj će vam se javiti wu-ftpd.

3.2. Konfiguracija

Konfiguracija wu-ftpd-a nalazi se u konfiguracijskoj datoteci ftpaccess u /etc direktoriju. Osim ove datoteke koja sadrži glavne konfiguracijske parametre postoje i datoteke ftpconversions, ftphosts i ftpservers koje služe za napredniju konfiguraciju i nećemo ih pobliže opisivati. Detaljne informacije o kreiranju ovih datoteka možete pronaći u njihovim manual stranicama (man ftpconversions, man ftphosts i man ftpservers). Ovako izgleda jedna uobičajena ftpaccess datoteka :

class all real,guest,anonymous *

email root@localhost

loginfails 5

readme README* login readme README* cwd=*

message /welcome.msg login message .message cwd=*

compress yes all tar yes all chmod no guest,anonymous delete no guest,anonymous

Funkcije pojedinih parametara su sljedeće:

class <class> <typelist> <addrglob> [<addrglob> ...] Definira klasu korisnika (<class>) koji se spajaju na poslužitelj. Ako wu-ftpd ne može identificirati korisnika (koji se želi spojiti) niti sa jednom od klasa, zahtjev za spajanjem će biti odbijen. typelist je lista ključnih riječi odvojenih zarezima i može se sastojati od anonymous, guest i real ključnih riječi. Ovisno o tome koja ključna riječ je navedena poslužitelj će identificirati novog korisnika sa jednom od tih grupa (npr. za real, korisnika će tražiti pod stvarnim korisnicima na tom računalu). addrglob je adresa računala sa kojeg se klijent spaja, a može biti IP adresa ili ime domene (dozvoljen je wildcard *, npr. *.fer.hr). Ako addrglob počinje sa znakom / onda predstavlja ime datoteke u kojoj se nalaze adrese korisnika koji se smiju spojiti. email <name> Pod ovim parametrom upisuje se e-mail adresa administratora. loginfails <number> Predstavlja dozvoljeni broj pogrešnih spajanja na poslužitelj. Ako se klijent krivo pokuša spojiti (pogrešno korisničko ime ili zaporka) više od definiranog broja puta, poslužitelj će prekinuti vezu. message <path> {<when> {<class> ...}} Pokazuje stazu do datoteke u kojoj se nalazi poruka koju će proftpd prikazati klijentu prilikom spajanja ili promjene direktorija (opcija when). Moguće vrijednosti za polje when su LOGIN i CWD=ime_direktorija. Pomoću class opcije definiramo za koje grupe korisnika će se poruka prikazati. Detaljno objašnjenje message datoteke nalazi se u man ftpaccess. compress <yes|no> <classglob> [<classglob> ...] tar <yes|no> <classglob> [<classglob> ...] Uključuje ili isključuje tar i compress opcije za klase korisnika navedene u classglob. chmod <yes|no> <typelist> delete <yes|no> <typelist> overwrite <yes|no> <typelist> rename <yes|no> <typelist> umask <yes|no> <typelist> Ova grupa opcija dozvoljava ili zabranjuje navedene funkcije za manipulaciju datotekama. Pod opcijom typelist je moguće navesti ključne riječi anonymous, real, guest i class=ime_klase koje definiraju na koje grupe korisnika se odnosi dozvola. Inicijalno su uključeni svi korisnici.

overwrite no guest,anonymous rename no guest,anonymous

log transfers anonymous,real inbound,outbound

shutdown /etc/shutmsg

passwd-check rfc822 warn

log transfers <typelist> <directions> Omogućuje zapisivanje podataka o prijenosu datoteka u log datoteku (/var/log/xferlog). typelist određuje za koju grupu korisnika će se log-ovi upisivati (real, anonymous ili guest), a directions definira da li će se upisivati podaci za upload ili download (u polje je potrebno upisati outbound ili inbound). shutdown <path> Pokazuje na datoteku u koju su upisani podaci o načinu na koji se poslužitelj gasi. Značenje pojedinih linija u toj datoteci pobliže je upisano u manual stranicama ftpaccess. Jednostavan program ftpshut koji dolazi u paketu sa wu-ftpd-om koristi seza generiranje ove datoteke. passwd-check <none|trivial|rfc822> (<enforce|warn>) Definira nivo provjere zaporke kod anonimnog spajanja. Opcija none ne provjerava zaporku, trivial zahtjeva postojanje znaka @ u zaporci, a rfc822 znači da zaporka mora odgovarati rfc822 standardu. warn šalje upozorenje korisniku ali mu dopušta logiranje, a enforce šalje upozorenje i odbija spajanje korisnika ako zaporka nije dobra.

Ovo je opis osnovnih konfiguracijskih parametara wu-ftpd-a. Za napredniju konfiguraciju potrebno je proučiti manual stranice wu-ftpd-a (man ftpd i man ftpaccess). Unutar wu-ftpd paketa dolazi i aplikacija kwuftpd koja omogućuje konfiguriranje poslužitelja u grafičkom sučelju.

Slika 3.1 kwuftpd grafičko sučelje

Kao i proftpd, wu-ftpd je moguće konfigurirati u linuxconf-u, pogotovo

ukoliko na vašem računalu nije instalirano grafičko sučelje.

4. Zaključak

Proftpd je relativno lagan za konfiguraciju i mogućnost rada u standalone modu svakako ga stavlja na prvo mjesto ako namjeravate imati poslužiteljsko računalo kojemu će često pristupati veliki broj osoba. Wu-ftpd se preporučuje ukoliko posjedujete računalo kojemu je potrebno tek povremeno pristupati, jer radom unutar inetd deamona štedi memoriju i procesorsko vrijeme. Općenito se za FTP poslužitelje može preporučiti da se pokreću putem inetd ili xinetd poslužitelja, s obzirom na nešto manju učestalost njihovog korištenja, kako bi se na taj način uštedjeli raspoloživi računalni resursi. Tijekom testiranja ova dva poslužitelja pokazalo se da je konfiguracija proftpd poslužitelja nešto intuitivnija i jednostavnija u odnosu na wu-ftpd, budući da za svoj rad koristi samo jednu, prilično jednostavnu konfiguracijsku datoteku. Što se brzine rada tiče testovi su pokazali da oba poslužitelja rade podjednako brzo i da brzina rada najviše ovisi o propusnosti mreže i jačini računala, a ne o samom programu.