User Tools

Site Tools


sermn_wiki:userpages:marta:ftp

This is an old revision of the document!


Servidor FTP amb ProFTPd

FTP (File Transfer Protocol) és un protocol de xarxa per transferència de fitxers entre diferents sistemes, basat en l'arquitectura client-servidor. Des d'un equip client es pot connectar a un servidor per descarregar arxius des d'ell o bé per enviar-li arxius, independentement del sistema operatiu utilitzat a cada equip.

Un servidor FTP és un programa que s'executa en un servidor. La seva funció és permetre l'intercanvi de dades entre diferents servidors i/o ordinadors.

Sovint, els servidors FTP no es troben als ordinadors personals, per tant un usuari utilitzarà el FTP per connectar-se remotament a un servidor i així intercanviar informació amb ell.

Configuració

A continuació es mostra el contigunt del fitxer de configuració del servidor FTP

General

   Include		  /etc/proftpd/modules.conf
   AuthPAM		  off
   UseIPv6		  off
   
   ServerName		  "cie-58-175"
   ServerType		  standalone
   DeferWelcome	  off
   
   MultilineRFC2228	  on
   DefaultServer	  on
   ShowSymlinks	  on
   
   TimeoutNoTransfer	  600
   TimeoutStalled	  600
   TimeoutIdle	  1200
   
   DisplayLogin	  welcome.msg
   DisplayFirstChdir	  .message
   ListOptions	  "-l"
   
   DenyFilter		  \*.*/
   
   Port		  21
   
   MaxInstances	  30
   
   User		  nobody
   Group		  nogroup
   
   Umask		  022  022
   AllowOverwrite	  on
   AllowRetrieveRestart on
   
   DefaultRoot 	  ~
   IdentLookups 	  off
   
   RootLogin		  off
   MaxLoginAttempts	  3
   RequireValidShell	  off
   
   MaxClientsPerHost	  2
   MaxClientsPerUser	  2
   MaxClients		  10 "Full Server"
   
   DirFakeGroup	  on ftp
   DirFakeUser	  on ftp
   DirFakeMode	  0000
   
   TransferLog 	  /<path>/<file>
   SystemLog   	  /<path>/<file>.log
   <IfModule mod_quota.c>
        QuotaEngine on
   </IfModule>
   
   <IfModule mod_ratio.c>
        Ratios on
   </IfModule>
   
   <IfModule mod_delay.c>
        DelayEngine on
   </IfModule>
   
   <IfModule mod_ctrls.c>
        ControlsEngine        on
        ControlsMaxClients    2
        ControlsLog           /<path>/controls.log
        ControlsInterval      5
        ControlsSocket        /<path>/proftpd.sock
   </IfModule>
   
   <IfModule mod_ctrls_admin.c>
        AdminControlsEngine on
   </IfModule>


Usuaris virtuals amb mySQL

Per poder crear usuraris virtuals per servidor FTP, s'ha creat una base de dades que conté la informació del usuaris del FTP amb la següent estrucura:

Camp Tipus Atributs Nul Predeterminat Extra
id int(10) UNSIGNED No auto_increment
username varchar(32) No
password varchar(100) No
uid smallint(6) 32767
gid smallint(6) 32767
homedir varchar(100) No /var/www/proftpd/default
shell varchar(50) /sbin/nologin
actiu tinyint(4) 1
group int(10) UNSIGNED No 1
count int(11) UNSIGNED No 0
accessed datetime No 0000-00-00 00:00:00

Per configurar el nostre servidor, avanç de res cal instalar el modul proftpd_mysql. Desprès es configurarà el servidor.

Aquest és el contingut afegit al fitxer de configuració per gestionar els usuaris de la base de dades:

# Autentificacion bbdd mysql
   AuthOrder               mod_sql.c
   SQLBackend              mysql
   SQLAuthTypes            Backend
   SQLAuthenticate         users
   SQLConnectInfo          <dbname>@localhost <dbuser> <password>
   SQLDefaultGID           32767
   SQLDefaultUID           32767
   SQLMinID                500
   SQLUserInfo             users username password uid gid homedir shell
   SQLUserWhereClause      "actiu=1"
   SQLHomedirOnDemand      on
   
# Acutalització de la base de dades
   SQLLog PASS updatecount
   SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE username='%u'" users

Cal destacar la comanda AuthOrder mod_sql.c que limita només connexions dels usuaris definits a una base de dades.

Connexió segura amb SSL/TLS

Un problema de FTP és que està pensat per oferir la màxima velocitat en la connexió, però no la màxima seguretat, ja que tot l'intercanvi d'informació (login i password de l'usuari al servidor, i la transferència de qualsevol arxiu), es realitza en text pla sense cap tipus de xifrat.

Per configurar el nostre servidor amb connexions xifrades, cal generar un certificat RSA amb les calus publiques i privades. Desprès es configurarà el servidor.

Aquest és el contingut afegit al fitxer de configuració per gestionar connexions amb el protocol SSL/TLS:

#Configuracio SSL
   <IfModule mod_tls.c>
        TLSEngine on
   </IfModule>
   
   TLSLog                     /var/log/proftpd/tls.log
   TLSProtocol                SSLv23
   TLSRSACertificateFile      /etc/ssl/certs/ftpd-rsa.pem
   TLSRSACertificateKeyFile   /etc/ssl/certs/ftpd-rsa.pem
   TLSVerifyClient            off
   TLSOptions                 NoCertRequest
   TLSRenegotiate             required off
   TLSRequired                on

La directiva TLSRequired on especifica que totes les connexions han d'anar xifrades. Per tant sera necessari connectar-se al servidor amb un client que suporti connexions FTPS.

Mòduls

Cal especificar quins mòduls a he carregar el nostres servidor per a poder dur a terme totes les tasque. Com podem observar, la primera linea del nostre fitxer de configuració ens está indicant que cal inclure el fitxermodules.conf el qual conte aquesta informació. El contigut d'aquest fitxer a de ser com el següent:

ModulePath /usr/lib/proftpd
ModuleControlsACLs insmod,rmmod allow user root
ModuleControlsACLs lsmod allow user *

LoadModule mod_ctrls_admin.c
LoadModule mod_tls.c
LoadModule mod_sql.c
LoadModule mod_ldap.c
LoadModule mod_sql_mysql.c
LoadModule mod_quotatab.c
LoadModule mod_quotatab_file.c
LoadModule mod_quotatab_ldap.c
LoadModule mod_quotatab_sql.c
LoadModule mod_radius.c
LoadModule mod_wrap.c
LoadModule mod_rewrite.c
LoadModule mod_ifsession.c

Enllaços

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
sermn_wiki/userpages/marta/ftp.1228220348.txt.gz · Last modified: 2008/12/02 13:19 by marta