UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA
ESCUELA DE INFORMÁTICA
REDES DE COMPUTADORES 1
PRÁCTICA 2: INSTALACIÓN Y CONFIGURACIÓN DE UN SERVIDOR FTP
NOMBRES: ANGEL OSWALDO VÁZQUEZ PATIÑO
NOTA: ______
INTRODUCCIÓN
FTP (File Transfer Protocol) o Protocolo de Transferencia de Archivos es uno de los protocolos
estándar más utilizados en Internet. Es un protocolo muy útil para la transferencia de grandes
bloques de datos a través de redes que soporten TCP/IP.
El servicio utiliza los puertos 20 y 21, exclusivamente sobre TCP. El puerto 20 es utilizado para el
flujo de datos entre cliente y servidor. El puerto 21 es utilizado para el envío de comandos del
cliente hacia el servidor.
Todos los sistemas operativos y plataformas incluyen soporte para FTP, lo que permite que
cualquier computador conectado a una red que funciona sobre TCP/IP pueda hacer uso de este
servicio a través de un cliente FTP.
Hay varias versiones de FTP disponibles en el mercado, las más conocidas son: VS-FTP, PURE-
FTP. Como clientes FTP existen algunos programas disponibles, uno de ellos es Putty.
El proceso servidor FTP vsftpd (o Very Secure FTP Daemon) está diseñado desde la base para ser
rápido, estable y seguro. Su capacidad para manejar grandes números de conexiones de forma
eficiente y segura es lo que hace que vsftpd sea el FTP preferido por Red Hat.
El modelo de seguridad utilizado por vsftpd tiene tres aspectos principales:
Clara separación de procesos privilegiados y sin privilegios: Procesos separados manejan tareas
diferentes y cada uno de estos procesos se ejecuta con los privilegios mínimos requeridos para
la tarea.
Las tareas que requieren altos privilegios son manejadas por procesos con los mínimos
privilegios necesarios: Influenciando las compatibilidades encontradas en la biblioteca libcap,
las tareas que usualmente requieren privilegios de súper usuario se pueden ejecutar de forma
más segura desde un proceso menos privilegiado.
La mayoría de los procesos se ejecutan dentro de un ambiente chroot: Siempre que sea posible,
se cambia la raíz de los procesos al directorio compartido; este directorio se considera luego
como el ambiente chroot. Por ejemplo, si el directorio /var/ftp/ es el directorio compartido
principal, vsftpd reasigna /var/ftp/ al nuevo directorio raíz, conocido como /. Esto previene
actividades maliciosas de cualquier hacker potencial en algún directorio que no estén por debajo
del nuevo directorio root.
OBJETIVOS
Los objetivos de la práctica son:
a. Instalar el servicio FTP en un servidor Linux.
b. Configurar y hacer disponible a usuarios del sistema el servicio FTP.
c. Verificar el esquema de seguridad básica del sistema operativo en el esquema de FTP.
d. Instalar y utilizar un cliente FTP bajo el sistema Windows para la transferencia de archivos
mediante FTP
PROCEDIMIENTO
Paso 1. Instalar el software de VS-FTP (http://vsftpd.beasts.org/) a partir de un archivo RPM. Para
ello ejecutar el comando:
yum -y install vsftpd
En primer lugar verificamos si el paquete ya está instalado, esto lo hacemos como se muestra en la
siguiente imagen (si no se produce ningún resultado significa que no está instalado el paquete).
Como se ve, el paquete no está instalado aún. Para la instalación del paquete vsftpd, se descargó el
paquete desde internet y se lo instaló manualmente con el comando rmp –ivh vsftpd-2.0.7-
1.fc10.i386.rmp (debemos estar como root), como se muestra a continuación en la imagen; luego
se verifica que el paquete ya está instalado con grep.
Paso 2. Verificación de la instalación. Los archivos que normalmente se instalan con vsftpd son:
El RPM vsftpd instala el servidor /usr/sbin/vsftpd, su archivo de configuración y otros archivos
relacionados, así como también directorios FTP en el sistema. La siguiente es una lista de los
archivos y directorios considerados más a menudo cuando se configura vsftpd:
/etc/rc.d/init.d/vsftpd: El script de inicialización (initscript) utilizado por el comando
/sbin/service para iniciar, detener o volver a cargar vsftpd.
/etc/pam.d/vsftpd: El archivo de configuración de los Pluggable Authentication Modules (PAM)
para vsftpd. Este archivo define los requerimientos que debe cumplir un usuario para conectarse
a un servidor FTP.
/etc/vsftpd/vsftpd.conf: El archivo de configuración para vsftpd.
/etc/vsftpd/ftpusers: Una lista de los usuarios que no tienen permitido conectarse a vsftpd. Por
defecto esta lista incluye a los usuarios root, bin y daemon, entre otros.
/etc/vsftpd/user_list: Este archivo se puede configurar para negar o permitir el acceso a los
usuarios listados, dependiendo de si la directriz userlist_deny está configurada a YES (por
defecto) o a NO en /etc/vsftpd/vsftpd.conf. Si se utiliza /etc/vsftpd.user_list para permitir acceso
a los usuarios, los nombres de usuarios listados no deben aparecer en /etc/vsftpd.ftpusers.
El directorio /var/ftp/: El directorio que contiene los archivos servidos por vsftpd. También
contiene el directorio /var/ftp/pub/ para los usuarios anónimos. Ambos directorios están
disponibles para la lectura de todos, pero sólo el superusuario o root puede escribir en él.
Paso 3. Configuración de VSFTP. Para ello editar el archivo vsftpd.conf y registrar los siguientes
cambios:
anonymous_enable. Este parámetro se utiliza para definir si se permitirán los accesos anónimos al
servidor. Establezca el valor como valores YES o NO de acuerdo a lo que se requiera.
anonymous_enable=YES
local_enable: Este parámetro es muy útil si se combina con la función de “jaula”. Establece si se
van a permitir los accesos autenticados de los usuarios locales del sistema. Establezca el valor YES
o NO de acuerdo a lo que se requiera.
local_enable=YES
write_enable: Este parámetro establece si se permite el mandato "write" (escritura) en el servidor.
Establezca el valor YES o NO de acuerdo a lo que se requiera.
write_enable=YES
ftpd_banner: Este parámetro sirve para establecer el banner de bienvenida que será mostrado cada
vez que un usuario acceda al servidor. Puede establecerse cualquier frase breve que considere
conveniente.
ftpd_banner=Bienvenido al servidor FTP de nuestra empresa.
Estableciendo jaulas para los usuarios: chroot_local_user y chroot_list_file: De modo
predefinido los usuarios del sistema que se autentiquen tendrán acceso a otros directorios del
sistema fuera de su directorio personal. Si se desea recluir a los usuarios a solo poder utilizar su
propio directorio personal, puede hacerse fácilmente con el parámetro chroot_local_user que
habilitará la función de chroot() y los parámetros chroot_list_enable y chroot_list_file para
establecer el archivo con la lista de usuarios que quedarán excluidos de la función chroot().
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
Con lo anterior, cada vez que un usuario local se autentique en el servidor FTP, solo tendrá acceso a
su propio directorio personal y lo que este contenga. No olvide crear /etc/vsftpd/vsftpd.chroot_list,
ya que de otro modo no arrancará vsftpd.
Nota: en el archivo de configuración de la práctica no se encontró la línea
chroot_local_user=YES, pero se la incorporó.
Creación del archivo /etc/vsftpd/vsftpd.chroot_list
Control del ancho de banda. anon_max_rate: Este parámetro es utilizado para limitar la tasa de
transferencia en bytes por segundo para los usuarios anónimos, algo sumamente útil en servidores
FTP de acceso público. Por ejemplo si se desea limitar la tasa de transferencia a 5 Kb por segundo
para los usuarios anónimos:
anon_max_rate=5120
Nota: en el archivo de configuración de la práctica no se encontró la línea
anon_max_rate=5120, pero se la incorporó.
local_max_rate: Este parámetro hace lo mismo que anon_max_rate, pero aplica para usuarios
locales del servidor. En el siguiente ejemplo se limita la tasa de transferencia a 5 Kb por segundo
para los usuarios locales:
local_max_rate=5120
Nota: en el archivo de configuración de la práctica no se encontró la línea
local_max_rate=5120, pero se la incorporó.
max_clients: Este parámetro establece el número máximo de clientes que podrán acceder
simultáneamente hacia el servidor FTP. Por ejemplo se va a limitar el acceso a 5 clientes
simultáneos.
max_clients=5
Nota: en el archivo de configuración de la práctica no se encontró la línea max_clients=5,
pero se la incorporó.
max_per_ip: Este parámetro establece el número máximo de conexiones que se pueden realizar
desde una misma dirección IP. Tome en cuenta que algunas redes acceden a través de un servidor
proxy o puerta de enlace y debido a esto podrían quedar bloqueados innecesariamente algunos
accesos. Si se desea limitar el número de conexiones por IP simultáneas a 5, pondríamos la
siguiente línea.
max_per_ip=5
A continuación se muestra el archivo de configuración antes y después de haberlo editado con los
parámetros pedidos.
Antes
Después
Paso 4: El servicio FTP podrá inicializarse, detenerse o reinicializarse a través del comando service
y añadirse al arranque del sistema en un nivel o niveles de ejecución en particular con el mandato
chkconfig.
Para ejecutar por primera vez el servicio, ejecute:
/sbin/service vsftpd start
Para hacer que los cambios hechos a la configuración surtan efecto, ejecute:
/sbin/service vsftpd restart
Para detener el demonio, ejecute:
/sbin/service vsftpd stop
Para añadir VSFTPD al arranque del sistema, que son los niveles regularmente utilizados para
trabajar, ejecute:
/sbin/chkconfig vsftpd on
Paso 5. Verifique que el servicio FTP esté activo mediante el comando telnet:
telnet IP_SERVIDOR 21
Para que haya la conexión en primer lugar debemos añadir a los clientes ftp que aceptara el
servidor. Esto se realiza editando el archivo creado /etc/vsftpd/vsftpd.chroot_list; antes de editar el
archivo hemos creado un nuevo usuario en el servidor llamado clienteftp. La edición del archivo
mencionado se muestra a continuación.
A continuación se muestra la ejecución del comando telnet 192.168.0.2 21 desde la misma máquina
servidor (host2, 192.168.0.2).
A continuación se muestra la ejecución del comando ftp 192.168.0.2 desde otra máquina de la red
(host1, 192.168.0.1).
Paso 6. Con un usuario disponible en el sistema, conectarse al servidor FTP mediante el comando:
ftp IP_SERVIDOR y realice la transferencia de un archivo binario y de uno de texto. Indique
los comandos empleados para cada transferencia.
En primer lugar vamos a descargar desde el cliente un archivo del servidor ftp creado. Para esto lo
primero que se debe hacer es copiar archivos (para la práctica una imagen y un texto) a la carpeta
/var/ftp/pub del servidor. Los archivos de la carpeta se muestran a continuación.
Luego realizamos la descarga en modo binario desde el servidor del archivo imagendescarga.
Este procedimiento se muestra a continuación.
Se verifica que es archivo este en el directorio especificado
(/home/angelv/Descargas/descargadajpg). Esto se puede ver en la siguiente imagen.
Se utiliza el comando get para descargar algún archivo desde el servidor; existen los modos de
texto y binario, para acceder en forma binaria (por defecto) se utiliza binary y para bajar el archivo
en forma texto se utiliza ascii.
A continuación descargaremos el archivo textodescarga.txt. En la siguiente imagen se
muestra la descarga en modo texto, utilizando para ello el comando ASCII.
A continuación verificamos que el archivo se haya descargado al cliente.
Como siguiente paso se subirá un archivo al servidor de ftp; para tal fin se utiliza el comando put.
Un error que se presentó es que, al momento de intentar mandar el archivo desde el cliente al
servidor ftp, no se nos permite. Para arreglar el problema en el servidor tenemos que ejecutar el
siguiente comando setsebool –P ftp_home_dir=1, este comando es el que indica el navegador de
problemas SE. Este navegador muestra que se bloqueó el demonio de ftp (se muestra a
continuación).
La ejecución del comando antes mencionado se muestra a continuación.
Una vez solucionado el inconveniente, se procede a enviar el archivo
(/home/angelv/archivo.rpm) hacia el servido (/home/clienteftp/subido.rpm) en forma
binaria como se muestra a continuación.
Ahora se procede a enviar el archivo (/home/angelv/archivo.rpm) hacia el servido
(/home/clienteftp/subido.rpm) en forma texto como se muestra a continuación.
A continuación verificamos los archivos subidos al servidor (host2, 192.168.0.2).
Paso 7. Obtenga en Internet un cliente FTP para la versión de Microsoft Windows disponible en el
computador que emplee para realizar la práctica e instálelo. Por ejemplo, puede descargarse del sitio
Web http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html una versión de Putty y
emplearlo para realizar transferencias de archivos al servidor FTP instalado en pasos anteriores.
Otro cliente muy utilizado es Core-FTP (http://www.coreftp.com/download.html).
El cliente FTP que se descargó e instaló es Core-FTP.
A continuación se muestra el proceso de instalación.
Una vez instalado el software, iniciamos el programa.
Le podemos indicar que sea nuestro cliente FTP por defecto.
Una vez que ingresamos al programa no aparece la siguiente ventana en donde debemos poner los
datos del servidor ftp que configuramos a lo largo de la práctica.
Se hace click en Connect y se inicia la conexión con el servidor; después de aquello se nos presenta
el directorio del servidor y del computador de Windows (carpeta c:\), como se muestra a
continuación.
Para realizar la transferencia desde el servidor hacia el cliente (Windows Vista) hacemos click
derecho sobre el archivo a descargar (archivo.txt en el caso de la práctica) y escogemos
Download; en seguida se descarga el archivo hacia la carpeta que se indique en la parte izquierda
(E:\UNIVERSIDAD\4º AÑO\REDES DE COMPUTADORES I\TRABAJOS, TAREAS Y PRÁCTICAS\ en el
caso de la práctica). El proceso se muestra a continuación.
Se puede ver el archivo transferido, a la izquierda en la carpeta de Windows.
De una manera similar para transferir un archivo al servidor ftp, hacemos click derecho sobre el
archivo a transferir y escogemos Upload. El archivo se transferirá al servidor, mostrándose el
mismo a la derecha, en el directorio. El proceso se muestra a continuación.
INVESTIGACIÓN
1. Investigar y configurar el proceso de ejecución de múltiples copias de vsftpd
Lo pedido en esta parte de la práctica es llamado comúnmente como multihoming o multi-anfitrión,
eso significa que en un mismo servidor ftp se pueden ejecutar varios procesos o demonios del
mismo ftp, pero cada uno de ellos atendiendo un archivo de configuración distinto.
Lo primero que se debe hacer es crear y configurar todos los nuevos dispositivos Ethernet con su
respectiva dirección IP estática (DHCP no funciona con aliases); para el caso de esta práctica
crearemos solamente un dispositivo más aparte del que ya se tenía previamente (eth0), pero se
podrían añadir todos los que se necesiten o deseen. Vamos a la ventana de Configuración de Red
en la pestaña de Dispositivos se hace click en Nuevo. Estos primeros pasos se muestran a
continuación.
A continuación seleccionamos el dispositivo Ethernet Advanced Micro Devices [AMD] 79c970
[PCnet32 LANCE] (eth0) y configuramos el dispositivo con los parámetros (principalmente IP
192.168.0.3) más importantes; luego pulsamos el botón Adelante para posteriormente Aplicar los
cambios. Puesto que ya existe un dispositivo para la tarjeta Ethernet (eth0), el dispositivo Ethernet
que se acaba de crear tiene el alias eth0:1. A continuación se muestran los pasos dichos
anteriormente.
Para que vsftpd responda a las peticiones en diferentes direcciones IP, como ya se dijo
anteriormente, deben estar ejecutándose múltiples copias del demonio vsftpd. La primera copia se
debe ejecutar usando el initiscript vsftpd (/sbin/service vsftpd start). Esta copia utiliza el archivo
de configuración estándar, /etc/vsftpd/vsftpd.conf.
Cada sitio FTP adicional debe tener un archivo de configuración con un nombre único en el
directorio /etc/vsftpd/, para esta práctica se utilizará /etc/vsftpd/vsftpd-2.conf. Cada
archivo de configuración sólo debería ser legído y escrito por root. Dentro de cada archivo de
configuración para cada servidor FTP que se encuentre escuchando en la red IPv4, la siguiente
directriz debe ser única:
listen_address=N.N.N.N
Reemplazamos N.N.N.N con la única dirección IP para el sitio FTP que está siendo servido (en
cada archivo debe ser el IP de los diferentes dispositivos Ethernet). Si el sitio en cuestión está
utilizando IPv6, utilice la directriz listen_address6.
A continuación se muestra la edición del archivo /etc/vsftpd/vsftpd.conf.
A continuación se copia el archivo de configuración para el otro dispositivo que creamos (eth0:1);
se muestra además la edición del archivo /etc/vsftpd/vsftpd-2.conf.
Una vez que cada servidor adicional tenga su archivo de configuración listo, el demonio vsftpd se
debe lanzar con el comando siguiente:
vsftpd /etc/vsftpd/<configuration-file>
Se debe reemplazar <configuration-file> con el nombre único para el archivo de configuración, para
el caso de la práctica: /etc/vsftpd/vsftpd-2.conf; la ejecución se muestra a continuación.
Luego de realizarse estos pasos ya se tienen 2 servidores FTP ejecutándose (eth0 y eth0:1). No se
debe olvidar ejecutar o activar la interfaz alias (eth0:1), en caso de estar desactivada, se lo hace con
el comando ifup eth0:1.
A continuación se hará conección a los dos servidores ftp configurados, esto se lo hace desde el
host1 (192.168.0.1) hacia 192.168.0.2 (servidor principal) y 192.168.0.3 (servidor número 2).
2. Realizar la configuración del servidor Pure-FTP y hacer un cuadro comparativo
mostrando ventajas y desventajas entre las dos versiones de FTP: VS-FTPD y Pure-FTP.
En primer lugar instalaremos el paquete de pure-ftpd, antes de eso es necesario instalar también
los paquetes de mysql-libs y postgresql-libs. Luego de bajar los paquetes de internet, los
instalamos con el comando rpm –ivh archivorpm.rpm (archivorpm es el paquete a instalar). La
instalación de los tres paquetes se muestra a continuación.
A continuación procederemos con la configuración. En cuanto a la configuración, el procedimiento
es muy parecido a vsftpd, para la práctica se lo configurará con los mismos parámetros indicados
para vsftpd.
Fichero de configuración /etc/pure-ftpd/pure-ftpd.conf
Los valores predeterminados del fichero /etc/pure-ftpd/pure-ftpd.conf hacen que el
servicio funcione sin necesidad de cambio alguno y además lo haga de una forma segura. Sin
embargo existen varios parámetros que se deben conocer.
Parámetro MaxClientsNumber.
Establece el número máximo de usuarios conectados de forma simultánea. El valor predeterminado
es 50. Puede modificarse de acuerdo a un propósito en particular y disponibilidad de ancho de
banda.
MaxClientsNumber 5
Parámetro MaxClientsPerIP.
Establece el número máximo de conexiones desde una misma dirección IP. Considerando que
muchos usuarios pudieran acceder desde un servidor intermediario (proxy), lo cual significa que lo
harían con una misma dirección IP, el valor predeterminado de 8 puede ser modificado de acuerdo
al criterio del administrador.
MaxClientsPerIP 5
Parámetro DisplayDotFiles.
Establece si se permitirá mostrar los ficheros cuyo nombre inicia con un punto (ficheros ocultos)
cuando el usuario envíe un mandato de listado con la opción -a. En la mayoría de los casos, no es
conveniente permitir mostrar los ficheros ocultos.
DisplayDotFiles no
Parámetro NoAnonymous.
Define si se permitirán o no los accesos anónimos. En la mayoría de los casos, como un servidor
FTP público, es una función deseada. Si el administrador lo considera pertinente, puede
desactivarse cambiando el valor predeterminado no por yes.
NoAnonymous no
Parámetro AnonymousCanCreateDirs.
Define si se permite a los usuarios anónimos crear directorios cuando está permitido que éstos
puedan subir ficheros al servidor FTP. El valor predeterminado es no.
AnonymousCanCreateDirs no
Parámetro MaxLoad.
Define que los usuarios anónimos no podrán descargar desde el servidor FTP cuando éste tenga una
carga igual o superior al valor establecido. El valor predeterminado es 4.
MaxLoad 5
Parámetro AntiWarez.
Define que no sea posible descargar ficheros cuyo propietario sea el usuario ftp, como una medida
de seguridad que permitirá al administrador supervisar lo que se ha subido al servidor FTP antes de
permitir su distribución. El valor predeterminado es no, y se recomienda dejarlo de ese modo a fin
de contar con una buena política de seguridad.
AntiWarez no
Parámetro AnonymousBandwidth.
Define la tasa de Kb por segundo de descarga permitida para los usuarios anónimos.
#AnonymousBandwidth 12
Parámetro UserBandwidth.
Define la tasa de Kb por segundo de descarga permitida para todos los usuarios, incluyendo los
anónimos. Su utilización junto con el parámetro AnonymousBandwidth hace que este último no
tenga sentido. Se utiliza o bien UserBandwidth o bien AnonymousBandwidth. No puede
combinarse su uso. En el siguiente ejemplo, se establece que todos los usuarios, incluyendo los
anónimos, tendrán una tasa de hasta 12 Kb por segundo para descargar ficheros desde el servidor
FTP.
UserBandwidth 12
Parámetro umask.
Define la máscara predeterminada para los nuevos ficheros y nuevos directorios en el servidor FTP.
El valor predeterminado es 133:022. Si se desea que los ficheros subidos por un usuario solo sean
leídos por ese mismo usuario, se puede utilizar 177:077. Si se desea que los ficheros solo sean
leíbles y ejecutables para su propietario, se puede utilizar 077:077. Si se desea que los ficheros
subidos sean ejecutables, se puede utilizar 122:022. Si se desea que los ficheros sean leíbles para
otros usuarios, pero no puedan ser reescritos por éstos, se pude utilizar 022:022. El usuario, claro,
puede cambiar desde el cliente FTP la máscara utilizada en sus ficheros y directorios a través de
SITE CHMOD.
umask 133:022
Parámetro ProhibitDotFilesWrite.
Define si se permitirá sobreescribir ficheros que inicien con punto. Su valor predeterminado es no.
Si se trata de un servidor FTP que permite el acceso hacia el directorio raíz de un sitio virtual de un
servidor HTTP, es conveniente permitir sobrescribir los ficheros .htaccess, .htpasswd y otros
contenidos, por lo que no conviene activar este parámetro. De ser otro tipo de servidor, puede
activarse y añadir seguridad.
ProhibitDotFilesWrite no
Parámetro AnonymousCantUpload.
Define si se permitirá a los usuarios anónimos subir contenido hacia el servidor FTP. De modo
predefinido, este parámetro está activo para impedir lo anterior.
AnonymousCantUpload yes
Parámetro CreateHomeDir.
Especifica si se debe crear automática el directorio de inicio de un usuario en caso de no existir éste.
CreateHomeDir yes
Parámetro Quota.
Define la cuota de número máximo de ficheros y espacio utilizado por el usuario. Muy conveniente
y útil si se tiene un servidor FTP que permite subir contenido para un servidor HTTP compartido
por varios sitios de red virtuales. Para la presente práctica se establece una cuota máxima de 1500
ficheros y 50 MB de espacio a utilizar para los usuarios.
Quota 1500:50
Parámetro MaxDiskUsage.
Define el espacio máximo permitido en la partición que contiene /var/ftp para el servicio FTP donde
se está permitiendo que los usuarios anónimos suban contenido. El valor predeterminado es 99.
Conviene definir un límite más bajo si el servicio FTP no es prioritario en el sistema. Para la
presente práctica, se establece un uso máximo del 80% de la partición donde se localiza /var/ftp.
MaxDiskUsage 80
Parámetro CustomerProof.
Este parámetro fue diseñado para lidiar con los usuarios ignorantes a fin de impedir que realicen
operaciones que bloqueen el acceso hacia sus ficheros y/o directorios de forma accidental. Es decir,
impiden que se realicen operaciones como chmod o public_html. Si se va a utilizar el servicio como
parte de un servicio de hospedaje de sitios de red a través de HTTP, conviene que este parámetro
esté activo.
CustomerProof yes
A continuación se muestra el archivo de configuración antes y después de hacer las modificaciones,
siguiendo los pasos descritos anteriormente.
Antes
Después de la configuración
Agregar el servicio al arranque del sistema.
Para hacer que el servicio de pure-ftpd esté activo con el siguiente inicio del sistema, en todos los
niveles de corrida (2, 3, 4, y 5) se ejecuta el siguiente comando.
chkconfig pure-ftpd on
Iniciar, detener y reiniciar servicio.
Para iniciar por primera vez el servicio pure-ftpd, se utiliza:
service pure-ftpd start
Para hacer que los cambios hechos tras modificar la configuración surtan efecto, se utiliza:
service pure-ftpd restart
Para detener el servicio, se utiliza:
service pure-ftpd stop
Para probar el servidor pure-ftpd en funcionamiento, en primer lugar se crea un nuevo usuario que
podrá entrar al servidor pure-ftpd. Esto se muestra a continuación.
A continuación nos conectaremos como anónimo.
3. Adicione a la configuración de un usuario anónimo una estructura de directorios donde se
especifiquen algunos comandos que podrá emplear el usuario anónimo. Tomar como
referencia el proceso especificado en la dirección:
http://sysunconfig.net/unixtips/anon_ftp.txt
El acceso de un cliente ftp anónimo es posible, pero no tiene todos los privilegios, o no se le deja
ejecutar algunos comandos que se podrían utilizar cuando uno se ingresa como un usuario
registrado como se muestra en la imagen siguiente.
Como se sabe, dejar permisos de entrada a personas no registradas siempre es considerado como un
hueco de seguridad, en el caso del cliente Anonymous de ftp no es una excepción por lo que se
debería permitir la entrada de este sólo cuando sea absolutamente necesario.
Para permitir que el protocolo FTP trabaje en un ambiente de chroot apropiadamente, se tiene que
asegurar que el sistema de ficheros que contiene el directorio inicial de protocolo FTP no esté
montado como nosuid.
A continuación se asignarán comandos que el cliente ftp Anonymous puede utilizar cuando se
realice una conexión al servidor ftp, para agregar más comandos simplemente hay que añadirlo en
los directorios requeridos.
En primer lugar se debe crear la estructura de directorio home de ftp. Para eso se debe ejecutar los
siguientes comandos
mkdir /export/ftp/pub
mkdir /export/ftp/bin
mkdir /export/ftp/dev
mkdir /export/ftp/etc
mkdir /export/ftp/usr
mkdir /export/ftp/usr/lib
La ejecución de los mencionados comandos se muestra a continuación.
Ahora añadimos, por ejemplo, el comando ls al directorio bin que acabamos de crear. Para ello
utilizamos los siguientes comandos (copia del comando ls al directorio creado y asignación de
privilegios necesarios), cuya ejecución se muestra a continuación.
cp /bin/ls /export/ftp/bin
chmod 111 /export/ftp/bin/ls
Luego copiamos las librerías necesarias dentro de la estructura de directorios de ftp que creamos
con los siguientes comandos.
cp /etc/ld.so* /export/ftp/usr/lib
cp /usr/lib/libc.so.6 /lib/libdl.so.2 /export/ftp/usr/lib
cp /etc/passwd /etc/group /etc/netconfig /export/ftp/etc
Ahora se copia los archivos para resolver nombres NIS.
cp /lib/libnsl.so.1 /export/ftp/usr/lib
cp /etc/nsswitch.conf /export/ftp/etc
El siguiente paso es asignar permisos para los directorios /export/ftp/usr/lib y /export/ftp/etc
chmod 555 /export/ftp/usr/lib/*
chmod 444 /export/ftp/etc/*
A continuación asignamos permisos a todos los directorios creados.
chmod 555 /export/ftp/usr/lib
chmod 555 /export/ftp/usr
chmod 555 /export/ftp/bin
chmod 555 /export/ftp/dev
chmod 555 /export/ftp/etc
chmod 755 /export/ftp/pub
chmod 555 /export/ftp
El siguiente paso es añadir la siguiente línea al archivo de usuarios /etc/passwd: ftp:x:30000:30000:Anonymous FTP:/export/ftp:/bin/false
Añadimos también la siguiente línea al archivo /etc/shadow
ftp:NP:6445::::
Nos aseguramos que el propietario sea root y no FTP
chown -R root /export/ftp
REFERENCIAS
Comandos de FTP http://www.data-2013.cl/DOCS/INFORMATICA/FTP.html
Iniciar múltiples copias de vsftpd http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/es-ES/Deployment_Guide/index.html
Configuración de pure-ftpd
http://www.alcancelibre.org/staticpages/index.php/como-pure-ftpd