Trato de explicar a continuación, lo mas breve y sencillo posible, como instalar y configurar un servidor FTP, usando autenticación contra Directorio Activo; de la misma forma seguiremos permitiendo usuarios locales para las sesiones FTP. Aunque este protocolo nunca ha sido de mis predilecciones, diversos motivos me han motivado a tener que hacer una instalación, así que ahí va lo que hice.
Sistema base
Partimos de un sistema basado en Redhat Enterprise, concretamente CentOS (versión 5), el cual ya está configurado con samba autenticando en nuestro Directorio Activo (si alguien no sabe como hacerlo, pues ya lo explicaré en otro momento), vamos a aprovechar esta situación para configurar nuestro servicio FTP.
Instalación
Usaremos el software vsftpd (http://vsftpd.beasts.org/), probablemente el servidor FTP mas seguro y rápido.
# yum install vsftpd
Configuración
Una vez instalado los ficheros de configuración quedan en /etc/vsftpd/. El servicio vsftpd usa PAM como método para autenticar, de esta forma para lograr que los usuario del Directorio Activo logren iniciar una sesión de FTP, nos aprovecharemos de winbind.
Configurando PAM
En /etc/pam.d tenemos el fichero vsftpd, en el cual debemos agregar las líneas correspondientes para que nuestro servidor FTP, use autenticación a través de winbind. El fichero puede quedar como sigue:
# more /etc/pam.d/vsftpd
#%PAM-1.0
session sufficient pam_winbind.so
auth sufficient pam_winbind.so
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth sufficient pam_shells.so debug
auth include system-auth
account sufficient winbind.so
account include system-auth
session include system-auth
session required pam_loginuid.so
vsftpd.conf
Es el fichero de configuración del servicio FTP. Es muy flexible. Yo lo voy a dejar así:
anonymous_enable=NO
local_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
ftpd_banner= mi mensaje de bienvenida.
chroot_local_user=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
user_config_dir=/etc/vsftpd/users
Configurando usuarios
Para que un usuario pueda iniciar una sesión FTP, se debe cumplir una serie de requisitos:
Debe ser un usuario local, y existir su home
Debe ser un usuario del dominio MIDOMINIO.COMy existir el directorio /home/MIDOMINIO/$USER
Además para el correcto funcionamiento se ha establecido la directiva user_config_dir=/etc/vsftpd/users, donde se creará un fichero para cada usuario que demos de alta en el FTP, de manera que se personalizan las características de acceso de cada usuario. Por ejemplo el usuario pepe, le vamos a permitir ‘ver’ y descargar lo que hay en /data (este directorio debe existir, de manera que se convierte en el ftproot del usuario pepe), pero no escribir.
dirlist_enable=YES
download_enable=YES
local_root=/data
write_enable=NO
anon_world_readable_only=NO
Los usuarios locales que permita FTP, lo que le hago es no permitir su inicio de sesión interactivo (su ingreso en consola), es decir /bin/false. Por supuesto podemos usar el fichero /etc/vsftpd/ftpusers para denegar el acceso a los usuarios que queramos.
También se podría configurar con usuarios virtuales, pero en principio no era el tema, ya que me interesaba la integración con el Directorio Activo.
Ejecutando el servicio
Solo nos queda ejecutar el servicio:
#service vsftpd start
y a disfrutarlo. Por supuesto hay muchas mas opciones por tocar y personalizar.
Comentarios
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=NO
log_ftp_protocol=YES
No te dice donde configurar los datos del ad contra el cual autenticarse.
http://rlt-sistemas.blogspot.com/2011/03/integrando-samba-con-el-directorio.html
Hay mucha documentación disponible al respecto.
Un saludo.
http://blog.zwiegnet.com/linux-server/join-centos-to-active-directory-domain/
http://blog.zwiegnet.com/linux-server/join-centos-to-active-directory-domain/