FTP (File Transmission Protocol) je protokol typu klient/server ur�en� pro p�enos soubor� mezi vzd�len�m serverem a lok�ln� stanic�. Je velmi jednoduch� a proto tak� velmi pou��van�. Tento protokol je definovan� v RFC 959. M� p�id�leny 2 well-known porty: 20 (datov�) a 21 (��d�c�). Nasleduj�c� sch�ma zn�zor�uje zp�sob komunikace mezi serverem a klientem:
------------- |/---------\| || User || -------- ||Interface|<--->| User | |\----^----/| -------- ---------- | | | |/------\| FTP Commands |/----V----\| ||Server|<---------------->| User || || PI || FTP Replies || PI || |\--^---/| |\----^----/| | | | | | | -------- |/--V---\| Data |/----V----\| -------- | File |<--->|Server|<---------------->| User |<--->| File | |System| || DTP || Connection || DTP || |System| -------- |\------/| |\---------/| -------- ---------- -------------PI zde znamen� protocol interpreter a DTPdata transfer process.
Server poslouch� na ��d�c�m
portu (obvykle 21), kde �ek� na p��choz� spojen� od klienta (z n�jak�ho vy���ho
portu). Pro komunikaci klienta se serverem se pou��vaj� kr�tk� p��kazy
maxim�ln� �ty�p�smenn� v�t�inou dopln�n� parametrem. Server na n� odpov�d�
trojcifern�m ��slem ur�uj�c�m k�d odpov�di dopln�n�m dal��m popisem.
P�ihl�en� klienta zaji��uj� p��kazy USER a PASS,
kter�mi se klient identifikuje v��i serveru.
Pou�it� p�ihla�ovac� jm�no ur�uje, ke kter�m soubor�m z�sk� klient pr�va.
Zvl�tn� postaven� m� p�ihla�ovac� jm�no anonymous, pro kter� FTP d�mon pracuje
obvykle v chrootovan�m prost�ed� a m�sto hesla po�aduje emailovou adresu.Pro
p�enos dat se na serveru otev�e datov� port (��d�c�-1), stejn� tak na klientsk�m
po��ta�i.
Samotn� p�enost dat je realizov�n TCP spojen�m nad datov�mi porty p��jemce a
odes�latele. Po zkon�en� p�enosu jsou datov� porty uzav�eny.
Dal�� d�le�it� p��kazy jsou:
Funk�nost b��c�ho FTP serveru lze snadno ov��it np��klad telnetem na port 21. Server by m�l vypsat �vodn� pozdrav a �ekat na dal�� p��kazy. Nalogujeme se p��kazy USER login, PASS password a server by m�l odpov�d�t kladn�m k�dem a ohl�sit User login logged in. Nyn� m��eme pou��t nap��klad p��kaz stat, kter� n�m vyp��e info o p�ipojen� a nastaven� p�enosu. Spojen� se ukon�uje p��kazem QUIT.
./configure make make installZ�kladn� instalace v�ak zahrnuje jen zlomek mo�nost�, kter� ProFTPD obshauje. Pokud pot�ebujeme n�kter� z voliteln�ch modul� pou�ijeme
./configure --with-modules=mod_name1:mod_name2
Sekce <Global> slou�� k nastaven� "defaultn�ch hodnot". Toto nastaven� lze pozd�ji zm�nit v jednotliv�ch sekc�ch.
V sekci <Anonymous> se definuje z�kladn� konfigurace anonymn�ho FTP serveru. Implicitn� server pracuje v chrootovan�m prost�ed�. Jako login pou�ijeme "anonymous", jako heslo emailovou adresu.
V sekci <Directory> se definuj� p��stupov� pr�va pro uveden� adres��.
Sekce <Limit> se pou��v� pro stanoven� omezen�, kdo a jak� p��kazy se mohou pou��vat.
Sekce <VirtualHost> slou�� k vytvo�en� a knfiguraci virtu�ln�ho FTP serveru.
P��klad konfigura�n�ho souboru:ServerName "My ProFTPD server" ServerType standalone Port 21 #standartni umaska, tak aby nove adresare nebyly zapisovatelne pro group a others Umask 022 TimeoutLogin 120 TimeoutIdle 600 TimeoutNoTransfer 900 TimeoutStalled 3600 #maximalni pocet potomku (funguje jen ve stadnalone modu) MaxInstances 30 User nobody Group nogroup #koren ftp stromu DefaultRoot korenovy_adresar/ ScoreboardPath /var/run/proftpd TransferLog /var/spool/syslog/proftpd/xferlog.legacy LogFormat default "%h %l %u %t \"%r\" %s %b" LogFormat auth "%v [%P] %h %t \"%r\" %s" LogFormat write "%h %l %u %t \"%r\" %s %b" #ve sech adresarich je mozne prepisovat soubory <Directory /*> AllowOverwrite on </Directory> #neni-li receno jinak, je vsude zakazano zapisovani <Limit WRITE> dENYall </Limit> <Global> DisplayLogin welcome.msg DisplayFirstChdir readme ExtendedLog /var/spool/syslog/proftpd/access.log WRITE,READ write,read ExtendedLog /var/spool/syslog/proftpd/auth.log AUTH auth #ExtendedLog /var/spool/syslog/proftpd/paranoid.log ALL default </Global> #zakladni konfigurace anonymniho FTP serveru as jednim upload adresarem <Anonymous korenovy_adresar/pub> <Limit LOGIN> AllowAll </Limit> MaxClients 5 "Sorry, max %m users -- try again later" User ftp Group ftp UserAlias anonymous ftp <Directory uploads/*> <Limit READ> DenyAll </Limit> <Limit STOR> AllowAll </Limit> </Directory> </Anonymous> #a priklad jednoho virtualniho FTP serveru <VirtualHost ftp.virtual.cz> ServerAdmin ftp_admin@virtual.cz ServerName "Jinde FTP server" MaxLoginAttempts 2 RequireValidShell no TransferLog /var/spool/syslog/proftpd/xferlog.www MaxClients 50 DefaultServer on DefaultRoot jiny_koren/ TimeoutLogin 240 TimeoutIdle 900 TimeoutNoTransfer 1200 <Limit ALL> Order Allow,Deny Allow .evil.net, .evil2.net Allow .dangerous.net Deny ALL </Limit> #private adresar jen pro hodne kamarady :-) <Directory jiny_koren/private> <Limit ALL> AllowUser kamarad1 AllowUser kamarad2 DenyAll </Limit> </Directory> </VirtualHost>
P��kazem rsync lze spustit jak d�mona (volba --daemon), tak klientsk� program. Op�t m��eme zvolit mezi spu�t�n�m ze super-serveru inetd nebo jako stand-alone d�monem. V prvn�m p��pad� je nutno p�idat do souboru /etc/services p�idat z�znam
rsync 873/tcp
K b��c�mu rsync serveru se lze p�ipojit pomoc� p��kazu rsync (tentokr�t bez volby --daemon). Obecn� p��kaz pro kop�rov�n� soubor� ze vzd�len�ho po��ta�e m��e vypadat n�sledov�
rsync [OPTIONS] [USER@]HOST::SRC [DEST]Pro kop�rov�n� soubor� se zachov�n�m link�, pr�v a vlastn�k� lze pou��t p��kaz:
rsync -avz foo:src/bar/ /tmpVolba -v (--verbose) n�m vyp��e v�ce informac�, -z (--compress) zajist�, �e bude pou�ita komprese a -a (--archive) dovol� zachovat p��stupov� pr�va atd.
motd file = /etc/motd max connections = 25 syslog facility = local3 [ftp] comment = ftp area path = /home/ftp read only = yes list = yes uid = nobody gid = nobody [tmp] comment = temporary file area path = /tmp read only = no list = yes hosts allow = 10.0.0.0/8 127.0.0.0/8 *.fi.muni.cz auth users = tridge, susan secrets file = /etc/rsyncd.secrets