User Tools

Site Tools


sermn_wiki:userpages:marta:ftp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
sermn_wiki:userpages:marta:ftp [2008/11/27 12:31]
marta
sermn_wiki:userpages:marta:ftp [2011/03/02 01:32] (current)
miquel
Line 1: Line 1:
 ====== Servidor FTP amb ProFTPd ====== ====== Servidor FTP amb ProFTPd ======
  
-<note important> **En construcción** </note>+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.
  
-<note warning> **Encara no operatiu.\\ NO carrega el mod_tls.** </note>+Un servidor FTP és un programa que s'executa en un servidorLa 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ó ===== ===== Configuració =====
-A continuació es mostra el contigunt del fitxer de configuració del servidor FTP+A continuació es mostra el contigunt del fitxer de configuració del servidor FTP. Aquest fitxer consta de dues parts: la configuració general del servidor i la configuració dels hosts virtuals.
  
 ==== General ==== ==== General ====
  
-     Include   /etc/proftpd/modules.conf +     Include            <path>/modules.conf 
-     AuthPAM   off +     ServerType         standalone 
-     UseIPv6   off+     UseIPv6            off 
 +     Port               0 
 +     MaxInstances       30 
 +     MultilineRFC2228   on 
 +     SocketBindTight    on 
 +     SystemLog          <path>
            
-     ServerName   "cie-58-175" +     <IfModule mod_tls.c> 
-     ServerType   standalone +        TLSProtocol     SSLv23
-     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  +
-     RequireValidShell   off +
-      +
-     MaxClientsPerHost  +
-     MaxClientsPerUser  +
-     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>
            
      <IfModule mod_ctrls.c>      <IfModule mod_ctrls.c>
-          ControlsEngine        on +        ControlsEngine        on 
-          ControlsMaxClients    2 +        ControlsMaxClients    2 
-          ControlsLog           /<path>/controls.log +        ControlsLog           <path> 
-          ControlsInterval      5 +        ControlsInterval      5 
-          ControlsSocket        /<path>/proftpd.sock+        ControlsSocket        /var/run/proftpd/proftpd.sock
      </IfModule>      </IfModule>
            
      <IfModule mod_ctrls_admin.c>      <IfModule mod_ctrls_admin.c>
-          AdminControlsEngine on+        AdminControlsEngine   on
      </IfModule>      </IfModule>
  
-\\+La directiva ''Port  0'' te associat el valor 0, per indicar al servidor que més avall hi ha definit un host virtual al port per defecte (port 21). 
 + 
 +==== Hosts virtuals ==== 
 + 
 +  <VirtualHost sermn.uab.cat> 
 +        ServerName "sermn.uab.cat" 
 +        DeferWelcome off 
 +      
 +        <Limit WRITE> 
 +           DenyAll 
 +        </Limit> 
 +      
 +        Port 21 
 +        Umask 022 
 +        AuthPAM off 
 +        DefaultServer on 
 +        User nobody 
 +        Group nogroup 
 +        ExtendedLog <path> AUTH 
 +        DefaultRoot ~ 
 +        IdentLookups off 
 +        ShowSymlinks on 
 +        TimeoutNoTransfer 600 
 +        TimeoutStalled 600 
 +        TimeoutIdle 1200 
 +        RootLogin off 
 +        MaxLoginAttempts 3 
 +        RequireValidShell off 
 +        DisplayLogin welcome.msg 
 +        DisplayFirstChdir .message 
 +        ListOptions "-l" 
 +        DenyFilter \*.*/ 
 +        TransferLog <path>/<file> 
 +        MaxClientsPerHost 2 
 +        MaxClientsPerUser 2 
 +        MaxClients 0 "Full Server" 
 +        DirFakeGroup on ftp 
 +        DirFakeUser on ftp 
 +        DirFakeMode 0000 
 +         
 +        <Directory /> 
 +           AllowOverwrite          on 
 +           AllowRetrieveRestart    on 
 +        </Directory> 
 +         
 +        <IfModule mod_quota.c> 
 +           QuotaEngine on 
 +        </IfModule> 
 +         
 +        <IfModule mod_ratio.c> 
 +           Ratios on 
 +        </IfModule> 
 +         
 +        <IfModule mod_delay.c> 
 +           DelayEngine on 
 +        </IfModule> 
 +  </VirtualHost> 
 + 
 +Proftpd només soporta hosts virtuals amb IPs diferents però soporta hosts virtuals amb la mateixa IP connectats a ports diferents. Si es volen definir més hosts virtuals, cal canviar el port que rep les connexins dels usuaris i la directiva ''DefaultServer'' ha de estar en ''off''. La resta dependran del la propia configuració del servidor virtual. 
 ==== Usuaris virtuals amb mySQL ==== ==== 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:+Per poder crear usuraris virtuals per al 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          ^ ^   Camp      Tipus     ^ Atributs ^ Nul ^       Predeterminat      ^ Extra          ^
Line 103: Line 114:
 | accessed | datetime              | No  | 0000-00-00 00:00:00      |                | | 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.\\ +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:+ 
 +Aquest és el contingut afegit (dins la directiva del virtual host) al fitxer de configuració per gestionar els usuaris de la base de dades:
   # Autentificacion bbdd mysql   # Autentificacion bbdd mysql
 +     AuthOrder               mod_sql.c
      SQLBackend              mysql      SQLBackend              mysql
      SQLAuthTypes            Backend      SQLAuthTypes            Backend
-     SQLAuthenticate         users*+     SQLAuthenticate         users
      SQLConnectInfo          <dbname>@localhost <dbuser> <password>      SQLConnectInfo          <dbname>@localhost <dbuser> <password>
      SQLDefaultGID           32767      SQLDefaultGID           32767
Line 121: Line 134:
      SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE username='%u'" users      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 ==== ==== Connexió segura amb SSL/TLS ====
  
-Aquest és el contingut afegit al fitxer de configuració per gestionar connexions amb el protocol 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 (dins la directiva del virtual host) al fitxer de configuració per gestionar connexions amb el protocol SSL/TLS:
  
   #Configuracio SSL   #Configuracio SSL
      <IfModule mod_tls.c>      <IfModule mod_tls.c>
-          TLSEngine on+        TLSEngine                       on 
 +        TLSRequired                     on 
 +        TLSLog                          <path> 
 +        TLSRSACertificateFile           <path> 
 +        TLSRSACertificateKeyFile        <path> 
 +        TLSVerifyClient                 off 
 +        TLSOptions                      NoCertRequest 
 +        TLSRenegotiate                  required off
      </IfModule>      </IfModule>
-      + 
-     TLSLog                     /var/log/proftpd/tls.log + 
-     TLSProtocol                SSLv23 +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. 
-     TLSRSACertificateFile      /etc/ssl/certs/ftpd-rsa.pem + 
-     TLSRSACertificateKeyFile   /etc/ssl/certs/ftpd-rsa.pem +==== Mòduls ==== 
-     TLSVerifyClient            off +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 línia del nostre fitxer de configuració ens está indicant que cal incloure el fitxer ''modules.conf'' el qual conte aquesta informació. El contigut d'aquest fitxer a de ser com el següent: 
-     TLSOptions                 NoCertRequest + 
-     TLSRenegotiate             required off +  ModulePath /usr/lib/proftpd 
-     TLSRequired                on+  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 ===== ===== Enllaços =====
sermn_wiki/userpages/marta/ftp.1227785468.txt.gz · Last modified: 2008/11/27 12:31 by marta