07 FTP Server

Serveri FTP

Ndryshe nga disa sherbime te tjera sherbimi i FTP kerkon dis aporta rrjeti qe te funksionoje ne menyre korrekte. Kur nje klient omocion nje lidhje me serverin FTP ai lidhet me porten 21 ne server, qe njihet edhe me emrin porta e komandave.

Kjo porte perdoret per te derguar komanda ne server. Te gjitha kerkesat per te dhena (data) nga serveri kthehet nga porta e te dhenave (data port).

Numri i portes per lidhjet e te dhenave dhe menyra se si inicializohen lidhjet e te dhenave varet nga menyra se si klienti e ben kerkesen ne menyren aktive apo pasive(active or passive mode)

Menyra aktive ( active mode)

Ne menyren aktive zbatohen keto hapa:

  1. Klienti lidhet me serverin ne porten 21 duke krijuar lidhjen e komandave

  2. Klienti ka gjeneruar nje porte me numer me te madh se 1024 dhe e ka derguar kete porte bashke me kerkesen per krijimin e lidhjes se komandes

  3. Serveri tenton te hape nje lidhje nga porta 20 e tij ( server_ip:20 -> client_ip:port) qe do te sherbeje si lidhje per te dhenat

  4. Nese nuk ka ndonje firewall qe e bllokon lidhjen atehere krijohet lidhja e te dhenave dhe trasmetohen te dhenat ne pergjigje te komandes se transmetuar ne lidhje e komandave

Mund te ndodhe qe ne kompjuterat kliente programet e mbrotjes nga viruset ose firewall te bllokojne per arsye sigurie kerkesat me destinacion porta e klientit.

- Menyra pasive ( passive mode)

Ne menyren pasive zbatohen keto hapa:

  1. Klienti lidhet me serverin ne porten 21 duke krijuar lidhjen e komandave

  2. Serveri krijon nje porte me numer me te madh se 1024 dhe ia dergon ate klientit

  3. Klienti tenton te hape nje lidhje drejt portes qe i dergoi serveri (client_ip:xx -> server_ip:port) qe do te sherbeje si lidhje per te dhenat

  4. Nese nuk ka ndonje firewall qe e bllokon lidhjen atehere krijohet lidhja e te dhenave dhe trasmetohen te dhenat ne pergjigje te komandes se transmetuar ne lidhje e komandave

Mund te ndodhe qe ne kompjuterat kliente programet e mbrotjes nga viruset ose firewall te bllokojne per arsye sigurie kerkesat me destinacion porta e klientit.

NGa njera ane menyra pasive thjeshtezon problemet me firewall e klienteve, por nga nga ana tjeter mund te veshtiresoje administrimin ne firewall e serverit pasi ai duhet te lejoje lidhje ne nje numer variabel portash. Megjithate mund te kufizojme numrin e portave te hapura ne firewall nese kufizojme me pare ne konfigurimin e serverit FTP numrin e portave jo te provilegjuara qe ai perdor per lidhjet pasive te te dhenave.

Serveri vsftp

Serveri vsftp eshte konceptuar qe ne fillim qe te jete i sigurte.

Seerveri vsftp instalon daemon e tij ne /usr/sbin/vsftpd. Skedaret qe perdor vsftp:

/etc/rc.d/init.d/vsftpd

Eshte skripti qe perdor komanda /sbin/service per te ngritur, ulur dhe ringritur sherbimin ( start, stop , restart)

/etc/pam .d/vsftpd

Sledari i konfigurimit te Pluggable Authentication Modules (PAM). Ky skedar percakton rregullat qe duhet te plotesoje nje user per te aksesuar serverin e ftp.

/etc/vsftpd/vsftpd.conf

Eshte skedari kryesor i konfigurimit te sherbimit te ftp.

/etc/vsftpd/user_list

Eshte nje skedar i cili ruan nje liste me perdorues te cilet nuk lejohet qe te logohen ne vsftp. Si rregull ky skedar perfshin perdoruesit root, bin, etj.

/etc/vsftpd/user_list

Ky skedar mund te konfigurohet qe te lejoje ose jo perdoruesit qe ndodhen ne te qe te kene akses ne serverin ftp apo jo. Kjo varet nga direktiva userlist_deny (YES/NO)

Direktica userlist_deny ndodhet ne skedarin /etc/vsftp/vsftpd.conf.

Nese perdoruesit ndodhen ne skedarin /etc/vsftpd/user_list atehere pavaresisht konfigurimit te userlist_deny , nuk mund te kene access tek ftp.

/var/ftp/

Kjo eshte dosja baze e serverit FTP. Ne kete dosje ndodhet edhe dosja pub qe sherben per perdoruesit anonim.

Kontrolli i sherbimit

Komandat me poshte na mundesojne qe te kontrollojme ekzekutimin e sherbimit

service vsftpd status , tregon statusin e sherbimit:

[root@localhost student]# service vsftpd status

vsftpd (pid 9306) is running...

[root@localhost student]#

Per te ulur sherbimin:

[root@localhost student]# service vsftpd stop

Shutting down vsftpd: [ OK ]

[root@localhost student]#

Per te ngritur sherbimin

[root@localhost student]# service vsftpd start

Starting vsftpd for vsftpd: [ OK ]

[root@localhost student]#

Per te restartuar sherbimin

[root@localhost student]# service vsftpd restart

Shutting down vsftpd: [ OK ]

Starting vsftpd for vsftpd: [ OK ]

[root@localhost student]#

Per te konfiguruar sherbimin qe te startoje automatikisht

[root@localhost student]# chkconfig vsftpd on

[root@localhost student]#

Parametrat e konfigurimit te vsftpd

Skedari kryesor i konfigurimit te vsftpd eshte /etc/vsftpd/vsftpd.conf

Te gjithe parametrat e konfigurimit ne kete skedar vendoset ne rresht me vete dhe ka sintaksen:

<direktive>=<vlere>

Hapesirat

Mos perdorni hapesira

Nuk duhet te kete hapesira midis emrit te direktives, operatorit te vleredhenies (=) dhe vleres.

Komentet

RReshtat qe permnbajne komente paraprihen nga shenja #

Disa nga direktivat kryesore jane:

Parametra te sherbimit

listen

Nese eshte i aktivizuar vsftpd ekzekutohet ne moden stand-alone. Per nje sjellje normale te serverit ky parameter e ka vleren YES.

session_support

Nese eshte i aktivizuar vsftpd tenton te ruaje sesionet e logimit per cdo perdorues nepermjet PAM (Pluggable Authentication Module), vlera default YES

Parametra te Log-in dhe Access-it

anonymous_enable

Nese e ka vleren YES atehere aktivizohet login per perdoruesit anonim. Perdoruesit anonymous dhe ftp lejohen te logohen ne server.

banned_email_file

Nese direktiva deny_email_enable e ka vleren YES, atehere banned_email_file percakton skedarin qe permban nje liste me password per userin anonim ( ne fakt adresa email) te cilat nuk lejohen te hyjne ne serverin ftp.

banner_file

Emri i skedarit i cili ruan nje tekst qe i shfaqet perdoruesve kur lidhen me serverin FTP (banner). Ky opsion prevalon mbi tekstin qe mund te ndodhet si vlere e direktives ftpd_banner

cmds_allowed

Percakton nje liste me komandat e kejuara te ndara me presje.

Te gjitha komandat qe nuk ndodhen ne kete liste nuk pranohen nga serveri

Nuk ka vlere default per kete direktive

deny_email_enable

Nese eshte YES cdo perdorues qe logohet me userin anonymous dhe perdor si password adresen e tij te email nuk do te mund te logohet nese adresa e tij e email ndodhet ne banned_email_file

ftpd_banner

Mban nje tekst i cili i shfaqet perdoruesve kur lidhem me serverin ftp

Si default vsftpd afishon banerin e tij default

local_enable

Kur eshte i aktivizuar predoruesit lokale mund te hyjne ne server.

pam_service_name

Ruan emrin e sherbimit te jashtem te autentikimit

userlist_deny

Mund te kete vleren YES ose NO. Nese e ka vleren YES atehere perdoruesit e listuar ne userlist_file nuk mund te logohen ne server. Nese vlera eshte NO atehere lista e perdoruesve qe ndodhen ne userlist_file do te kejohet te kete akses ne serverin ftp.

Perdoruesit te cilet kane access ne kete rast nuk duhet ndodhen ne skedarin ftpusers

Kjo direktive aplikohet vetem nese flitrimi i perdoruesve qe kane te drejte te hyjne ne server eshte aktivizuar me direktiven userlist_enable.

Si default te gjithe perdoruesit me perjashtim te atyre qe ndodhen ne skedarin ftpusers kane te drejte te hyjne ne sistem. Kjo sjellje mund te ndryshohet duke aktivizuar userlist me userlist_enable dhe duke percaktuar nese kjo liste do te jete ndaluese apo lejedhenese.

Nese vlera userlist_deny=NO atehere te gjithe perdoruesit nuk do te kene te drejte te hyjne ne serverin ftp. Perjashtim bejne ata perdorues qe jane listuar ne userlist_file. Ndalimi i aksesit te perdoruesve behet perpara se ata te vendosin password, gje qe kontribuon ne rritjen e nivelit te sigurise.

userlist_enable

Aktivizon filtrimin e perdoruesve sipas listes qe ndodhet ne userlist_file.

Nese userlist_deny=YES atehere perdoruesit nuk lejohen te hyjne ne server

Nese userlist_NO atehere perdoruesit qe lejohet te hyjne ne sistem jane vetem ata qe ndodhen ne userlist_file

userlist_file

Emri i skedarit qe ruan listen e perdoruesve qe perdoret nga direktiva userlist_enable dhe userlist_deny

Vlera default eshte /etc/vsftpd/user_list

Parametrat per perdoruesin anonim

Direktivat e meposhtme percaktojne parametrat e konfigurimit per perdoruesin anonim. Keto direktiva trajtohen vetem nese direktiva anonymous_enable=YES

anon_mkdir_write_enable

Kur eshte e aktivizuar ne koordinim edhe me direktiven write_enabled i lejohet perdoruesve anonime qe te krijojne direktori brenda nje direktorie prind mbi te cilen ka te drejta shkrimi ( write_enabled=YES)

anon_root

Percakton direktorine rrenje ne te cilen do te pozicionohet perdoruesi anonim pasi te hyje ne serverin ftp.

anon_upload_enable

Nese eshte aktivizuar ne koordinim me direktiven write_enabled i lejon perdoruesve anonime te ngarkojne skedare ne nje direktori mbi te cilen ka te drejta shkrimi.

anon_world_readable_only

Nese eshte e aktivizuar perdoruesit anonime lejohen te shkarkojne vetem skedara publike.

ftp_username

Percakton predoruesin lokal , kredencialet e te cilit perdoren per perdoruesin anonymous

Direktoria home e ketij perdoruesi eshte edhe direktoria baze e perdoruesit anonim kur lidhet me serverin ftp

no_anon_password

Nese eshte e aktivizuar perdoruesit anonim nuk i kerkohet fjalekalim.

Parametrat per perdoruesit lokale

Direktivat e meposhtme percaktojne menyren se si perdoruesit lokale hyjne ne server. Keto direktiva aplikohen vetem ne rast se direktiva local_enable=YES

chmod_enable

Kur eshte e aktivizuar komanda e FTP-se SITE CHMOD kejohet te perdoret nga perdoruesit. Kjo komande i lejon perdoruesit qe te ndryshojne te drejtat mbi skedaret

chroot_list_enable

Nese eshte e aktivizuar perdoruesit qe listohen ne skedarin qe percaktohte nga direktiva chroot_list_file vendosen ne nje ambjent te kufizuar ( chroot jail) qe percakton direktorine rrenje qe ata mund te shohin, duke mos patur mundesi te accessojne rrenjen e sistemit /.

Nese chroot_list_enable perdoret se bashku me direktiven chroot_local_user , perdoruesit e loguar nuk vendosen ne nje ambjent te kufizuar(chroot jail)

chroot_list_file

Percakton emrin e nje skedari i cili mban nje liste me perdorues qe perdoret ne rast se direktiva chroot_list_enable=YES

Vlera default eshte /etc/vsftpd/chroot_list

chroot_local_user

Kur eshte e aktivizuar perdoruesit lokale pozicionohen tek direktorite e tyre home

guest_enable

Te gjithe perdoruesit jo-anonim logohen si useri guest qe eshte perdoruesi lokal i percaktuar nga direktiva guest_username

guest_username

Percakton username e perdoruesit qe sherben si guest. Si default eshte ftp.

local_umask

Percakton masken per krijimin e skedareve.

Vlera default mund te jete 077 ose 022

Parametrat per direktorite

dirlist_enable

Lejon perdoruesit te listojne permbajtjen e direktorive

dirmessage_enable

Nese eshte e aktivizuar perdoruesit i shfaqet nje mesazh sa here hyne ne nje direktori e cila ka nje skedar mesazhi. Skedar i mesazhit duhet te jete brenda direktorise.

Emri i skedarit te mesazhit percaktohen ne direktiven message_file dhe si default eshte .message .

force_dot_files

Kur eshte e aktivizuar skedaret qe fillojne m enje pike (.) listohen ne shfaqen ne listimin e permbajtjes se direktorise me perjashtim te . dhe ..

hide_ids

Kur eshte e aktivizuar te gjithe listimet e direktorive tregojne si perdorues dhe grup per cdo skedar perdoruesin dhe grupin ftp

message_file

Ruan emrin e skedarit qe ruan mesazhin per cdo direktori. Perdoret kur eshte e aktivizuar direktiva dirmessage_enable

Vlera default eshte .message

text_userdb_names

Nese eshte e aktivizuar ne vend te UID dhe GID afishohen username(tekst) dhe grupi (tekst)

use_localtime

Udhezon klientin ftp qe te shfaqe oren lokale te kompjuterit ne vend te ores se serverit

Opsionet e transferimit te skedareve

download_enable

(YES/NO)

Lejon shkarkimin e skedareve

chown_downloads

YES/NO

Kur eshte e aktivizuar skedaret e ngarkuar nga perdoruesi anonim kane si pronar perdoruesin qe percaktohet ne direktiven chown_username

chown_username

Percakton userin( username) qe do te marre pronesine e skedareve te ngarkuar nga perdoruesit anonime

write_enable

YES/NO

Lejohen komandat FTP qe mund te ndryshojne skedaret dhe dosjet si: DELE (delete), RNFR (rename from) , STOR (store)

Parametrat e konfigurimit te rrjetit

accept_timeout

Percakton kohen maksimale te pritjes per nje klient qe perdor menyren pasive per te krijuar nje lidhje.Si default eshte 60.

anon_max_rate

byte/sekonde

Percakton shpejtesine maksimale te transferimit te te dhenave per perdoruesit anonime.

Vlera 0 do te thote qe nuk ka limit

connect_from_port_20

YES/NO

Kerkon qe vsftpd te ekzekutohet me privilegjet e nevojshme per te hapur porten 20 ne lidhjet ftp aktive.

connect_timeout

sekonda

Percakton kohen maksimale brenda se ciles nje klient ne lidhjet aktive duhet ti pergjigjet nje lidhje te dhenash.

data_connection_timeout

sekonda

Percakton kohen maksimale qe lejohet qe nje transferim te dhenash mund te ndaloje. Nese kjo kohe kalon atehere mbyllet lidhja me klientin.

ftp_data_port

Percakton numrin e portes ne lidhjet aktive qe perdoret nga serveri per lidhje e te dhenave

Kjo direktive aplikohet ne rast se direktiva connect_from_port_20=YES.

Default eshte porta 20

idle_session_timeout

sekonda

Percakton kohen e pasivitetit ne lidhjen e komandave.

Default eshte 300

listen_address

Percakton adresen IP ne te cilen vsftpd degjon per lidhje nga rrjeti.

listen_port

Percakton porten ne te cilen degjon vsftpd. Si default eshte porta 21

local_max_rate

Percakton maksimumin e shpejtesise me te cilen te dhenat transmetohen per lidhjet e perdoruesve lokale me serverin

max_clients

Percakton numrin maksimale te klienteve qe lidhen njekohesisht ne server

max_per_ip

Percakton numrin maksimal te klienteve qe mund te lidhen nga e njejta IP klienti

pasv_enable

YES/NO

Aktivizon pranimin e lidhje pasive

masv_max_port

Percakton numrin maksimal te portes per lidhjet pasive

1024< porta < masv_max_port < 65535

pasv_min_port

Percakton numrin minimal te portes per lidhje pasive

1024< pasv_min_port<porta < masv_max_port < 65535

Shenim

Dy parametrat e mesiperm lehtesojne konfigurimin e firewall ne server

port_enable

Sherben per te percaktuar qe lejohen lidhjet ne moden aktive