Esta guía fue construida para un proyecto de un curso de Redes Locales.No se consideran ningún tipo de configuraciones para seguridad, lo único requerido es que funcione. Además, no soy ningún experto en Linux ni servidores FTP, por lo que cualquier error u omisión que haya cometido, bienvenida sea la corrección, al igual que cualquier otro aporte. Con esta guia, el servidor FTP funciona, pero por razones que desconozco, no permite subir archivos. Si alguien sabe la razón por favor agregue la correcion en los comentarios.
Siéntase en libertad de utilizar esta información de la manera que necesite,siempre y cuando haga la correspondiente cita.
Esta guía supone que ya existe un servidor OpenLDAP instalado, con el dominio "dominio.net" y la clave administrado "ldap", Consulte mi post previo sobre como instalar el servidor OpenLDAP si no tiene uno instalado.
Además, para mantener orden en el servidor LDAP, crearemos un grupo donde agregaremos los usuarios del ftp.
PureFTPD utiliza un esquema especial llamado PureFTPdUser para guardar los datos necesarios para la administración de cada usuario. Dentro de los atributos exitentes en este esquema están el límite de almacenamiento, anchos de banda para carga y descarga, cantidad maxima de archivos,login y contraseña, etc. Aquí se explicará como agregar el esquema al servido LDAP y como agregar los usuarios de este tipo al grupo de usuarios del ftp.
1. Instalación de PureFTPD con soporte para LDAP:
objectClass: posixGroup
objectClass: top
cn: grupoftp
gidNumber: 100
description: Grupo de usuarios FTP
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/duaconf.schema
include /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/ppolicy.schema
include /etc/ldap/schema/pureftpd.schema
…….
cn: {12}pureftpd”
por:
“dn: cn=pureftpd, cn=schema,cn=config
……..
cn: pureftpd”
entryUUID: 10dae0ea-0760-102d-80d3-f9366b7f7757
creatorsName: cn=config
createTimestamp: 20080826021140Z
entryCSN: 20080826021140.791425Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20080826021140Z
4. Agregar un usuario tipo PureFTPdUser al grupo de usuarios del FTP:
objectClass: PureFTPdUser
objectClass: posixAccount
cn: ftpuser1
uid: ftpuser1
uidNumber: 501
gidNumber: 100
homeDirectory: /home/ftproot/usuario1
userPassword: 123
FTPStatus: enabled
FTPQuotaFiles: 1000
FTPQuotaMBytes: 50
FTPDownloadBandwidth: 100000
FTPUploadBandwidth: 100000
FTPDownloadRatio: 5
FTPUploadRatio: 5
El atributo uid es el más importante pues es el parámetro que utiliza PureFTPD para hacer la búsqueda de usuarios.
5. Crear el archivo de configuración para conectar a PureFTPD con LDAP:
LDAPPort 389
LDAPBaseDN cn=grupoftp,dc=dominio,dc=net
LDAPBindDN cn=admin,dc=dominio,dc=net
LDAPBindPW ldap
LDAPDefaultUID 500
LDAPDefaultGID 100
Referencias:
Siéntase en libertad de utilizar esta información de la manera que necesite,siempre y cuando haga la correspondiente cita.
Esta guía supone que ya existe un servidor OpenLDAP instalado, con el dominio "dominio.net" y la clave administrado "ldap", Consulte mi post previo sobre como instalar el servidor OpenLDAP si no tiene uno instalado.
Además, para mantener orden en el servidor LDAP, crearemos un grupo donde agregaremos los usuarios del ftp.
PureFTPD utiliza un esquema especial llamado PureFTPdUser para guardar los datos necesarios para la administración de cada usuario. Dentro de los atributos exitentes en este esquema están el límite de almacenamiento, anchos de banda para carga y descarga, cantidad maxima de archivos,login y contraseña, etc. Aquí se explicará como agregar el esquema al servido LDAP y como agregar los usuarios de este tipo al grupo de usuarios del ftp.
1. Instalación de PureFTPD con soporte para LDAP:
- Ejecutar el siguiente comando: sudo apt-get install pure-ftpd-ldap
- Haga un archivo de texto llamado grupoftp.ldif con la siguiente información:
objectClass: posixGroup
objectClass: top
cn: grupoftp
gidNumber: 100
description: Grupo de usuarios FTP
- Luego es necesario detener el servidor LDAP con este comando: sudo /etc/init.d/slapd stop
- Ahora agregamos el grupo ejecuntando el siguiente comando: sudo slapadd -v -l grupoftp.ldif
- El servidor debe responder “added posixgroup= grupoftp,dc=domino,dc=net”
- Reiniciamos el servidor mediante el siguiente comando: sudo /etc/init.d/slapd start
- Descargar el siguiente archivo: http://hivelocity.dl.sourceforge.net/sourceforge/pureftpd/pure-ftpd-1.0.22.tar.gz
- Abrir el archivo descargado y buscar el archivo “pureftpd.schema”, y luego extráigalo en /etc/ldap/schema
- Haga un archivo llamado schema_convert.conf y agregue la siguiente información:
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/duaconf.schema
include /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/ppolicy.schema
include /etc/ldap/schema/pureftpd.schema
- Luego, cree la carpeta /tmp/ldif_output
- Despues, abra un terminal y ejecute este comando: sudo slaptest -f schema_convert.conf -F /tmp/ldif_output
- Abra el archivo /tmp/ldif_output/cn=config/cn=schema/ cn={12}pureftpd.ldif
- Cambie las lineas que dicen:
…….
cn: {12}pureftpd”
por:
“dn: cn=pureftpd, cn=schema,cn=config
……..
cn: pureftpd”
- Y elimine las líneas (los valores pueden variar):
entryUUID: 10dae0ea-0760-102d-80d3-f9366b7f7757
creatorsName: cn=config
createTimestamp: 20080826021140Z
entryCSN: 20080826021140.791425Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20080826021140Z
- Ahora ejecute el siguiente commando: sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{12\}pureftpd.ldif
- Revise con algunas de las herrmientas de administracion del servidor LDAP si el esquema PureFTPdUser está en lista de esquemas.
4. Agregar un usuario tipo PureFTPdUser al grupo de usuarios del FTP:
- Crear un archivo de texto llamada ftpuser1 y agregue los siguientes datos:
objectClass: PureFTPdUser
objectClass: posixAccount
cn: ftpuser1
uid: ftpuser1
uidNumber: 501
gidNumber: 100
homeDirectory: /home/ftproot/usuario1
userPassword: 123
FTPStatus: enabled
FTPQuotaFiles: 1000
FTPQuotaMBytes: 50
FTPDownloadBandwidth: 100000
FTPUploadBandwidth: 100000
FTPDownloadRatio: 5
FTPUploadRatio: 5
El atributo uid es el más importante pues es el parámetro que utiliza PureFTPD para hacer la búsqueda de usuarios.
- Ejecutar el siguiente comando para agregar al usuario (recuerde detener el servidor LDAP antes de ejecutar el comando y reiniciarlo después de ejecutarlo): sudo slapadd -l ftpuser1.ldif
5. Crear el archivo de configuración para conectar a PureFTPD con LDAP:
- Haga un archivo de texto con el nombre pureftpd-ldap.conf en la carpeta /etc.
- Incluya la siguiente información:
LDAPPort 389
LDAPBaseDN cn=grupoftp,dc=dominio,dc=net
LDAPBindDN cn=admin,dc=dominio,dc=net
LDAPBindPW ldap
LDAPDefaultUID 500
LDAPDefaultGID 100
- Mate el proceso pure-ftpd en caso de que el servidor FTP este corriendo con este comando: sudo pkill pure-ftpd
- Levantar el servidor PureFTPD con el archivo de configuración para LDAP con este comando: sudo /usr/sbin/pure-ftpd-ldap -l ldap:/etc/pureftpd-ldap.conf &
- Pruebe el servidor con nautilus escribiendo en la barra de dirección: ftp://ftpuser1@localhost
- Suministre la clave que le asigno al usuario y listo.
Referencias:
- http://download.pureftpd.org/pub/pure-ftpd/doc/README.LDAP
- http://www.linuxquestions.org/questions/linux-server-73/how-to-add-a-new-schema-to-openldap-2.4.11-700452/