4. Usuarios Virtuales. 1 Creamos un grupo y usuarios virtuales. Otras opciones




descargar 69.34 Kb.
título4. Usuarios Virtuales. 1 Creamos un grupo y usuarios virtuales. Otras opciones
fecha de publicación06.03.2016
tamaño69.34 Kb.
tipoDocumentos
b.se-todo.com > Derecho > Documentos

Pure-FTPd A. Bueno

Como montar un servidor Pure-FTPd versión 1.0
Antonio Bueno

www.portaleso.com
Este documento tiene como objetivo ayudarte a instalar un servidor FTP con el conocido servidor Pure-FTPd. En este documento pretendo dejar en marcha el servidor y espero ayudarte a solucionar los problemas que me surgieron a mí. No llega a ser un manual pero sin lugar a dudas te resultará muy útil.
Resaltar que para poder instalarlo debes tener acceso como root a la máquina linux.

Índice


1. Introducción.

2. Requerimientos y puesta en marcha.

2.1 Requisitos de Hardware.

2.2 Dependencias.

2.3 Obtención de las Fuentes (manos a la obra).

2.4 Creando el Makefile.

2.5 Compilación e instalación.

3. Arrancando el Servidor.

3.1 Arrancando desde la línea de comandos (configuración).

3.2 Arrancando desde Inetd (configuración).

3.3 Como un 'daemon'.

3.4 Arrancando al inicio.

3.5 Paso de Parámetros.

3.6 Prueba del Servidor.

4. Usuarios Virtuales.


4.1 Creamos un grupo y usuarios virtuales.

5. Otras opciones.


5.1 Ratios.

5.2 Banners y mensajes de bienvenida.

5.3 Permitiendo Uploads.

6. Conclusión y observaciones.

7. Derechos del Autor.

1. Introducción

Pure-FTPd es un servidor FTP libre (GPL) basado en Troll-FTPd. Fue modificado por Frank Dennis por razones de seguridad y funcionalidad.
Los principales objetivos de este servidor FTP son la eficiencia, la seguridad y la facilidad de uso. Está diseñado para ser seguro en su configuración por defecto; no tiene buffer overflows conocidos y es muy sencillo de instalar. Ha sido diseñado para los kernels modernos, y ha sido portado con éxito a Linux, FreeBSD, NetBSD, OpenBSD, BSDi, Solaris, Darwin, Tru64, Irix y HPUX.

2. Requerimientos y Puesta en Marcha
2.1 Requisitos del Hardware.
Yo he instalado el pureftpd bajo Suse 8.0. El hardware no tiene mucho que ver en esto ya que el servidor crea su puerto, generalmente el 21 y no se preocupa de lo físico. Hasta ahora no tengo noticias de conflictos con el hardware y no creo que aparezcan.
2.2 Dependencias.
Luego de haber instalado el servidor, cosa que vamos a ver en el punto siguiente, el pureftpd depende de él mismo.
Aunque parezca ridículo decirlo, el puerto que ocupa el FTP no debe estar ocupado, sino tu servidor nunca subirá.
Para compilarlo necesitas el gcc, de la versión 2.95 hacia arriba. Obviamente debes tener las librerías necesarias como glibc, pero eso esta en casi la mayoría de las estaciones Linux (por no decir en todos). Los nombres de los paquetes que contiene esas librerías difieren con la distribución que uses. La distribución de Suse lo incorpora y puedes ayudarte a instalarlo con el YaST.
Pureftpd soporta la comunicación entre LDAP, PostgreSQL y/o MySQL, así que si quieres compilarlo con alguno de esas directrices, primero debes tenerlos instalados para luego darle la ruta donde encontrarlos.
2.3 Obtención de las Fuentes (manos a la obra).
Existen los paquetes precompilados, como son para Suse, Slackware, Debian o Redhat. Bueno, yo me limito a explicar como se realiza la instalación a través de las fuentes y creo que es mejor, de hecho yo lo hice así. Además, compilando no pierdes tanto tiempo en comparación a una compilación por ejemplo de Kde.
No lo he instalado del binario. Sin embargo las personas que pertenecen al grupo de desarrollo de pureftpd colocan los binarios para varias distribuciones Linux. Busca mas información en la página oficial. Y de allí mismo te podrás bajar las ultimas fuentes del servidor. http://www.pureftpd.org
Lo primero de todo será bajarnos el último fuente, actualmente es la versión 1.0.17. El fichero a bajar será pure-ftpd-1.0.17.tar.gz. o pure-ftpd-1.0.17.tar.bz2 que puedes encontrar en ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/
Para hacer esto debes almacenarlo en un directorio temporal de root, que debes crear en primer lugar.
# md /root/install

# cd /root/install
2.4 Creando el Makefile.
Si ya has compilado alguna aplicación alguna vez esto ya será trivial para ti. Si ya tienes las fuentes es hora de que los descomprimas. Si lo bajaste como .bz2 o .gz debes hacer lo siguiente desde el intérprete de comandos de linux:
# tar -jxvf pure-ftpd-1.0.17.tar.bz2 eso te permitirá descomprimir el .bzip

# tar -zxvf pure-ftpd-1.0.17.tar.gz eso te permitirá descomprimir el .gz
Entra en el directorio y encontraras un archivo llamado configure y ejecútalo con las opciones que desees.
# cd pure-ftpd-1.0.17

# ./configure --with-puredb --with-throttling --with-language=spanish --with-ftpwho
Si deseas conocer todas las opciones puedes verlas con:
# ./configure --help
te mostrara todas las opciones de configuración que exista hasta el momento. Estas son algunas de ellas:


--with-puredb

Nos permite crear usuarios virtuales para el FTP.

--with-throttling

Para poder limitar el ancho de banda.

--with-language=spanish

Soporte en castellano de los mensajes del servidor.

--with-ftpwho

Nos permite ver quien está conectado.



Si al ejecutar el configure con las opciones deseadas como en el ejemplo sale todo bien entonces debes ver algo así.



configure: creating ./config.status

config.status: creating Makefile

configure: +-------------------------------------------------------------------------------+

configure: | You can subscribe to the Pure-FTPd users mailing-list |

configure: | to ask for help and to stay informed of new releases. |

configure: | Go to http://www.pureftpd.org/ml/ now! |

configure: +-------------------------------------------------------------------------------+
A estas alturas el Makefile esta creado y estamos listos para la Compilación.
2.5 Compilación e Instalación
La compilación se realiza con la orden

# make

Opcionalmente puedes escribir

# make check

el cual ejecutara scripts para ver como queda la compilación.
Luego como root haces la instalación

#make install

el cual instalara los binarios y manuales ya creados en el directorio dado en el configure.

Si no le has dicho nada por defecto lo instalara en usr/local/sbin


3 Arrancando el Servidor



3.1 Arrancando desde la línea de comandos (configuración).
Pure-FTPd es configurable a través de la línea de comandos, es decir, a la hora de arrancar el servidor le pasamos como parámetros las opciones que queramos.
Tenemos también otra opción que es editar el fichero /etc/pureftpd.conf, con el script pure-config.pl que acompaña el programa. Esta opción no la he probado.
# /usr/local/sbin/pure-ftpd
Algunas opciones disponibles:


-A

La raíz del usuario que entra es sólo su /home. No puede salir de allí. Eso bloquea que los usuarios naveguen por todo el sistema. No pueden salir del directorio del FTP.

-c 10

10 conexiones máximas al FTP. Si no se especifica esta opción, el máximo será 50.

-B

Ejecutar en segundo plano como un daemon.

-C 2

Permite solamente 2 conexiones para una misma IP. Se debe poner un número entero positivo para que funcione.

-d

Verbose log.

-e

Solo permite usuarios anónimos.

-E

No permite usuarios anónimos.

-f ftp

Logear a través de syslog.

-H

No resolver IP.

-I 15

Si el usuario está 15 minutos inactivo, es desconectado

-L 2000:8

Límite de recursividad.

-m 3

Máxima carga por encima de la cual el servidor deja de funcionar.

-r

Si se sube un archivo que ya existe no se sobre escribe sino que le pone un nombre similar.

-s

Antiwarez.

-t 8

Controla o limita el ancho de banda de subida y bajada a los usuarios anónimos. El entero indica Kilo Bytes máximo permitido.

-T 16

Controla o limita el ancho de banda de subida y bajada a todos los usuarios. El entero indica Kilo Bytes máximo permitido.

-U 133:022

umask

-u 100

No permite que usuarios que estén bajo el uid dado por el número entero entren al sistema. Por ejemplo si fuera la opción –u20 todos los usuarios que tengan el uid por debajo de 20 no podrán entrar, como el root.

-k 90

Se podrá usar como máximo el 90% de la partición.

-lpuredb:/etc/pureftpd.pdb

Usaremos usuarios virtuales de FTP en vez de cuentas reales del sistema.

-S hostname_o_ip,puerto

Escuchamos en el puerto especificado de esa IP o Hostname, si el equipo tiene varias IPs.


*Nota: Para acceder a la lista completa de opciones obtenla de la documentación original del Pure_FTPd.

3.2 Arrancando desde Inetd (configuración).
Primero que nada, debes saber que inetd es un “super demonio de Internet“ y la función que tiene es escuchar los puertos especificos y en el momento de recibir alguna petición “despertar al servidor que le corresponda“.
En nuestro caso Pure-FTPd que ocupa el puerto 21. Para que funcione debes añadir una línea en el archivo /etc/services parecida a esta o comprobar que ya está:
ftp 21/tcp # Algún Comentario que quieras
Si deseas cambiar el puerto de salida del ftp es aquí donde debes modificarlo.
Luego añade en el /etc/inetd.conf una línea así
ftp stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/pure-ftpd
Si deseas, pasarle algunos parámetros, te aconsejo que le pases sólo hasta 4 o 5.
ftp stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/pure-ftpd -I2 -c3

Luego de haber hecho lo de arriba debes reiniciar el inetd. Hazlo matando el pid del proceso.
# killall inetd
y luego reinícialo ejecutando como root
# inetd o /usr/sbin/inetd

3.3 Como un daemon
Este modo lo recomiendo porque a través de inetd se puede realizar fácilmente un ataque de DoS (Denegación de Servicio) ya que el inetd deja de escuchar por un tiempo cuando hay muchas conexiones simultaneas. Los desarrolladores dicen que es mejor usar el xinetd u otro que exista. Pero de todas maneras recomiendan este modo.
Para hacer esto es sumamente fácil en la línea de comando escribe
#/usr/local/sbin/pure-ftpd -B
y si quieres asegúrate de que está activo.

3.4 Arrancando al inicio
Si tu servidor esta configurado para que arranque con inetd o xinetd debes preocuparte que ellos partan al inicio o cuando tu lo digas.
En SuSE hay una aplicación llamada YaST, en la que puedes configurar el modo de arranque del servidor y el nivel donde debe arrancar. Para ello selecciona Sistema y luego el Editor de niveles de ejecución dentro de éste, selecciona el nivel de ejecución, por defecto es el 5 y al editar los detalles selecciona el inetd en el nivel que desees (5).
Otra forma es que agregues una línea en el /etc/rc.local o le digas al sistema que lo haga.
En Slackware hay una parte en el /etc/rc.d/rc.inet2 que dice así:
# Start FTP Service

if [ -x /etc/rc.d/rc.ftp ]; then

/etc/rc.d/rc.ftp

fi

# Done Starting FTP Service
y el archivo /etc/rc.d/rc.ftp tiene esto:
/usr/local/sbin/pure-ftpd -A -B -C1 -c5 -E -I2 -r -u100
nada más.
3.5 Paso de Parámetros
Todas las opciones deben estar antepuestas por un guion (-) como se muestra en

la línea siguiente, ojo en la línea de comando entre la opción y el número se deja un espacio mientras que en fichero de configuración inetd no se debe dejar el espacio.
/usr/local/sbin/pure-ftpd -B -c10 –C1 -E -I2 –lpuredb:/etc/pureftdp.pdb
donde configuramos:
-B = Como un daemon.

-c10 = 10 conexiones máximas al ftp.

-C1 = 1 conexión máxima para una misma IP.

-E = no permitir usuarios anónimos.

-I2 = 2 si el usuario esta más de dos minutos sin hacer nada se desconecta.

-lpuredb:/etc/puerftdp.pdb = Usaremos usuarios virtuales en lugar de cuentas reales del sistema.
3.6 Prueba del Servidor
Las 3 primeras pruebas sólo serán para ver si el servidor esta arriba y eso es todo lo que necesitaras. Luego deberás ver como se porta durante el transcurso del tiempo pero eso lo debes hacer tu. Yo lo he probado desde hace algún tiempo.
Puedes hacer lo siguiente:
#telnet 127.0.0.1 21
y recibirás algo como
admin@luvex:/$ telnet 127.0.0.1 21

Trying 127.0.0.1...

Connected to 127.0.0.1.

Escape character is '^]'.

220---------- Welcome to Pure-FTPd 1.0.14 ----------

220-You are user number 1 of 50 allowed.

220-Local time is now 01:32 and the load is 0.05. Server port: 21.

220 You will be disconnected after 15 minutes of inactivity.
Fíjate que debes especificar el puerto al finalizar la linea, en nuestro caso el 21
#netstat -l
veras la línea del ftp así
admin@luvex:/$ netstat -l

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 *:x11 *:* LISTEN

tcp 0 0 *:ftp *:* LISTEN
o por ultimo busca el proceso con
#ps aux | grep pure-ftpd
y allí veras el pid
admin@luvex:/$ ps aux | grep pure-ftpd

root 6198 0.0 0.4 1608 548 ? S 01:29 0:00 pure-ftpd (SERVER)

admin 6242 0.0 0.3 1404 464 pts/0 S 01:36 0:00 grep pure-ftpd
Si deseas pruébalo con algún cliente. Yo lo haré con el ncftp, mira:
admin@luvex:/$ ncftp 127.0.0.1

NcFTP 3.1.3 (Mar 27, 2002) by Mike Gleason (ncftp@ncftp.com).

Connecting to 127.0.0.1...

--------- Welcome to Pure-FTPd 1.0.14 ----------

You are user number 1 of 50 allowed.

Local time is now 01:42 and the load is 0.04. Server port: 21.

You will be disconnected after 15 minutes of inactivity.

Remote host has closed the connection.

Unable to set up secure anonymous FTP

Sleeping 20 seconds...
Te fijaste, bueno en mi host no dejo entrar a anónimos así que usare una cuenta:
admin@luvex:/$ ncftp -u admin 127.0.0.1
NcFTP 3.1.3 (Mar 27, 2002) by Mike Gleason (ncftp@ncftp.com).

Connecting to 127.0.0.1...

--------- Welcome to Pure-FTPd 1.0.14 ----------

You are user number 1 of 50 allowed.

Local time is now 01:43 and the load is 0.02. Server port: 21.

You will be disconnected after 15 minutes of inactivity.

Logging in...

Password requested by 127.0.0.1 for user "admin".

User admin OK. Password required

Password: ********

User admin has group access to: users

OK. Current directory is /home/admin

Logged in to 127.0.0.1.

ncftp /home/admin >

4. Usuarios Virtuales



4.1 Creamos un grupo y usuarios virtuales.
Antes de nada añadiremos a nuestro sistema un usuario y grupo llamado ftp.
El grupo se puede crear con la ayuda de YaST en SuSE, y el usuario se crea de forma virtual con la herramienta pure-pw. El usuario no es un usuario del sistema, repito no es un usuario del sistema.
Se recomienda utilizar usuarios virtuales en lugar de cuentas del sistema, por eso he habilitado la opción AUTH (-lpuredb:/etc/pureftpd.pdb).
Para manejar los usuarios, utilizaremos la herramienta pure-pw.
Por ejemplo, si queremos añadir al usuario pepe, lo haremos de la siguiente forma:
# pure-pw useradd pepe -u 501 -g ftp -d /home/ftp/pepito -t 5 -T 10

password:

# pure-pw mkdb


-u

User ID (identificación del usuario debe ser superior a 500)

-g

Group ID (identificación del grupo, corresponde con en número del grupo creado)

-d

Directorio al que tiene acceso el usuario

-m

Actualiza la base de datos automáticamente /etc/pureftpd.pdb

-t 5

5 Kb/s de límite de ancho de banda de bajada

-T 10

10 Kb/s de límite de ancho de banda de subida


Una vez introducido el password, lo siguiente que he hecho ha sido actualizar la base de datos /etc/pureftpd.pdb para que los cambios surtan efecto.
Otra forma de obtener la actualización de la base directamente es incluyendo la opción –m.
Para eliminar y modificar usuarios usaremos respectivamente las opciones userdel y usermod de la herramienta pure-pw. El manejo es muy intuitivo y sencillo, así que con la

ayuda en línea del propio programa es suficiente.
# pure-pw -help
Tiene gran número de posibilidades de configuración permitiendo el acceso a los usuarios sólo durante algunas horas al día.
Cada usuario tiene un número distinto identificador, luego si deseo crear otro usuario ahora tendrá el User ID = 502, y así sucesivamente.

5. Otras opciones



5.1 Ratios.
Los ratios se usan para obligar a los usuarios a dejar algún fichero de X megas en el FTP para poder bajar Y megas. Para activar los ratios usaremos la opción -q X:Y (upload:download).
5.2 Banners y mensajes de bienvenida.
Si en el directorio raíz del ftp grabamos un fichero de nombre .banner, de tamaño no superior a 4000 bytes, éste será impreso por pantalla cuando el usuario acceda al FTP.
En cada directorio también podemos grabar un fichero .message para que sea impreso cada vez que el usuario accede al directorio.
5.3 Permitiendo Uploads.
La problemática del directorio upload es que, al tener permiso de escritura, en principio los usuarios pueden borrar los ficheros, usar el directorio para intercambiar warez, etc.
Esto lo podemos evitar estableciendo permisos de escritura y ejecución al directorio pero no de lectura (drwx-wx-wx), con chmod 333.
Otra posibilidad es arrancar el servidor pure-ftpd con la opción -U 777:777, de forma que los ficheros que suban los usuarios tendrán permisos ----------. De esta forma no podrán ser descargados.


6. Conclusión y Observaciones



El Pure-FTPd es un servidor FTP fiable e interesante que nos provee de muchas opciones de configuración con el que podemos crear nuestro propio servidor FTP.
Te recomiendo que cuando hayas subido tu servidor estés continuamente revisando el sitio oficial por si hay bugs de seguridad. Para que mantengas tu servicio lo más actualizado y robusto posible.
Por supuesto no soy ninguna autoridad en Pure-FTPd, tan solo pretendo hecha una mano a quines quieren tener montado su servidor FTP, por lo que espero haber puesto la información suficiente para que instales el tuyo sin problemas.
7. Derechos del Autor.
Puedes distribuir este documento a cuantas personas, amigos o instituciones desees. Lo quise hacer GPL para que cualquier persona pueda distribuir libremente este material ya sea por escrito o de forma electrónica.
Un saludo a todos A. Bueno

http://www.portaleso.com

fecha: 20/02/04


similar:

4. Usuarios Virtuales. 1 Creamos un grupo y usuarios virtuales. Otras opciones iconSolución de ejercicios virtuales Desarrollo

4. Usuarios Virtuales. 1 Creamos un grupo y usuarios virtuales. Otras opciones icon2. derechos y deberes de los usuarios y consentimiento informado

4. Usuarios Virtuales. 1 Creamos un grupo y usuarios virtuales. Otras opciones iconAulas virtuales Dr. Omar José Miratía Moncada

4. Usuarios Virtuales. 1 Creamos un grupo y usuarios virtuales. Otras opciones iconResolución de un problema de construcción de circuitos virtuales a través de ag 11

4. Usuarios Virtuales. 1 Creamos un grupo y usuarios virtuales. Otras opciones iconPorque son miles de usuarios satisfechos en 15 países del continente

4. Usuarios Virtuales. 1 Creamos un grupo y usuarios virtuales. Otras opciones iconA-life: bienvenido al universo de criaturas virtuales y virus inteligentes

4. Usuarios Virtuales. 1 Creamos un grupo y usuarios virtuales. Otras opciones iconLa verdad sobre los efectos de microondas emitidas por celulares en Salud de usuarios

4. Usuarios Virtuales. 1 Creamos un grupo y usuarios virtuales. Otras opciones iconResumen la organización de un curso basado en nuevas tecnologías...

4. Usuarios Virtuales. 1 Creamos un grupo y usuarios virtuales. Otras opciones iconResumen El presente trabajo es un estudio sobre las necesidades detectadas...

4. Usuarios Virtuales. 1 Creamos un grupo y usuarios virtuales. Otras opciones iconResumen El artículo estudia las estrategias de los usuarios de las...




Todos los derechos reservados. Copyright © 2019
contactos
b.se-todo.com