Mié. Oct 2nd, 2024

Bueno continuamos donde lo dejamos. Ya tenemos asociado Pure-FTPd a MySQL para la creación de usuarios ahora solo nos falta justamente eso,es decir, crearlos. Esta parte la vamos a explicar de forma gráfica al menos el proceso de creación de usuarios desde PHPMyAdmin.

CREANDO UN DIRECTORIO RAIZ PARA NUESTROS USUARIOS

Para tener todo mas organizado y para que en el caso de que nuestro servidor este abierto a la red vamos a crear un directorio especifico para nuestro usuarios.Dentro de el estará la carpeta destinada a cada usuario.Por lo tanto vamos al terminal y tecleamos lo siguiente:

[shell] sudo mkdir -p /home/usuariosftp[/shell]

Y ahora le asignamos los permisos pertinentes:

[shell] sudo chmod -R 777 /home/usuariosftp[/shell]

Hemos asignado permisos 777 debido a que sino los usuarios no podrían crear directorios, renombrarlos,etc.

CREANDO USUARIOS PARA PUREFTPD

Nuestro primer paso será abrir el navegador he iremos a la dirección http://localhost/phpmyadmin y ingresaremos con los siguientes datos:

  • Usuario: pureftpd
  • Contraseña: tecnocratas (o la que pusisteis en vuestro caso en el momento de crear el usuario purftpd).

Una vez nos logueamos iremos a la base de datos que creamos anteriormente,

Como podréis ver tenemos ahí la base de datos pureftpd creada anteriormente. Por tanto hacemos click sobre ella para acceder. Una vez accedamos veremos algo así:

La tabla users es donde deberemos crear nuestro usuarios para el servidor. Para insertar un usuario daremos al botón insertar el cual es representado con el siguiente simbolo y nos saldrá algo como esto:

Lo rellenaremos con los siguientes datos:

  • User: tecnocratas (podeis poner el nombre del usuario que deseeis)
  • Password: tecnocratas(será la contraseña del usuario en cuestión). Resaltar en el passsword que debemos selecionar la función md5 y poner la contraseña que querais claro esta.
  • Uid: podríamos poner 48 que es la de apache sino usa 2709 (La id del usuario que creamos especificamente para pureftpd si pusistes otra id pon esa.)
  • Gid: podríamos poner 48 que es la de apache sino usa 2709 (La id del grupo que creamos especificamente para pureftpd si pusistes otra id pon esa.)
  • QuotaSize: 100 (El espacio destinado en la carpeta medido en MB,es decir este usuario podria subir un total de 100 MB a la carpeta /home/tecnocratas.)
  • Dir: /home/usuariosftp/tecnocratas/./ (El directorio ftp que vamos a asignar al usuario en cuestion).Pondremos el ./ para que no pueda acceder al arbol de directorios anterior al suyo
  • UlBandwidth: 100 (Ancho de banda de subida permitido)
  • DLBandwidth: 100 (Ancho de banda de bajada permitido)

En resumen la pantalla anterior quedaría así:

Fijaros en el detalle de MD5 en el campo del password es algo bastante esencial para que funcione todo correctamente. Dicho esto bajaremos hasta abajo del todo y daremos a continuar.

El siguiente paso será crear la carpeta para el usuarios, sin embargo donde la crearemos será en /var/www/html ya que sino no podría ejecutar ejecutar archivos .php por lo que ejecutamos lo siguiente:

[shell] sudo mkdir /var/www/html/usuariosftp/tecnocratas[/shell]

Le otorgamos los permisos necesarios:

[shell]sudo chmod 777Â /var/www/html/usuariosftp/tecnocratas[/shell]

Y creamos el enlace simbólico:

[shell]ln -s /var/www/html/usuariosftp/tecnocratas /home/usuariosftp/tecnocratas[/shell]

Esta acción sirve para que cuando el usuario acceda a su FTP aunque parezca que esta accediendo a /home/usuariosftp/tecnocratas, todos los archivos quedarán almacenados en /var/www/html/usuariosftp/tecnocratas ofreciendo así un poco más de seguridad y pudiendo así ejecutar aplicaciones web bajo PHP.

Una vez echos todos los pasos os recomiendo reiniciar la maquina para que no haya ningún problema.Una vez reiniciada vamos a Agregar/Quitar Software vamos a buscar y escribimos gFTP y lo instalamos.gFTP es un cliente FTP con el que haremos la primera prueba de conexión a nuestro servidor. Por tanto lo abrimos ponemos nuestros datos y si todo ha salido bien veremos algo como esto:

A mi me sale una carpeta porque la he creado desde el cliente FTP pero sino saldría el directorio en blanco sin ningún archivo. Una opción para automatizar el proceso de creación de usuarios es crear una aplicación PHP en la que ingresemos los datos y nos cree automáticamente la carpeta mediante la función mkdir de PHP, la asignación de permisos y los enlaces simbólicos. Si subimos un archivo .php a nuestro servidor y fuéramos a la dirección http://localhost/usuariosftp/tecnocratas nos saldría la ejecución de dicho archivo sin problemas y si hubiera únicamente directorios podríamos navegar por ellos.

Hasta aquí la parte del FTP, el siguiente servicio que instalaremos será un servidor de correo así que estaros preparados!

Por Atomico

17 comentarios en «Montando un servidor web en CentOS 5.5-Parte VII»
  1. Muchas gracias Juan, estaba esperando esta parte ^^, una pregunta… yo estoy instalandome el servidor web en una máquina virtual, antes de probar en un servidor dedicadoo… el problema, es que solo puedo acceder desde mi maquina virutual a la web que tengo montada: ‘localhost/index.php’ si pruebo con mi ip: ’88.XX.XXX.XXX/index.php’ no me funciona… mi duda es si tengo que abrir algun puerto en el router, o cambiar alguna configuración de apache?

    gracias, un saludo! =P

    1. entonces eres de los mios 😛 yo tambien realizo la mayor parte del tutorial en una maquina virtual, total si la picias es más facil arreglarlo.Me alegro que lo hayas solucionado, si quieres enviame como lo hicistes mediante el formulario de contacto adelante!.Los ultimos capitulos del servidor web serán basados practicamente en configuraciones de seguridad y demás y se podría añadir eso 🙂
      Un saludín y hasta la próxima parte del tutorial!

  2. Buenas tardes:

    Tuve un problema para dejar funcionando el pure-ftpd que fue con iptables (lo mismo me paso con el httpd)

    Ahora cuando intento conectarme con filezilla al FTP la conexion se genera pero me tira el error: 530 Login authentication failed

    Ya busque por varios lados pero no encuentro la solucion, intente bajar el servicio y conectarme y no me aparece el cartel de Bienvenida, por lo tanto la conexion de realiza.

    Saben que puede ser?

    Gracias

    1. Cuando estuve preparando el tutorial estuve bastante tiempo con el error de 530 Login authentication failed. La unica solución que encontre es repasar toda la configuración de nuevo para ver que es lo que fallaba, es decir, repaso paso a paso todas las configuraciones haber que es lo que estaba mal. Empezaría por revisar que la contraseña del usuario esta bajo la función md5 y que la IP del servidor mysql sea esta MYSQLServer 127.0.0.1 ya que quizá deberias poner la ip real en el caso de que intentes conectar desde otra máquina.
      Por ultimo comprueba porque puerto escucha MySQL y a su vez pure-ftpd y mira en el cortafuegos si estan habilitados y abiertos para su correcto funcionamiento y haber si asi te funciona. Si no te funciona aun así avisame y le echo un vistazo mas a fondo 😉

  3. Buenos días Juan,

    antes de nada felicitarte por el tutorial. Es completo e intuitivo.

    Pero tengo un par de dudas (una de ellas un problema) que quería preguntarte.

    1º Si los usuarios tecnocratas e ingresan en su directorio home por defecto (/home/usuariosftp/tecnocratas/). Como pueden acceder a otra parte del sistema de ficheros sin quitar el chroot? Por ejemplo a /var/www/html (la idea es que puedan subir sus propias páginas)

    2º En mi caso, he seguido la guía paso a paso y sin errores (todo ha funcionado a la perfección). Pero cuando intento ingresar con el usuario (ftpuser, para mi ejemplo) me dice que el directorio no está disponible:

    421 Home directory not available – aborting

    Mi configuración es la siguiente:

    #> ls -la /home/usuariosftp/
    drwxrwxrwx 3 root root 4096 abr 1 08:54 .
    drwx–x–x 6 root root 4096 abr 1 08:49 ..
    drwxrwxrwx 2 root root 4096 abr 1 08:54 ftpuser

    #> cat /etc/passwd | grep
    ftpuser:x:504:505:ftpuser:/home/usuariosftp/ftpuser:/bin/false
    (aquí cambie el valor de /bin/null por /home/usuariosftp/ftpuser porque en mi CentOS 5.5 no existe /bin/null y al crear el usuario me creaba también el directorio)

    #> tail /var/log/message
    Apr 1 08:56:32 srv-01 pure-ftpd: (?@192.168.0.102) [INFO] New connection from 192.168.0.102
    Apr 1 08:56:32 srv-01 kernel: type=1400 audit(1301640992.336:192): avc: denied { search } for pid=7994 comm=»pure-ftpd» name=»ftpuser» dev=dm-0 ino=1146887 scontext=user_u:system_r:ftpd_t:s0 tcontext=user_u:object_r:user_home_t:s0 tclass=dir
    Apr 1 08:56:32 srv-01 kernel: type=1400 audit(1301640992.338:193): avc: denied { search } for pid=7994 comm=»pure-ftpd» name=»ftpuser» dev=dm-0 ino=1146887 scontext=user_u:system_r:ftpd_t:s0 tcontext=user_u:object_r:user_home_t:s0 tclass=dir
    Apr 1 08:56:32 srv-01 kernel: type=1400 audit(1301640992.338:194): avc: denied { search } for pid=7994 comm=»pure-ftpd» name=»ftpuser» dev=dm-0 ino=1146887 scontext=user_u:system_r:ftpd_t:s0 tcontext=user_u:object_r:user_home_t:s0 tclass=dir
    Apr 1 08:56:32 srv-01 pure-ftpd: (?@192.168.0.102) [ERROR] Home directory not available – aborting

    #> ps -All | grep pure
    5 S 0 7984 1 0 78 0 – 29694 – ? 00:00:00 pure-ftpd

    Datos del usuario en mysql:
    ftpuser 504 505 1000 /home/usuariosftp/ftpuser/./ 100 100

    Bueno, con todos estos datos yo entiendo que por un lado podría estar fallando ya que el directorio /home/usuariosftp pertenece a root, pero tiene permisos de lectura y escritura para all, por lo tanto no debería dar fallos. Además el servidor ftp se esta ejecutando como root (3ª columna del comando ps -All) así que debería ser un problema.

    Te ha pasado a ti lo mismo en algún momento?

    Un saludo y gracias de antemano. 😛

    1. Buenas, tenías razón, no me había percatado del tema de que no se podían ejecutar archivo php al subirlo a dicha carpeta, acabo de actualizar el tutorial cambiando lo de la carpeta del usuario por esto:

      El siguiente paso será crear la carpeta para el usuarios, sin embargo donde la crearemos será en /var/www/html ya que sino no podría ejecutar ejecutar archivos .php por lo que ejecutamos lo siguiente:
      sudo mkdir /var/www/html/usuariosftp/tecnocratas
      Le otorgamos los permisos necesarios:
      sudo chmod 755 /var/www/html/usuariosftp/tecnocratas
      Y creamos el enlace simbólico:
      ln -s /var/www/html/usuariosftp/tecnocratas /home/usuariosftp/tecnocratas

      Si hiceras eso subiendo un archivo php y accedieras a http://localhost/usuariosftp/tecnocratas podría correr dicho archivo facilmente.

      Sobre el segundo punto, intenta con la configuración nueva que he puesto. De todas formas si no recuerdo mal cuando al fin consegui montar el servidor FTP fue poniendo /bin/null ya que intente poner el directorio /home/usuariosftp/ y me pasaba algo similar, es decir, me decia que no encontraba el directorio. Mira haber si cambiando ese parametro de configuración acaba por funcionar y sino me avisas y lo reviso mas a fondo.

      Y gracias a ti por comentar las dudas, que de ellas al fin y al cabo se aprende.

  4. Buenos dias Juan, antes que nada agradecerte por el excelente manual, tengo una duda, acabo de instalar el servidor FTP segun tus instrucciones, y en la linea Dir: /home/usuariosftp/tecnocratas/./ del phpmyadmin, ingreso los datos de mi usuario, para que el no pueda accesar a ninguna otra carpeta del arbol, me conecto desde filezilla y puedo navegar por todo el arbol de directorios tranquilamente, como puedo hacer para evitar esta situacion.

    1. Buenas Jacie! Me resulta bastante raro la verdad. Te podrá resultar una tontería la pregunta pero.. ¿puedes navegar por todo el arbol desde la parte izquierda o desde la parte derecha de la pantalla? Porque yo estoy usando gFTP he intentando escalar al directorio superior en la parte derecha de la pantalla que es donde salen las carpetas y archivos de mi usuario FTP y no lo he conseguido, me devuelve un error. Revisa los permisos de las carpetas y demás porque pueda que venga de ahí el error.

      Si sigue produciendose dicho error avisame e intento echarle un vistazo mas a fondo, pero seguramente sea un problema con los permisos.

  5. estimado para cuando tendras el comienzo de el servidor de correos??

    estoy ansioso por aprenderlo !!

    el tutorial muy bueno!!

    1. Gracias por tu comentario! El servidor de correo estará dentro de poco, es de los servicios mas extensos para instalar ya que estoy orientandolo con filtro antispam, autenticación segura, etc. Pero pronto vendrá la primera parte de dicho servicio asi que estate atento 😉

  6. no me funciona lo del ftp 🙁 al intentar con el gFTP 2.0.18 me arroja esto 530
    Login authentication failed
    Desconectando del sitio 127.0.0.1

    1. No, eres el unico jemr hasta que consegui hacerlo andar tuve que revisa mil y una veces la configuración, revisa todo bien que seguro que te has dejado alguna cosilla por ahi suelta. Si sigue sin funcionarte avisame y repaso de nuevo todo el tutorial.

  7. Muy buenas Juan Santamaría.

    Muchísimas gracias por este PEDAZO de tutorial super completo.
    Te escribo para animarte, al igual que martin, a continuar con el servidor de correos.
    ¿Qué servidor de correos utilizará para la siguiente parte del manual?

    Muchas gracias :).

  8. hola juanmil gracias me servio de mucha ayuda pero tengo un problemita que ya ta montado el server pero no puedo verlo en la web como ago tengo que tener dns o que ayuda ps siiii

  9. CUANDO VOY HACER EL FTP NO ME CONECTA ME SALE ERROR
    gFTP 2.0.18, Copyright (C) 1998-2003 Brian Masney . Si tiene alguna pregunta, comentarios o sugerencias sobre este programa, por favor envíemelas. Puede obtener en cualquier momento las últimas noticias sobre el gFTP de mi página web en http://www.gftp.org/
    gFTP se entrega sin ABSOLUTAMENTE NINGUNA GARANTÍA; para más detalles, lea el archivo COPYING. Esto es software libre, y usted puede redistribuirlo bajo ciertas condiciones; para más detalles, lea el archivo COPYING.
    Francisco Javier F. Serrador
    Gustavo D. Vranjes
    Buscando localhost
    Intentando iestpviru:21
    Conectado a localhost:21
    220———- Welcome to Pure-FTPd [privsep] [TLS] ———-
    220-You are user number 1 of 50 allowed.
    220-Local time is now 12:40. Server port: 21.
    220-IPv6 connections are also welcome on this server.
    220 You will be disconnected after 15 minutes of inactivity.
    USER iestpviru

    331 User iestpviru OK. Password required
    PASS xxxx
    530 Login authentication failed
    Desconectando del sitio localhost
    URL recibida file:///root/.gftp/
    Se cambió al directorio local /root/.gftp correctamente
    Buscando localhost
    Intentando iestpviru:21
    Conectado a localhost:21
    220———- Welcome to Pure-FTPd [privsep] [TLS] ———-
    220-You are user number 1 of 50 allowed.
    220-Local time is now 12:41. Server port: 21.
    220-IPv6 connections are also welcome on this server.
    220 You will be disconnected after 15 minutes of inactivity.
    USER iestpviru

    331 User iestpviru OK. Password required
    PASS xxxx
    530 Login authentication failed
    Desconectando del sitio localhost

    DIGAME QUE DEBO HACER IO EVISTO ODO SU MANUAL PASO A PASO

Los comentarios están cerrados.