SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
Práctica 2
Servidor
ProFTPd
Servicios de Red e Internet



Francisco Javier Gavilán Escriche
2ºA
Práctica 2 servidor ProFTPd                                                                    Francisco Javier Gavilán Escriche




Indice

Objetivos..........................................................................................................................................2
Instalación de Mysql ........................................................................................................................3
Instalación ProFTPd ........................................................................................................................3
Creación de la base de datos ............................................................................................................4
Configuración del Servidor ProFTPd ..............................................................................................7
Creación de usuarios virtuales .........................................................................................................9
Acceso remoto utilizando un cliente FTP .....................................................................................10




                                                                                                                                                       1
Práctica 2 servidor ProFTPd                                 Francisco Javier Gavilán Escriche



Objetivos
Configura tu servidor FTP para que se pueda acceder al mismo a través de usuarios almacenados
en una base de datos MySql.

Acceso a Proftpd con usuarios almacenados en una base de datos.




                                                                                                2
Práctica 2 servidor ProFTPd                                   Francisco Javier Gavilán Escriche


Instalación de Mysql
Normalmente la información de los usuarios virtuales se guarda en un fichero de texto plano,
nosotros vamos a explicar la configuración del servidor para guardar la información de los
usuarios virtuales en una base de datos construida en MySQL. Para instalar el servidor de base
de datos MySQL utilizamos el comando apt-get:

“apt-get install mysql”


Instalación ProFTPd
Para instalar el servidor proFTPD, utilizamos el comando apt-get de la siguiente forma:
“apt-get install proftpd”

Durante la instalación debemos escoger la forma en que se va ejecutar este servicio, si lo hará
bajo inetd o en forma independiente (como un proceso más). La diferencia entre ambos métodos
es la velocidad de ejecución que se obtendrá del servicio y la carga que se le dará al equipo.
Utilizando inetd el equipo iniciará un proceso nuevo por cada petición ftp que llegue al equipo,
mientras que ejecutándose en forma independiente, el proceso ya está inicializado por lo que no
hay necesidad ejecutar un nuevo programa (simplemente se clona el proceso, generando una
nueva instancia del mismo para atender al cliente ftp que inicio el requerimiento). Nosotros
escogeremos la opción independiente.




                                                                                                   3
Práctica 2 servidor ProFTPd                                    Francisco Javier Gavilán Escriche


Creación de la base de datos
ProFTPD, de forma normal, valida sobre el /etc/passwd y /etc/shadow, por tanto necesita una
tabla que simule los datos contenidos en estos ficheros.

También utiliza el /etc/group, por lo que necesitamos otra tabla del mismo modo:

Tabla de usuarios:

-username: Nombre del usuario
-password: Contraseña del usuario
-uid: Identificador del usuario
-gid: Identificador del grupo al que pertenece el usuario
-homedir: Directorio donde tendrá acceso el usuario
-activa: Este campo lo usamos para activar y desactivar cuentas sin borrar el usuario1

Tabla de grupos:

-groupname: Nombre del grupo
-gid: Identificador del grupo
-members: Nombres de los usuarios que pertenecen a este grupo

Como se puede ver es todo muy similar al /etc/passwd y /etc/group. Ahora vamos a ver las
instrucciones SQL para crear estas tablas.

Lo primero, creamos la base de datos que vamos a utilizar. Accedemos como root y creamos la
base de datos ftpd:




Ahora generamos un usuario que acceda a la base de datos, para no utilizar el usuario root:




                                                                                                   4
Práctica 2 servidor ProFTPd                                   Francisco Javier Gavilán Escriche

Es decir, hemos creado un nuevo usuario (proftpd) que se va a conectar desde localhost, tiene
permiso en todas las tablas de la base de datos que hemos creado anteriormente y cuya
contraseña es “proftpd”. Este es el usuario que utilizaremos para crear las tablas anteriormente
descritas:




Hemos entrado con el usuario creado anteriormente, hemos visualizados las bases de datos,
hemos indicado que la base de datos que vamos a utilizar es ftpd y hemos mostrado las tablas,
que como podemos observar no hay ninguna. Estamos preparados para crear las tablas:




*Fallo al crear el campo dig, en realidad hay que poner gid




                                                                                                   5
Práctica 2 servidor ProFTPd                                   Francisco Javier Gavilán Escriche

Veamos las tablas que hemos creado y su estructura:




*Fallo al crear el campo dig, en realidad hay que poner gid




                                                                                                  6
Práctica 2 servidor ProFTPd                                                     Francisco Javier Gavilán Escriche


Configuración del Servidor ProFTPd
La configuración del servidor proFTPd está en el fichero /etc/proftpd.conf, la sintaxis que utiliza
es parecida a la utilizada en apache, por lo que el usuario acostumbrado a configurar apache le
resultará familiar. La configuración que viene por defecto en el fichero nos viene bien, lo único
que vamos a hacer es introducir nuevas directivas para que el servidor proFTPd valide los
usuarios utilizando la información guardada en nuestra base de datos MySQL. Las directivas que
vamos a introducir en el fichero de configuración son las siguientes:




*Descomentar también las directivas llamadas DocumentRoot y RequireValidShell


Una vez pongamos las directivas guardamos los cambios en al archivo pero posiblemente nos de
error al reiniciar el servicio debido a que nos falta un módulo de mysql perteneciente a proftpd
llamado “proftpd-mod-mysql”, así que procedemos a su instalación mediante la siguiente orden
“sudo apt-get install proftpd-mod-mysql”.

También tendremos que modificar un archivo situado en /etc/proftpd llamado modules.conf,
concretamente tendremos que descomentar las líneas “LoadModule mod_sql.c” y “LoadModule
mod_sql_mysql.c para que cuando reiniciemos el servicio proftpd nos cargue automáticamente
dicho mod sql.




                                                                                                                    7
Práctica 2 servidor ProFTPd   Francisco Javier Gavilán Escriche




                                                                  8
Práctica 2 servidor ProFTPd                                   Francisco Javier Gavilán Escriche


Creación de usuarios virtuales
Lo primero que vamos a hacer es añadir la información necesaria de los usuarios en las tablas de
la base de datos. Vamos a crear un grupo virtual ftpusers al que le vamos a hacer corresponder
un identificador de grupo ficticio, por ejemplo
el 6000, además vamos a crear dos usuarios: user1 y user2, con contraseñas passuser1 y
passuser2, con identificadores de usuarios 5000 y 5001, estos dos usuarios van a pertenecer al
grupo ftpusers por lo que su campo gid va a ser el 6000, además el campo homedir será para
cada uno el correspondiente a los dos directorios de los sitios web virtuales (/srv/www/pagina1 y
/srv/www/pagina2) y por último el campo shell será /bin/false, indicando que no van a poder
logearse en el sistema como usuario reales. Para ello tenemos que ejecutar las siguientes
instrucciones:




Para comprobar que la inserción ha sido correcta, podemos ejecutar los siguientes comandos:




*Fallo al crear el campo dig, en realidad hay que poner gid




                                                                                                    9
Práctica 2 servidor ProFTPd                                  Francisco Javier Gavilán Escriche

Podemos comprobar como el campo password ha sido cifrado. Por otro lado, modificando el
campo activa a 0 podemos desactivar el usuario de una manera muy fácil.
El último paso que tenemos que hacer es poner como propietario de los directorios donde
tenemos nuestras páginas webs a los dos usuarios respectivamente, como root tenemos que
ejecutar lo siguiente:




Se puede observar como en ningún momento hemos empleado los nombres de los usuarios o el
nombre del grupo, es más si listamos el directorio /srv/www veremos que los directorios pagina1
y pagina2 pertenecen al usuario 5000 y 5001 del grupo 6000, esos usuarios no son usuarios
reales del sistema.


Acceso remoto utilizando un cliente FTP
Bueno para probar que el sistema está funcionando correctamente podemos hacer uso del cliente
ftp de Linux:




                                                                                                 10
Práctica 2 servidor ProFTPd                               Francisco Javier Gavilán Escriche

Ahora vamos a comprobar con cualquiera de los 2 usuarios de la base de datos que realmente
funciona la conexión:




                                                                                              11

Weitere ähnliche Inhalte

Was ist angesagt?

Postgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_pPostgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_p
edvin_marcelo
 
Instalación de dns en centos
Instalación de dns en centos Instalación de dns en centos
Instalación de dns en centos
Gerson Zapata
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
Johanna Mendez
 
Samba como PDC y autentificación LDAP
Samba como PDC y autentificación LDAPSamba como PDC y autentificación LDAP
Samba como PDC y autentificación LDAP
iesgrancapitan.org
 
Manual de squid creado por juanextk
Manual de squid creado por juanextkManual de squid creado por juanextk
Manual de squid creado por juanextk
juanextk
 
Sg t3 practica_vpn-ssh
Sg t3 practica_vpn-sshSg t3 practica_vpn-ssh
Sg t3 practica_vpn-ssh
garciadebora
 
Tutorial linux centos configuraciones básicas
Tutorial linux centos configuraciones básicasTutorial linux centos configuraciones básicas
Tutorial linux centos configuraciones básicas
UTP
 
Servidor De Correo En Debian
Servidor De Correo En DebianServidor De Correo En Debian
Servidor De Correo En Debian
Cesar Pineda
 

Was ist angesagt? (20)

Servidor de Correo
Servidor de CorreoServidor de Correo
Servidor de Correo
 
Instalación y configuración de servidor DNS
Instalación y configuración de servidor DNSInstalación y configuración de servidor DNS
Instalación y configuración de servidor DNS
 
Funcionamiento con my sql
Funcionamiento con my sqlFuncionamiento con my sql
Funcionamiento con my sql
 
Manual FTP, SSH y OpenMedia Vault
Manual FTP, SSH y OpenMedia VaultManual FTP, SSH y OpenMedia Vault
Manual FTP, SSH y OpenMedia Vault
 
Postgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_pPostgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_p
 
Instalación de dns en centos
Instalación de dns en centos Instalación de dns en centos
Instalación de dns en centos
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Instalación y configuración de Nagios
Instalación y configuración de NagiosInstalación y configuración de Nagios
Instalación y configuración de Nagios
 
Samba como PDC y autentificación LDAP
Samba como PDC y autentificación LDAPSamba como PDC y autentificación LDAP
Samba como PDC y autentificación LDAP
 
Manual de squid creado por juanextk
Manual de squid creado por juanextkManual de squid creado por juanextk
Manual de squid creado por juanextk
 
GOsa+samba+ldap
GOsa+samba+ldapGOsa+samba+ldap
GOsa+samba+ldap
 
Instalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacionInstalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacion
 
Servidor FTP en CentOS 6.5
Servidor FTP en CentOS 6.5Servidor FTP en CentOS 6.5
Servidor FTP en CentOS 6.5
 
Cluster con postgresql
Cluster con postgresqlCluster con postgresql
Cluster con postgresql
 
PROXY CENTOS 6.5
PROXY CENTOS 6.5PROXY CENTOS 6.5
PROXY CENTOS 6.5
 
Servidor FTP con usuarios en LDAP
Servidor FTP con usuarios en LDAPServidor FTP con usuarios en LDAP
Servidor FTP con usuarios en LDAP
 
Sg t3 practica_vpn-ssh
Sg t3 practica_vpn-sshSg t3 practica_vpn-ssh
Sg t3 practica_vpn-ssh
 
Tutorial linux centos configuraciones básicas
Tutorial linux centos configuraciones básicasTutorial linux centos configuraciones básicas
Tutorial linux centos configuraciones básicas
 
Servidor De Correo En Debian
Servidor De Correo En DebianServidor De Correo En Debian
Servidor De Correo En Debian
 
Alta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQLAlta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQL
 

Ähnlich wie Practica 2 FTP

Practica1 pro ft_pd_fran_gavilan
Practica1 pro ft_pd_fran_gavilanPractica1 pro ft_pd_fran_gavilan
Practica1 pro ft_pd_fran_gavilan
Terrafx9
 
Red t3 practica2_apacheopenldap
Red t3 practica2_apacheopenldapRed t3 practica2_apacheopenldap
Red t3 practica2_apacheopenldap
garciadebora
 
Php01 instalacion de apache y php en linux
Php01 instalacion de apache y php en linuxPhp01 instalacion de apache y php en linux
Php01 instalacion de apache y php en linux
Julio Pari
 
Red t4 practica_ftp1
Red t4 practica_ftp1Red t4 practica_ftp1
Red t4 practica_ftp1
garciadebora
 
Host Virtuales en Apache y HTTPS
Host Virtuales en Apache y HTTPSHost Virtuales en Apache y HTTPS
Host Virtuales en Apache y HTTPS
Rafa
 
Andrés González Suárez - Acceso a FTP a través de usuarios almacenados en un ...
Andrés González Suárez - Acceso a FTP a través de usuarios almacenados en un ...Andrés González Suárez - Acceso a FTP a través de usuarios almacenados en un ...
Andrés González Suárez - Acceso a FTP a través de usuarios almacenados en un ...
Andrés González Suárez
 
Servidor ftp1
Servidor ftp1Servidor ftp1
Servidor ftp1
sindikto
 
Servidor de autenticación con OpenLDAP en CentOS
Servidor de autenticación con OpenLDAP en CentOSServidor de autenticación con OpenLDAP en CentOS
Servidor de autenticación con OpenLDAP en CentOS
Kramer Garay Gómez
 
Aso t1 open_ldap_lnpracticas
Aso t1 open_ldap_lnpracticasAso t1 open_ldap_lnpracticas
Aso t1 open_ldap_lnpracticas
garciadebora
 

Ähnlich wie Practica 2 FTP (20)

Servidor FTP con usuarios en MySQL
Servidor FTP con usuarios en MySQLServidor FTP con usuarios en MySQL
Servidor FTP con usuarios en MySQL
 
Practica1 pro ft_pd_fran_gavilan
Practica1 pro ft_pd_fran_gavilanPractica1 pro ft_pd_fran_gavilan
Practica1 pro ft_pd_fran_gavilan
 
Manual de instalacion servicios en red hat
Manual de instalacion servicios en red hatManual de instalacion servicios en red hat
Manual de instalacion servicios en red hat
 
Servidor proFTPd
Servidor proFTPdServidor proFTPd
Servidor proFTPd
 
Open LDAP
Open LDAPOpen LDAP
Open LDAP
 
Reporte servidorftp
Reporte servidorftpReporte servidorftp
Reporte servidorftp
 
Manual de instalacion de servidor zentyal 3
Manual de instalacion de servidor zentyal 3Manual de instalacion de servidor zentyal 3
Manual de instalacion de servidor zentyal 3
 
Red t3 practica2_apacheopenldap
Red t3 practica2_apacheopenldapRed t3 practica2_apacheopenldap
Red t3 practica2_apacheopenldap
 
Php01 instalacion de apache y php en linux
Php01 instalacion de apache y php en linuxPhp01 instalacion de apache y php en linux
Php01 instalacion de apache y php en linux
 
Autenticacion ldap
Autenticacion ldapAutenticacion ldap
Autenticacion ldap
 
Red t4 practica_ftp1
Red t4 practica_ftp1Red t4 practica_ftp1
Red t4 practica_ftp1
 
Ft py ssh_fco_javier_mejías_fernández
Ft py ssh_fco_javier_mejías_fernándezFt py ssh_fco_javier_mejías_fernández
Ft py ssh_fco_javier_mejías_fernández
 
Host Virtuales en Apache y HTTPS
Host Virtuales en Apache y HTTPSHost Virtuales en Apache y HTTPS
Host Virtuales en Apache y HTTPS
 
Andrés González Suárez - Acceso a FTP a través de usuarios almacenados en un ...
Andrés González Suárez - Acceso a FTP a través de usuarios almacenados en un ...Andrés González Suárez - Acceso a FTP a través de usuarios almacenados en un ...
Andrés González Suárez - Acceso a FTP a través de usuarios almacenados en un ...
 
William fabricio manual de sistemas sas
William fabricio manual de sistemas sasWilliam fabricio manual de sistemas sas
William fabricio manual de sistemas sas
 
Servidor ftp1
Servidor ftp1Servidor ftp1
Servidor ftp1
 
Servicio de directorio en Centos 6.5
Servicio de directorio en Centos 6.5Servicio de directorio en Centos 6.5
Servicio de directorio en Centos 6.5
 
Servidor de autenticación con OpenLDAP en CentOS
Servidor de autenticación con OpenLDAP en CentOSServidor de autenticación con OpenLDAP en CentOS
Servidor de autenticación con OpenLDAP en CentOS
 
Aso t1 open_ldap_lnpracticas
Aso t1 open_ldap_lnpracticasAso t1 open_ldap_lnpracticas
Aso t1 open_ldap_lnpracticas
 
Postgres
PostgresPostgres
Postgres
 

Mehr von Terrafx9

Practica Streaming Audio 1
Practica Streaming Audio 1Practica Streaming Audio 1
Practica Streaming Audio 1
Terrafx9
 
Práctica 3 iptables fran gavilan
Práctica 3 iptables fran gavilanPráctica 3 iptables fran gavilan
Práctica 3 iptables fran gavilan
Terrafx9
 
Practica 2 iptables fran gavilan
Practica 2 iptables fran gavilanPractica 2 iptables fran gavilan
Practica 2 iptables fran gavilan
Terrafx9
 
Practica1 iptables fran_gavilan
Practica1 iptables fran_gavilanPractica1 iptables fran_gavilan
Practica1 iptables fran_gavilan
Terrafx9
 
Log mein pecha_kucha
Log mein pecha_kuchaLog mein pecha_kucha
Log mein pecha_kucha
Terrafx9
 
Log mein documentacion
Log mein documentacionLog mein documentacion
Log mein documentacion
Terrafx9
 
Practica de procesos en Linux
Practica de procesos en LinuxPractica de procesos en Linux
Practica de procesos en Linux
Terrafx9
 
Practica planificacion tareas_linux_fran_gavilan
Practica planificacion tareas_linux_fran_gavilanPractica planificacion tareas_linux_fran_gavilan
Practica planificacion tareas_linux_fran_gavilan
Terrafx9
 
Practica 2003 server_acitve_directory_fran_gavilan
Practica 2003 server_acitve_directory_fran_gavilanPractica 2003 server_acitve_directory_fran_gavilan
Practica 2003 server_acitve_directory_fran_gavilan
Terrafx9
 
Pecha kucha
Pecha kuchaPecha kucha
Pecha kucha
Terrafx9
 
Pecha Kucha Mod_Security Apache2
Pecha Kucha Mod_Security Apache2Pecha Kucha Mod_Security Apache2
Pecha Kucha Mod_Security Apache2
Terrafx9
 
Acceso a carpeta privada con LDAP e instalación de Joomla en HTTPS
Acceso a carpeta privada con LDAP e instalación de Joomla en HTTPSAcceso a carpeta privada con LDAP e instalación de Joomla en HTTPS
Acceso a carpeta privada con LDAP e instalación de Joomla en HTTPS
Terrafx9
 
Gbd trabajo modeloentidadrelacion
Gbd trabajo modeloentidadrelacionGbd trabajo modeloentidadrelacion
Gbd trabajo modeloentidadrelacion
Terrafx9
 
Herramientas de la web 2
Herramientas de la web 2Herramientas de la web 2
Herramientas de la web 2
Terrafx9
 
Herramientas de la web 2
Herramientas de la web 2Herramientas de la web 2
Herramientas de la web 2
Terrafx9
 
Herramientas de la web 2
Herramientas de la web 2Herramientas de la web 2
Herramientas de la web 2
Terrafx9
 
Herramientas de la web 2.0
Herramientas de la web 2.0Herramientas de la web 2.0
Herramientas de la web 2.0
Terrafx9
 

Mehr von Terrafx9 (20)

Practica Streaming Audio 1
Practica Streaming Audio 1Practica Streaming Audio 1
Practica Streaming Audio 1
 
Práctica 3 iptables fran gavilan
Práctica 3 iptables fran gavilanPráctica 3 iptables fran gavilan
Práctica 3 iptables fran gavilan
 
Practica 2 iptables fran gavilan
Practica 2 iptables fran gavilanPractica 2 iptables fran gavilan
Practica 2 iptables fran gavilan
 
Practica1 iptables fran_gavilan
Practica1 iptables fran_gavilanPractica1 iptables fran_gavilan
Practica1 iptables fran_gavilan
 
Pfsense
PfsensePfsense
Pfsense
 
Log mein pecha_kucha
Log mein pecha_kuchaLog mein pecha_kucha
Log mein pecha_kucha
 
Log mein documentacion
Log mein documentacionLog mein documentacion
Log mein documentacion
 
LogMeIn
LogMeInLogMeIn
LogMeIn
 
Practica de procesos en Linux
Practica de procesos en LinuxPractica de procesos en Linux
Practica de procesos en Linux
 
Practica planificacion tareas_linux_fran_gavilan
Practica planificacion tareas_linux_fran_gavilanPractica planificacion tareas_linux_fran_gavilan
Practica planificacion tareas_linux_fran_gavilan
 
Practica 2003 server_acitve_directory_fran_gavilan
Practica 2003 server_acitve_directory_fran_gavilanPractica 2003 server_acitve_directory_fran_gavilan
Practica 2003 server_acitve_directory_fran_gavilan
 
Pecha kucha
Pecha kuchaPecha kucha
Pecha kucha
 
Pecha Kucha Mod_Security Apache2
Pecha Kucha Mod_Security Apache2Pecha Kucha Mod_Security Apache2
Pecha Kucha Mod_Security Apache2
 
Acceso a carpeta privada con LDAP e instalación de Joomla en HTTPS
Acceso a carpeta privada con LDAP e instalación de Joomla en HTTPSAcceso a carpeta privada con LDAP e instalación de Joomla en HTTPS
Acceso a carpeta privada con LDAP e instalación de Joomla en HTTPS
 
Instalación de 2 CMS: Wordpress y Drupal
Instalación de 2 CMS: Wordpress y DrupalInstalación de 2 CMS: Wordpress y Drupal
Instalación de 2 CMS: Wordpress y Drupal
 
Gbd trabajo modeloentidadrelacion
Gbd trabajo modeloentidadrelacionGbd trabajo modeloentidadrelacion
Gbd trabajo modeloentidadrelacion
 
Herramientas de la web 2
Herramientas de la web 2Herramientas de la web 2
Herramientas de la web 2
 
Herramientas de la web 2
Herramientas de la web 2Herramientas de la web 2
Herramientas de la web 2
 
Herramientas de la web 2
Herramientas de la web 2Herramientas de la web 2
Herramientas de la web 2
 
Herramientas de la web 2.0
Herramientas de la web 2.0Herramientas de la web 2.0
Herramientas de la web 2.0
 

Practica 2 FTP

  • 1. Práctica 2 Servidor ProFTPd Servicios de Red e Internet Francisco Javier Gavilán Escriche 2ºA
  • 2. Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche Indice Objetivos..........................................................................................................................................2 Instalación de Mysql ........................................................................................................................3 Instalación ProFTPd ........................................................................................................................3 Creación de la base de datos ............................................................................................................4 Configuración del Servidor ProFTPd ..............................................................................................7 Creación de usuarios virtuales .........................................................................................................9 Acceso remoto utilizando un cliente FTP .....................................................................................10 1
  • 3. Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche Objetivos Configura tu servidor FTP para que se pueda acceder al mismo a través de usuarios almacenados en una base de datos MySql. Acceso a Proftpd con usuarios almacenados en una base de datos. 2
  • 4. Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche Instalación de Mysql Normalmente la información de los usuarios virtuales se guarda en un fichero de texto plano, nosotros vamos a explicar la configuración del servidor para guardar la información de los usuarios virtuales en una base de datos construida en MySQL. Para instalar el servidor de base de datos MySQL utilizamos el comando apt-get: “apt-get install mysql” Instalación ProFTPd Para instalar el servidor proFTPD, utilizamos el comando apt-get de la siguiente forma: “apt-get install proftpd” Durante la instalación debemos escoger la forma en que se va ejecutar este servicio, si lo hará bajo inetd o en forma independiente (como un proceso más). La diferencia entre ambos métodos es la velocidad de ejecución que se obtendrá del servicio y la carga que se le dará al equipo. Utilizando inetd el equipo iniciará un proceso nuevo por cada petición ftp que llegue al equipo, mientras que ejecutándose en forma independiente, el proceso ya está inicializado por lo que no hay necesidad ejecutar un nuevo programa (simplemente se clona el proceso, generando una nueva instancia del mismo para atender al cliente ftp que inicio el requerimiento). Nosotros escogeremos la opción independiente. 3
  • 5. Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche Creación de la base de datos ProFTPD, de forma normal, valida sobre el /etc/passwd y /etc/shadow, por tanto necesita una tabla que simule los datos contenidos en estos ficheros. También utiliza el /etc/group, por lo que necesitamos otra tabla del mismo modo: Tabla de usuarios: -username: Nombre del usuario -password: Contraseña del usuario -uid: Identificador del usuario -gid: Identificador del grupo al que pertenece el usuario -homedir: Directorio donde tendrá acceso el usuario -activa: Este campo lo usamos para activar y desactivar cuentas sin borrar el usuario1 Tabla de grupos: -groupname: Nombre del grupo -gid: Identificador del grupo -members: Nombres de los usuarios que pertenecen a este grupo Como se puede ver es todo muy similar al /etc/passwd y /etc/group. Ahora vamos a ver las instrucciones SQL para crear estas tablas. Lo primero, creamos la base de datos que vamos a utilizar. Accedemos como root y creamos la base de datos ftpd: Ahora generamos un usuario que acceda a la base de datos, para no utilizar el usuario root: 4
  • 6. Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche Es decir, hemos creado un nuevo usuario (proftpd) que se va a conectar desde localhost, tiene permiso en todas las tablas de la base de datos que hemos creado anteriormente y cuya contraseña es “proftpd”. Este es el usuario que utilizaremos para crear las tablas anteriormente descritas: Hemos entrado con el usuario creado anteriormente, hemos visualizados las bases de datos, hemos indicado que la base de datos que vamos a utilizar es ftpd y hemos mostrado las tablas, que como podemos observar no hay ninguna. Estamos preparados para crear las tablas: *Fallo al crear el campo dig, en realidad hay que poner gid 5
  • 7. Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche Veamos las tablas que hemos creado y su estructura: *Fallo al crear el campo dig, en realidad hay que poner gid 6
  • 8. Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche Configuración del Servidor ProFTPd La configuración del servidor proFTPd está en el fichero /etc/proftpd.conf, la sintaxis que utiliza es parecida a la utilizada en apache, por lo que el usuario acostumbrado a configurar apache le resultará familiar. La configuración que viene por defecto en el fichero nos viene bien, lo único que vamos a hacer es introducir nuevas directivas para que el servidor proFTPd valide los usuarios utilizando la información guardada en nuestra base de datos MySQL. Las directivas que vamos a introducir en el fichero de configuración son las siguientes: *Descomentar también las directivas llamadas DocumentRoot y RequireValidShell Una vez pongamos las directivas guardamos los cambios en al archivo pero posiblemente nos de error al reiniciar el servicio debido a que nos falta un módulo de mysql perteneciente a proftpd llamado “proftpd-mod-mysql”, así que procedemos a su instalación mediante la siguiente orden “sudo apt-get install proftpd-mod-mysql”. También tendremos que modificar un archivo situado en /etc/proftpd llamado modules.conf, concretamente tendremos que descomentar las líneas “LoadModule mod_sql.c” y “LoadModule mod_sql_mysql.c para que cuando reiniciemos el servicio proftpd nos cargue automáticamente dicho mod sql. 7
  • 9. Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche 8
  • 10. Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche Creación de usuarios virtuales Lo primero que vamos a hacer es añadir la información necesaria de los usuarios en las tablas de la base de datos. Vamos a crear un grupo virtual ftpusers al que le vamos a hacer corresponder un identificador de grupo ficticio, por ejemplo el 6000, además vamos a crear dos usuarios: user1 y user2, con contraseñas passuser1 y passuser2, con identificadores de usuarios 5000 y 5001, estos dos usuarios van a pertenecer al grupo ftpusers por lo que su campo gid va a ser el 6000, además el campo homedir será para cada uno el correspondiente a los dos directorios de los sitios web virtuales (/srv/www/pagina1 y /srv/www/pagina2) y por último el campo shell será /bin/false, indicando que no van a poder logearse en el sistema como usuario reales. Para ello tenemos que ejecutar las siguientes instrucciones: Para comprobar que la inserción ha sido correcta, podemos ejecutar los siguientes comandos: *Fallo al crear el campo dig, en realidad hay que poner gid 9
  • 11. Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche Podemos comprobar como el campo password ha sido cifrado. Por otro lado, modificando el campo activa a 0 podemos desactivar el usuario de una manera muy fácil. El último paso que tenemos que hacer es poner como propietario de los directorios donde tenemos nuestras páginas webs a los dos usuarios respectivamente, como root tenemos que ejecutar lo siguiente: Se puede observar como en ningún momento hemos empleado los nombres de los usuarios o el nombre del grupo, es más si listamos el directorio /srv/www veremos que los directorios pagina1 y pagina2 pertenecen al usuario 5000 y 5001 del grupo 6000, esos usuarios no son usuarios reales del sistema. Acceso remoto utilizando un cliente FTP Bueno para probar que el sistema está funcionando correctamente podemos hacer uso del cliente ftp de Linux: 10
  • 12. Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche Ahora vamos a comprobar con cualquiera de los 2 usuarios de la base de datos que realmente funciona la conexión: 11