Yo soy de los que les gusta innovar y conocer cosas nuevas, hace no mucho tuve que instalar y configurar un servidor FTP y decidí hacerlo de forma diferente a como siempre lo hacía.
En este caso opté por un servicio FTP con usuarios virtuales, usuarios que estarán almacenados en un archivo cifrado (usuario, password, configuraciones, etc), todo con Pure FTPd.
Aquí les mostraré cómo hacerlo … bien, empecemos
Primero que todo, especificar que los comandos de este tutorial están pensados para distros como Debian o basadas en ellas, no obstante si alguien usa otra distro en su servidor debe instalar los mismos paquetes y usar las configuraciones puestas más abajo, lo único que necesita cambiar es el comando de instalación.
Todos los comandos que leerán serán ejecutados como root, ustedes si lo desean pueden anteponer “sudo” a cada línea.
1. Primero debemos instalar Pure FTPd:
apt-get install pure-ftpd
Les terminará el output en algo como esto:
2. El servicio ya está activado, pero no nos sirve de nada si no lo hemos configurado apropiadamente, pongamos un archivo de configuración extenso pero casi que es standard, contiene lo normal, estableciendo que los usuarios anónimos no son permitidos, etc etc.
cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd.conf
3. Bien, supongamos que nuestra carpeta de FTP es /var/www/ftp/ y deseamos crear un usuario que pueda subir información a la carpeta /var/www/ftp/sysadmin/ , pongamos lo siguiente en una terminal:
pure-pw useradd sysadmin -u 2001 -g 2001 -d /var/www/ftp/sysadmin/
Esto significa lo siguiente:
Al poner la línea anterior les preguntará el password de ese usuario.
Deben haber creado con anterioridad la carpeta sysadmin dentro de /var/www/ftp/
4. Ahora deben refrescar el archivo de base de datos de usuarios, para ello entremos a la carpeta /etc/pure-ftpd/ (cd /etc/pure-ftpd) y pongamos en la terminal:
pure-pw mkdb
5. Ahora debemos iniciar Pure-FTPd pero indicándole que usaremos el archivo de usuarios virtuales, primero detengamos el servicio:
/etc/init.d/pure-ftpd stop
Luego nos aseguraremos que no se iniciará por defecto de forma normal:
chmod -x /etc/init.d/pure-ftpd
Y ahora iniciamos el servicio a nuestro modo:
/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb
6. Si prueban usando una aplicación como Filezilla verán que se pueden conectar sin problemas con el usuario creado, sin embargo no podrán copiar nada o crear directorios, esto es debido a que la carpeta /var/www/ftp/sysadmin/ (el home del usuario según el ejemplo) no tiene los permisos apropiados, se solucionará con un:
chown -R 2001:2001 /var/www/ftp/sysadmin/
Recuerden, el Uid y Gid 2001 es el del usuario que creamos, lo creamos con el comando en el anterior paso 3
7. Para detener el servicio basta con en esa misma terminal presionar [Ctrl]+[C] o bien en otra terminal hacer un:
killall pure-ftpd
Ahora indicaremos que el servicio se iniciará automáticamente con el sistema cuando el servidor inicie, para ello modifiquemos el archivo /etc/rc.local y antes de la última línea que dice “exit 0″ pongamos el comando con el que iniciamos el servicio FTP:
/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb
O sea, nos quedaría así:
Pueden editar el archivo con nano, vi o su editor preferido, o si lo prefieren copien y peguen este comando que les facilitará el trabajo:
perl -pi -e "s[exit 0][/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb]g" /etc/rc.local && echo "exit 0" >> /etc/rc.local
… sí sí … como leyeron, “facilitar”, es un comando extenso sí, pero es simplemente sustituir texto con perl y un inofensivo echo
8. Una vez hecho esto, reinicien el servidor y verán como ya el servicio pure-ftpd está iniciado y listo para funcionar
¿Cómo eliminar usuarios?
Como les dije antes, el comando pure-pw es lo que necesitamos para manipular usuarios, para eliminar un usuario (por ejemplo, sysadmin) pongamos lo siguiente:
cd /etc/pure-ftpd/
pure-pw userdel sysadmin
pure-pw mkdb
Recuerden que siempre que hagan un cambio en algún usuario deben volver a generar el archivo virtual de base de datos de los usuarios, se encuentra en /etc/pure-ftpd/ y se genera/actualiza con pure-pw mkdb
En fin amigos/as creo que no hay mucho más que agregar, invitarles a que se lean la ayuda de pure-pw pues nos permite muchas más cosas que las que aquí les mostré (este es solo un tutorial breve y casi básico).
Yo hace uno o dos años era de los que todo lo vinculaba a OpenLDAP o MySQL, pero con el pasar del tiempo me dí cuenta de que tantas conexiones a bases de datos que sean servidores como tal generan un consumo que muchas veces no podemos permitirnos, por ello el uso de alternativas completamente viables como la de usar bases de datos en archivos propios de la aplicación, como es este caso de los .pdb de Pure-FTPd
Cualquier duda o pregunta intentaré ayudar en todo cuanto pueda.
Saludos y … happy hacking!
Continúar leyendo...
En este caso opté por un servicio FTP con usuarios virtuales, usuarios que estarán almacenados en un archivo cifrado (usuario, password, configuraciones, etc), todo con Pure FTPd.
Aquí les mostraré cómo hacerlo … bien, empecemos
Primero que todo, especificar que los comandos de este tutorial están pensados para distros como Debian o basadas en ellas, no obstante si alguien usa otra distro en su servidor debe instalar los mismos paquetes y usar las configuraciones puestas más abajo, lo único que necesita cambiar es el comando de instalación.
Todos los comandos que leerán serán ejecutados como root, ustedes si lo desean pueden anteponer “sudo” a cada línea.
1. Primero debemos instalar Pure FTPd:
apt-get install pure-ftpd
Les terminará el output en algo como esto:
2. El servicio ya está activado, pero no nos sirve de nada si no lo hemos configurado apropiadamente, pongamos un archivo de configuración extenso pero casi que es standard, contiene lo normal, estableciendo que los usuarios anónimos no son permitidos, etc etc.
cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd.conf
3. Bien, supongamos que nuestra carpeta de FTP es /var/www/ftp/ y deseamos crear un usuario que pueda subir información a la carpeta /var/www/ftp/sysadmin/ , pongamos lo siguiente en una terminal:
pure-pw useradd sysadmin -u 2001 -g 2001 -d /var/www/ftp/sysadmin/
Esto significa lo siguiente:
pure-pw : Comando que nos sirve para manipular usuarios de Pure-FTPd
useradd : Indicamos que agregaremos un usuario
sysadmin : El usuario que deseo crear
-u 2001 : UserID de ese usuario
-g 2001 : GroupID de ese usuario
-d /var/www/ftp/sysadmin/ : La carpeta que será el home de ese usuario, o sea, donde subirá las cosas
useradd : Indicamos que agregaremos un usuario
sysadmin : El usuario que deseo crear
-u 2001 : UserID de ese usuario
-g 2001 : GroupID de ese usuario
-d /var/www/ftp/sysadmin/ : La carpeta que será el home de ese usuario, o sea, donde subirá las cosas
Al poner la línea anterior les preguntará el password de ese usuario.
Deben haber creado con anterioridad la carpeta sysadmin dentro de /var/www/ftp/
4. Ahora deben refrescar el archivo de base de datos de usuarios, para ello entremos a la carpeta /etc/pure-ftpd/ (cd /etc/pure-ftpd) y pongamos en la terminal:
pure-pw mkdb
5. Ahora debemos iniciar Pure-FTPd pero indicándole que usaremos el archivo de usuarios virtuales, primero detengamos el servicio:
/etc/init.d/pure-ftpd stop
Luego nos aseguraremos que no se iniciará por defecto de forma normal:
chmod -x /etc/init.d/pure-ftpd
Y ahora iniciamos el servicio a nuestro modo:
/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb
6. Si prueban usando una aplicación como Filezilla verán que se pueden conectar sin problemas con el usuario creado, sin embargo no podrán copiar nada o crear directorios, esto es debido a que la carpeta /var/www/ftp/sysadmin/ (el home del usuario según el ejemplo) no tiene los permisos apropiados, se solucionará con un:
chown -R 2001:2001 /var/www/ftp/sysadmin/
Recuerden, el Uid y Gid 2001 es el del usuario que creamos, lo creamos con el comando en el anterior paso 3
7. Para detener el servicio basta con en esa misma terminal presionar [Ctrl]+[C] o bien en otra terminal hacer un:
killall pure-ftpd
Ahora indicaremos que el servicio se iniciará automáticamente con el sistema cuando el servidor inicie, para ello modifiquemos el archivo /etc/rc.local y antes de la última línea que dice “exit 0″ pongamos el comando con el que iniciamos el servicio FTP:
/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb
O sea, nos quedaría así:
Pueden editar el archivo con nano, vi o su editor preferido, o si lo prefieren copien y peguen este comando que les facilitará el trabajo:
perl -pi -e "s[exit 0][/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb]g" /etc/rc.local && echo "exit 0" >> /etc/rc.local
… sí sí … como leyeron, “facilitar”, es un comando extenso sí, pero es simplemente sustituir texto con perl y un inofensivo echo
8. Una vez hecho esto, reinicien el servidor y verán como ya el servicio pure-ftpd está iniciado y listo para funcionar
¿Cómo eliminar usuarios?
Como les dije antes, el comando pure-pw es lo que necesitamos para manipular usuarios, para eliminar un usuario (por ejemplo, sysadmin) pongamos lo siguiente:
cd /etc/pure-ftpd/
pure-pw userdel sysadmin
pure-pw mkdb
Recuerden que siempre que hagan un cambio en algún usuario deben volver a generar el archivo virtual de base de datos de los usuarios, se encuentra en /etc/pure-ftpd/ y se genera/actualiza con pure-pw mkdb
En fin amigos/as creo que no hay mucho más que agregar, invitarles a que se lean la ayuda de pure-pw pues nos permite muchas más cosas que las que aquí les mostré (este es solo un tutorial breve y casi básico).
Yo hace uno o dos años era de los que todo lo vinculaba a OpenLDAP o MySQL, pero con el pasar del tiempo me dí cuenta de que tantas conexiones a bases de datos que sean servidores como tal generan un consumo que muchas veces no podemos permitirnos, por ello el uso de alternativas completamente viables como la de usar bases de datos en archivos propios de la aplicación, como es este caso de los .pdb de Pure-FTPd
Cualquier duda o pregunta intentaré ayudar en todo cuanto pueda.
Saludos y … happy hacking!
Continúar leyendo...