You are on page 1of 14

Configuracin de VSFTPd.

Es un protocolo de transferencia de archivos en redes TCP/IP de forma fiable


y rpida.

1.

Objetivos
A. Aprender a utilizar el servidor FTP como puente para el establecimiento de
conexiones annimas.
B. Evidenciar que seguridad tiene el protocolo ftp a conseguir claves por el uso
de Wireshark.
C. Repasar el uso de la herramienta de Wireshark y la aplicacin de filtros
correspondientes a este protocolo.

1. Introduccin.

En la actividad de servidores se requiere del siguiente software:


Wireshark (The Wireshark Network Protocol Analyzer) Versin 1.12.4 o superior
instalado o portable adems de Clientes como: putty o su equivalente Versin 0.64
o superior, telnet activado en cliente y el servidor.
Sistema operativos centos 6.4 o superior para ser de servidor
Sistema Windows 7 o superior en los clientes.
Nota: Se debe documentar todo el proceso de configuracin de este servicio de
telnet en Windows paso a paso
Se debe tener en cuenta los puertos de salida para los servicios que se usaran en
estas prcticas iniciales son:
Emplea los siguientes puertos: 20 (ftp-data) transferir datos, 21 (ftp) control (envi
de ordenes), 22 (ssh),y 23 (telnet). Al estar basado en la arquitectura clienteservidor.
Se recomienda revisar, consultar y repasar los RFC de estos servicios para
entender y comprender estas actividades como su funcionamiento.
Comprometindonos en la actualizacin de la bibliografa del presente documento.
Iniciamos con ftp.

1.1. Acerca del protocolo FTP.

Figura No1. Imagen tomada de http://wiki.elhacker.net/redes/teoria/teoria-ftp


FTP (File Transfer Protocol) o Protocolo de Transferencia de Archivos es uno de
los protocolos estndar ms utilizados en Internet siendo el ms idneo para la
transferencia de grandes bloques de datos a travs 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 utilizando para el envo de rdenes del cliente hacia el servidor. Prcticamente
todos los sistemas operativos y plataformas incluyen soporte para FTP, lo que
permite que cualquier computadora conectada a una red basada sobre TCP/IP
pueda hacer uso de este servicio a travs de un cliente FTP.
Existen dos mtodos, el modo activo y el modo pasivo.

URL: http://tools.ietf.org/html/rfc959

1.1.1. Modo activo.


En este modo, el cliente crea una conexin de datos a travs del puerto 20 del
servidor, mientras que en el cliente asocia esta conexin desde un puerto aleatorio
entre 1024 y 65535, enviando PORT para indicar al servidor el puerto a utilizar
para la transferencia de datos. Tiene como desventaja que el cliente FTP debe estar
Dispuesto a aceptar cualquier conexin de entrada asociada a puertos entre 1024
y 65535, lo que significa que el cliente tendra que estar detrs de un muro
cortafuegos que acepte establecer conexiones entrantes en este rango de puertos
o bien acceder hacia Internet sin un muro cortafuegos de por medio, lo que
evidentemente implica un enorme riesgo de seguridad. El modo activo slo es
conveniente en la ausencia de un muro cortafuegos entre el servidor y el cliente,
como ocurre en los escenarios de una red de rea local.
1.1.2. Modo pasivo.
Fue creado como una alternativa al problema que representa el modo activo. A
diferencia de ste ltimo, el modo pasivo enva PASV en lugar PORT a travs del
puerto de control del servidor. ste devuelve como respuesta el nmero de puerto
a travs del cual debe conectarse el cliente para hacer la transferencia de datos.
El servidor puede elegir al azar cualquier puerto entre 1024 y 65535 o bien el rango
de puertos determinado por el administrador del sistema. En el caso de Vsftpd,
se puede definir un rango arbitrario de puertos para conexiones pasivas utilizando
las opciones pasv_min_port y pasv_max_port. ste es el mtodo recomendado
para servidores de acceso pblico.
1.2. Acerca del protocolo FTPS.
FTPS tambin referido como FTP/SSL es la forma de designar diferentes
mtodos a travs de las cuales se pueden realizar transferencias de archivos
seguras a travs del protocolo FTP utilizando SSL o TLS. Son mtodos muy
diferentes a los del protocolo SFTP (SSH File Transfer Protocol).
Existen dos diferentes mtodos para realizar una conexin SSL/TLS a travs de
FTP. La primera y ms antigua es a travs de FTPS Implcito (Implicit FTPS), que
consiste en cifrar la sesin completa a travs de los puertos 990 (FTPS) y 998
(FTPS Data), sin permitir negociacin con el cliente, el cual est obligado a
conectarse directamente al servidor FTPS con el inicio de sesin SSL/TLS. El
segundo mtodo, que es el recomendado por el RFC 4217 y el utilizado por vsftpd,
es FTPS Explcito (Explicit FTPS o FTPES), donde el cliente realiza la conexin
normal a travs del puerto 21 y permitiendo negociar, de manera opcional, una
conexin TLS.
1.3. Acerca de RSA.
RSA, acrnimo de los apellidos de sus autores, Ron Rivest, Adi Shamir y Len
Adleman, es un algoritmo para cifrar claves pblicas, el cual fue publicado en 1977

y patentado 1983, en EE.UU., por el Instituto Tecnolgico de Michigan (MIT). RSA


es utilizado en todo el mundo para los protocolos destinados para el comercio
electrnico.
URL: http://es.wikipedia.org/wiki/RSA
1.4. Acerca de OpenSSL.
OpenSSL es una implementacin libre, de cdigo fuente abierto, de los protocolos
SSL (Secure Sockets Layer o Nivel de Zcalo Seguro) y TLS (Transport Layer
Security o Seguridad para Nivel de Transporte). Est basado sobre el extinto
proyecto SSLeay, iniciado por Eric Young y Tim Hudson, hasta que stos
comenzaron a trabajar para la divisin de seguridad de EMC Corporation.
URL: http://www.openssl.org/
1.5. Acerca de X.509.

X.509 es un estndar ITU-T (estandarizacin de Telecomunicaciones de la


International Telecommunication Union) para infraestructura de claves pblicas
(PKI o Public Key Infrastructure). Entre otras cosas, establece los estndares para
certificados de claves pblicas y un algoritmo, para validacin de ruta de
certificacin. Este ltimo se encarga de verificar que la ruta de un certificado sea
vlida bajo una infraestructura de clave pblica determinada. Es decir, desde el
certificado inicial, pasando por certificados intermedios, hasta el certificado de
confianza emitido por una Autoridad Certificadora (CA o Certification Authority).

URL: http://es.wikipedia.org/wiki/X.509
1.6. Acerca de vsftpd.

Vsftpd (Very Secure FTP Daemon) es un equipamiento lgico utilizado para


implementar servidores de archivos a travs del protocolo FTP. Se distingue
principalmente porque sus valores predeterminados son muy seguros y por la
sencillez para su configuracin bsica cuando se le es comparado con otras
alternativas como ProFTPD y Wu-ftpd. En la actualidad se estima que vsftpd podra
ser quiz el servidor FTP ms seguro del mundo. Una de las decisiones de tomar
este servidor para la clase de administracin de servidores
URL: http://vsftpd.beasts.org/

2. Equipamiento lgico necesario.


2.1. Instalacin a travs de yum.
Se debe ejecutar lo siguiente desde una terminal si utiliza CentOS, Fedora o Red
Hat Enterprise Linux:
yum -y install vsftpd (Enter)
Esperar que se instale Very Secure FTP Daemon

3. Archivos de configuracin.
/etc/vsftpd/chroot_list
Lista que definir usuarios a enjaular o no a enjaular, dependiendo de la
configuracin.
/etc/vsftpd/vsftpd.conf
Veamos este archivo un poco ms a fondo.
vi /etc/vsftpd/vsftpd.conf (Enter)
# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)

local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# The target log file can be vsftpd_log_file or xferlog_file.
# This depends on setting xferlog_std_format parameter
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# The name of log file when xferlog_enable=YES and xferlog_std_format=YES
# WARNING - changing this filename affects /etc/logrotate.d/vsftpd.log
#xferlog_file=/var/log/xferlog
#
# Switches between logging into vsftpd_log_file and xferlog_file files.
# NO writes to vsftpd_log_file, YES to xferlog_file
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not

# recommended for security (the code is non-trivial). Not enabling it,


# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd/banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=YES
#
# This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6
# sockets, you must run two copies of vsftpd with two configuration files.
# Make sure, that one of the listen options is commented !!
#listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
Archivo de configuracin de VSFTPD.
Al leer y revisar el contenido del archivo nos damos cuenta que la mayora de este
se encuentra comentario con el carcter (#) al principio de cada lnea. De manera
que en el proceso de hardering se debe realizar los ajustes necesarios para su
aseguramiento

El archivo /etc/vsftpd/chroot_list es inexistente, por lo cual es conveniente


crearlo antes de comenzar a trabajar con la configuracin. Por favor ejecute lo
siguiente antes de continuar para poder crearlo:
touch /etc/vsftpd/chroot_list (Enter)
3.1. Activar, iniciar, detener y reiniciar el servicio dos formas para hacerlo.
Ejecute lo siguiente para activar el servicio en todos los niveles de ejecucin:
chkconfig vsftpd on
Ejecute lo siguiente para iniciar por primera vez el servicio:
service vsftpd start (Enter)
o
/etc/rc.d/init.d/vsftpd start (Enter)
Ejecute lo siguiente para reiniciar el servicio o bien hacer que los cambios hechos
a la configuracin surtan efecto de inmediato:
service vsftpd restart (Enter)
o
/etc/rc.d/init.d/vsftpd restart (Enter)

Ejecute lo siguiente para detener el servicio:


service vsftpd stop (Enter)

o
/etc/rc.d/init.d/vsftpd stop (Enter)

Ejecute lo siguiente para determinar el estado del servicio:


service vsftpd status (Enter)
o
/etc/rc.d/init.d/vsftpd status (Enter)

Los pasos bsicos de este servicio quedan hasta este punto, la fase que viene es
aseguramiento.
3.2. Ubicacin de los Archivos y directorios de descarga
En la ubicacin /var/ftp/pub/ se encontraran los directorios y archivos que deseamos
compartir bajo esta modalidad de transferencia y se podrn bajar a nuestros equipos
desde cualquier navegador o utilizando un cliente ftp, simplemente cambiando el
protocolo.
Desde Windows lazamos un cmd o un intrprete de comandos y luego desde esa
consola digitamos ftp (Enter)
Estos son algunos de los comandos que podemos usar:
Help (enter)
C:\Users\pepe
>ftp
ftp> help
Los comandos se pueden abreviar. Y debemos complementar la segunda columna.
Commando Descripcion
!
?
append
ascii
bell
binary
bye
cd
close

delete
debug
dir
disconnect
get
glob
hash
help
lcd
literal
ls
mdelete
mdir
mget
mkdir
mls
mput
open
prompt
put
pwd
quit
quote
recv
remotehelp
rename
rmdir
send
status
trace
type
user
verbose

Tabla No.1 Lista de los comandos y funciones del FTP


Cuestionamiento de la actividad.
1. Cules son los RFC del servidor FTP.
2. Cuanto tiempo mantiene activa una conexin FTP.
3. Esquematice o deje evidencias del paso a paso del socket de conexin del
modelo C/S.
4. Realice el paso anterior pero con la ayuda de Wireshark.
5. En donde est ubicado (ruta absoluta) del cliente ftp en Linux y Windows.
6. Se puede configurar un archivo de log en este tipo de servidor?

7. Que aplicacin puedo obtener de este servidor.


8. Cmo puedo evidenciar las conexiones activas de este servicio?

Configuracin de OpenSSH.
0. Objetivos
A. Aprender a utilizar el servidor OpenSSH como servicio para el
establecimiento de conexiones seguras de cliente a servidor.
B. Evidenciar que seguridad tiene el protocolo OpenSSH al tratar de conseguir
las claves de los usuarios del servidor cuando pretenden establecer conexin
con el uso de Wireshark.
C. Repasar en la practica el uso del software de Wireshark y la aplicacin de
filtros a este protocolo.
1. Introduccin.
1.1. Acerca de SSH.
SSH (Secure Shell) es un conjunto de estndares y protocolo de red que permite
establecer una comunicacin a travs de un canal seguro entre un cliente local y un
servidor remoto. Utiliza una llave pblica para autenticar el servidor remoto y de
manera opcional permitir al servidor remoto autenticar al usuario. SSH provee
confidencialidad e integridad en la transferencia de los datos utilizando
criptografa y MAC (Message Authentication Codes o Cdigos de Autenticacin de
Mensaje). De modo predeterminado, escucha peticiones a travs del puerto 22 por
TCP.

Figura No1. Imagen tomada de katherynnparedes.blogspot.com


1.2. Acerca de SFTP.
SFTP (SSH File Transfer Protocol) es un protocolo que provee funcionalidad de
transferencia y manipulacin de archivos a travs de un flujo confiable de datos.

Comnmente se utiliza con SSH para proveer a ste de transferencia segura de


archivos.
1.3. Acerca de SCP.
SCP (Secure Copy o Copia Segura) es una protocolo seguro para transferir archivos
entre un anfitrin local y otro remoto, a travs de SSH. Bsicamente, es idntico
a RCP (Remote Copy o Copia Remota), con la diferencia de que los datos son
cifrados durante la transferencia para evitar la extraccin potencial de
informacin a travs de programas de captura de las tramas de red (packet sniffers).
SCP slo implementa la transferencia de archivos, pues la autenticacin requerida
es realizada a travs de SSH.
1.4. Acerca de OpenSSH.
OpenSSH (Open Secure Shell) es una alternativa de cdigo fuente abierto, con
licencia BSD, hacia la implementacin propietaria y de cdigo cerrado SSH creada
por Tatu Ylnen. OpenSSH es un proyecto creado por el equipo de desarrollo de
OpenBSD y actualmente dirigido por Theo de Raadt. Se considera es ms segura
que la versin privativa Ylnen, gracias a la constante auditora que se realiza sobre
el cdigo fuente por parte de una enorme comunidad de desarrolladores, una
ventaja que brinda el Software Libre.
OpenSSH incluye servicio y clientes para los protocolos SSH, SFTP y SCP.
URL: http://www.openssh.org/.
2. Equipamiento lgico necesario.
2.1. En CentOS y Red Hat Enterprise Linux.
Si realiz una instalacin mnima, ejecute lo siguiente para instalar la paquetera
necesaria:
yum -y install openssh openssh-server openssh-clients
3. Activar, desactivar, iniciar, detener y reiniciar el servicio ssh dos formas
diferentes.
De modo predeterminado el servicio est activo en todos los niveles de ejecucin.
3.1. En CentOS y Red Hat Enterprise Linux.
Ejecute lo siguiente para desactivar el servicio de todos los niveles de ejecucin:
chkconfig sshd off

Ejecute lo siguiente para iniciar por primera vez el servicio:


service sshd start
o
/etc/rc.d/init.d/sshd start (Enter)

Ejecute lo siguiente para reiniciar el servicio y aplicar cambios en la configuracin::


service sshd restart
o
/etc/rc.d/init.d/sshd restart (Enter)
Ejecute lo siguiente para detener el servicio:
service sshd stop
o
/etc/rc.d/init.d/sshd stop (Enter)
Usar el putty, si no lo tiene bajarlo del servidor ftp o de internet.
Cuestionamiento
1. Cules son los RFC del servidor SSH.
2. Cuanto tiempo mantiene activa una conexin SSH.
3. Esquematice o deje evidencias del paso a paso del socket de conexin del
modelo C/S de este servicio.
4. Realice el paso anterior pero con la ayuda de Wireshark.
5. Se puede configurar un archivo de log en este tipo de servidor?
6. Que aplicacin puedo obtener de este servidor.
7. Cmo puedo evidenciar las conexiones activas de este servicio?
Conclusiones
Bibliografa
Configuracin de Servidores con GNU/Linux Joel Barrios Dueas 2014
http://wiki.elhacker.net/redes/teoria/teoria-ftp

You might also like