PDF de programación - Mini Howto Proftpd + LDAP

Imágen de pdf Mini Howto Proftpd + LDAP

Mini Howto Proftpd + LDAPgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 7 de Marzo del 2018)
738 visualizaciones desde el 7 de Marzo del 2018
104,2 KB
5 paginas
Creado hace 18a (14/12/2005)
Mini Howto Proftpd + LDAP

Alejandro Valdés Jimenez

[email protected]

Diciembre 2005

1. Introducción

Este artículo pretende entregar una guía para configurar un servidor Proftpd con autenticación con un
servidor LDAP.

Como muestra la Figura 1, los clientes que intenten conectarse al servidor FTP deben:

• Enviar su nombre de usuario y la clave cuando se le solicite.
• Una ves enviado estos datos, el servidor FTP debe verificar la existencia de tal usuario y validar la

clave en el servidor LDAP.

• El servidor LDAP, una ves verificado y autenticado el usuario, envia la información necesaria del

home del usuario.

• En estos momentos el usuario puede interactuar con el servidor (subir/bajar archivos).

Figura 1. Diagrama Autenticación

1

2. Proftpd

Mini Howto Proftpd + LDAP

Professional FTP Daemon es un servidor FTP (File Transfer Protocolo, Protocolo de Transferencia de
archivos) escrito para ser usado en sistemas operativos Unix y sabores-Unix. No tiene soporte nativo para
usar bajo Microsoft Windows.

Algunas de las características de este servidor FTP son;

• Archivo de configuración principal, con directivas y grupos de directivas muy intuitivas, similares a las

utilizadas en el Servidor web Apache.

• Fácil para configurar multiples servidores FTP virtuales y el servicio anonymous.
• Oculta directorios y archivos basandose en el estilo Unix para los permisos y grupos.
• Diseño modular, permitiendo al servidor extender fácilmente sus funcionalidades con módulos.

Algunos módulos han sido escritos para soportar comunicación con bases de datos SQL, servidores
LDAP, encriptación SSL/TLS, conección a RADIUS, etc.

3. LDAP

LDAP (Lightwieght Directory Access Protocol), o Protocolo de Acceso a Directorios Ligeros es un
servicio de directorio, muy similar a los directorios del sistema de archivos al que estamos
acostumbrados o a la guía de teléfonos que usamos para buscar números de teléfono, o al servicio DNS
(Domain Name Service).

LDAP es una base de datos especializada. Es muy importante recordar que LDAP no es otra base de
datos mas, LDAP etá optimizada para hacer búsquedas (leer datos). Las lecturas en LDAP e realizan de
manera mucho mas frecuente que las escrituras.

4. Programas a instalar

Esta configuración la estamos realizando en una máquina con sistema operativo GNU/Linux con
ditribución GNU/Debian (testing/unstable), con kernel 2.6.13. Los programas/versiones utilizados son:

• proftpd-common 1.2.10-26
• proftpd-doc 1.2.10-26
• proftpd-ldap 1.2.10-26
• slapd 2.2.26-5

2

5. Configuraciones

Mini Howto Proftpd + LDAP

En esta sección veremos la configuración básica para la autenticación.

5.1. /etc/proftpd.conf

En este archivo debemos indicar la información del servidor LDAP y la base de búsqueda:

...
(1) AuthOrder
(2) LDAPServer
(3) LDAPDoAuth
(4) LDAPAuthBinds
...

mod_ldap.c
"server_ldap"
on ou=usuarios,dc=midominio,dc=cl (uid=%v)
on

(1) indica el orden del los módulos para la autenticación, en este caso sólo
utilizará el módulo de LDAP.
(2) dirección IP o nombre de la máquina donde corre LDAP.
(3) filtro para la búsqueda.
(4) para enlazar con el servidor LDAP con el mismo usuario que se conecta.

5.2. Esquema LDAP

Para que la autenticación funcione, el esquema debe tener algunos atributos y clase de objeto adicionales,
estos son:

...

# Posix attributes
attributetype ( 1.3.6.1.1.1.1.3 NAME ’homeDirectory’
DESC ’The absolute path to the home directory’
EQUALITY caseExactIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

attributetype ( 1.3.6.1.1.1.1.4 NAME ’loginShell’
DESC ’The path to the login shell’
EQUALITY caseExactIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

attributetype ( 1.3.6.1.1.1.1.1 NAME ’gidNumber’
DESC ’An integer uniquely identifying a group in an administrative domain’
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )

attributetype ( 1.3.6.1.1.1.1.0 NAME ’uidNumber’
DESC ’An integer uniquely identifying a user in an administrative domain’

3

Mini Howto Proftpd + LDAP

EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )

attributetype ( 1.3.6.1.1.1.1.12 NAME ’memberUid’
EQUALITY caseExactIA5Match
SUBSTR caseExactIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

...

objectclass ( 2.5.6.6 NAME ’person’
DESC ’RFC2256: a person’
SUP top STRUCTURAL
MUST ( rut $ dv $ userPassword $ uid $ apepat $ apemat $ prinom )
MAY ( segnom $ homeDirectory $ loginShell $ gidNumber $ uidNumber ) )

# Posix objectClass
objectclass ( 1.3.6.1.1.1.2.0 NAME ’posixAccount’ SUP top AUXILIARY
DESC ’Abstraction of an account with POSIX attributes’
MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory )
MAY ( userPassword $ loginShell

$ description ) )

objectclass ( 1.3.6.1.1.1.2.2 NAME ’posixGroup’ SUP top STRUCTURAL
DESC ’Abstraction of a group of accounts’
MUST ( cn $ gidNumber )
MAY ( userPassword $ memberUid $ description ) )

...

5.2.1. Ejemplo LDIF

Este es un ejemplo para subir los grupos al LDAP.

grupos.ldif

dn: cn=grupos, dc=midominio, dc=cl
objectclass: posixGroup
cn: grupos
gidNumber: 100
memberUid: usuario1
memberuid: usuario2

...

usuarios.ldif

dn: uid=usuario1,ou=usuarios,dc=mydominio,dc=cl
objectClass: person
uid: usuario1
apepat: valdes
apemat: jimenez

4

Mini Howto Proftpd + LDAP

prinom: alejandro
segnom: mauricio
userPassword: {CRYPT}AYa.0zPsSa2vA
gidNumber: 100
loginShell: /bin/bash
homeDirectory: /home/usuarios/usuario1/
uidNumber: 1050

...

Para agregar estos datos, ejecutar el siguiente comando:

ldapadd -x -f grupos.ldif -D "cn=admin,dc=midominio,dc=cl" -W

5.3. /etc/nsswitch.conf

Además, se debe indicar al sistema que para algunas bases de datos debe buscar la información en otro
lugar. También se establecen alternativas de búsqueda en caso de no encontrarla en una de ellas.

...

passwd:
group:
shadow:

...

ldap files
ldap files
ldap files

Aquí se indica que la información correpondientes a usuarios, grupos y claves las busque en primer lugar
en el servidor ldap, de no encontrar la información, entonces buscar en los archivos (files).

Nunca hay que dejar fuera la alternativa files, pues para el caso del usuario root la información siempre
debe estar local y no depender de otro servicio.

6. Enlaces

Estos son algunos enlaces que se utilizaron para la implementación de proftpd + ldap.

• The ProFTPD Project Home: http://www.proftpd.org/
• Modulo LDAP para Proftpd: http://horde.net/~jwm/software/mod_ldap/

5
  • Links de descarga
http://lwp-l.com/pdf9299

Comentarios de: Mini Howto Proftpd + LDAP (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad