You are on page 1of 17

INSTALACION Y CONFIGURACION DE SERVIDOR FTP

RODULFO GUSTAVO RODRGUEZ GARCA CD.: 1150485

ENTREGADO A: ING. JEAN POLO CEQUEDA OLAGO

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER FACULTAD DE INGENIERAS INGENIERA DE SISTEMA CCUTA 2012

CONFIGURACION DEL SERVICIO FTP EN FEDORA 17 Para la instalacin del servicio FTP en Fedora es necesario abrir la terminal y acceder en modo root, y luego de esto continuar con los siguientes pasos: Paso 1: Instalacin En Fedora, el paquete vsftpd ofrece el Demonio FTP muy seguro. El Demonio FTP muy seguro (vsftpd por las inciales en ingls de Very Secure FTP Daemon) est diseado desde un principio para ser veloz, estable, y, lo ms importante, seguro. Para instalar vsftpd en nuestro Fedora escribimos: yum y install vsftpd

Luego de terminada la instalacin se necesita modificar el archivo de configuracin de vsftpd para hacer los cambios necesarios, para esto se abrir el archivo vsftpd.conf haciendo uso del editor de texto para la Terminal, nano. Se escribir: nano /etc/vsftpd/vftpd.conf

El archivo de configuracin ser de la siguiente manera y las lineas que se encuentran resaltadas y con letras de tamao mayor debern quedar de esa manera para que sirva el servidor ftp. # 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=NO # Uncomment this to allow local users to log in. # When SELinux is enforcing check for SE bool ftp_home_dir 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. # When SELinux is enforcing check for SE bool allow_ftpd_anon_write, allow_ftpd$ # 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 # Activate logging of uploads/downloads.

#anon_upload_enable=YES 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 # You may override where the log file goes if you like. The default is shown # below. #xferlog_file=/var/log/vsftpd.log # If you want, you can have your log file in standard ftpd xferlog format. # Note that the default log file location is /var/log/xferlog in this case. 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

Las lneas a modificar son: # linea 12: no anonymous anonymous_enable=NO Este parmetro se utiliza para definir si se permitirn los accesos annimos al servidor. Se establezca como valor YES o NO de acuerdo a lo que se requiera, en este caso no deseamos accesos annimos, por tanto ponemos NO. # linea 82,83: quitar comentario ( permitir modo ascii ) ascii_upload_enable=YES Las transferencias de datos sern en modo ASCII para las subidas de archivos al servidor. ascii_download_enable=YES Las transferencias de datos sern en modo ASCII para las descargas de archivos del servidor. # line 97, 98: quitar comentario ( habilitar chroot )

chroot_local_user=YES chroot_list_enable=YES # line 100: quitar comentario ( especificar lista chroot ) chroot_list_file=/etc/vsftpd/chroot_list De modo predeterminado los usuarios del sistema que se autentiquen tendrn 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 fcilmente con el parmetro chroot_local_user que habilitar la funcin de chroot() y los parmetros chroot_list_enable y chroot_list_file para establecer el fichero con la lista de usuarios que quedarn excluidos de la funcin chroot(). # line 106: quitar comentario ls_recurse_enable=YES Esta linea permite habilitar que el listado del contenido se realice de forma recursiva.

Basicamente y quitando los comentarios en el archivo de configuracion, este quedara de la siguiente manera: 1. anonymous_enable=NO : YES/NO, permite el acceso de usuarios annimos al servidor FTP. 2. local_enable=YES : YES/NO, permite a los usuarios el acceso a sus carpetas creadas. 3. write_enable=YES : YES/NO, da permiso a los usuarios para poder subir los arvhivos al servidor FTP.

4. local_umask=022 : 022/077, si el valor es "022", los archivos subidos al servidor FTP tendrn permisos de solo lectura y escritura para el propietario del archivo y de solo lectura para el grupo y el resto. 5. dirmessage_enable=YES : YES/NO, los clientes FTP son mostrados en un mensaje cuando entran por primera vez en su directorio. 6. Xferlog_enable=YES : Activa el log del servidor. 7. connect_from_port_20=YES : Permite que el servicio se ejecute con privilegios suficientes para abrir el puerto 20 en el servidor durante las transferencias de datos. 8. xferlog_std_format=YES : Cuando se activa en combinacin con xferlog_enable, slo se escribe un archivo de registro compatible con wu-ftpd al archivo especificado en la directriz xferlog_file. 9. ascii_upload_enable=YES : Activa el modo ASCII, pero suele estar desactivada para evitar ataques DDoS usando este modo. 10. ascii_download_enable=YES : Igual a ascii_upload_enable. 11. chroot_local_user=YES : Este parmetro se utiliza para el enjaulamiento de usuarios. 12. chroot_list_enable=YES : Este parmetro establece que se utilizar la lista de exclusiones para el enjaulamiento. 13. chroot_list_file=/etc/vsftpd/chroot_list : Este parmetro especifica la lista que se utilizar para las exclusiones de enjaulamiento. 14. ls_recurse_enable=YES : Establece si la opcin -r del comando ls estar activa o no. 15. listen=YES : Establece si el servicio estar a la escucha o no (si no est a la escucha es obvio que no funcionar).

16. pam_service_name=vsftpd : Especifica el nombre de servicio PAM para vsftpd. 17. userlist_enable=YES : Si esta habilitada, se le negara el acceso a los usuarios especificado en el archivo userlist_file. 18. tcp_wrappers=YES : Sirve para controlar las conexiones.

Luego de modificar correctamente el archivo vsftpd.conf se guardan los cambios y se abre el archivo /etc/vsftpd/chroot_list con el editor de texto para la terminar nano.

Dentro de este archivo se escribe el nombre de los usuarios que se van a conectar a nuestro servidor FTP.

Se guardan los cambios.

Despus de hacer esas modificaciones se escribe: Setsebool P ftp_home_dir=1: El comando setsebool permite activar o desactivar booleanos. El comando P se utiliza para que las modificaciones que se hagan se mantengan una vez la maquina sea reiniciada. El booleano ftp_home_dir es el que permite a FTP la lectura y escritura de archivos en el directorio principal del usuario, al hacerlo = 1, se esta permitiendo al demonio FTP (vsftpd) la lectura y escritura de archivos en los directorios de inicio de los usuarios. Para iniciar el proceso de vsftpd se escribe: systemctl start vsfptd.service para ejecutar por primera vez el servicio, utilice: service vsftpd start Para hacer que los cambios hechos a la configuracin surtan efecto, utilice: service vsftpd restart Para detener el servicio, utilice: service vsftpd stop Para aadir VSFTPD al arranque del sistema en todos los niveles de corrida, utilice: chkconfig vsftpd on

Luego de arrancar el proceso se puede acceder a al servidor desde otra mquina conectada a la red.

Para esto se utilizara filezilla que es una aplicacin para la transferencia de archivos por FTP. Permite transferir archivos desde una computadora local, hacia uno o ms servidores FTP (y viceversa) de forma sencilla.

Se escribe la direccion ip del servidor al que se va a acceder, el usuario, la contrasea y se hace clic en quicconect

En la parte izquierda de filezilla se encuentran los archivo locales, y en la parte dereca se encuentran los archivos de la maquina remota.

Posible error con VSFTPD


Montando un Simple Servidor FTP, me encontr con varios errores al momento de la conexin (es mi primera vez montando un servidor FTP utilizando la herramient VSFTPD, en Linux CentOS).

Comenzemos; ya instalado el software en mi mquina, al intentar acceder va FTP presentaba errores como estos con mi cliente FTP:

500 OOPS: cannot change directory:/home/

Para resolver este error, es necesario ejecutar las siguientes lneas en una terminal:

# getsebool -a | grep ftp (para consultar el estado de las configuraciones FTP).

Como se logra apreciar, estn todas las configuraciones en OFF (por eso el directorio no es accesible). Pueso ahora corregimos esto con el siguiente comando:

# setsebool -P ftp_home_dir on (esperamos un poco...)

una vez ejecutado el proceso, volvemos a ejecutar el primer comando para verificar la correccin de los parmetros:

Ahora chequeamos nuestro cliente FTP y probamos la conexin:

500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Este error se da porque vsftpd no permite que los usuarios puedan escribir en su carpeta raz. Una solucin es quitarle los permisos de escritura a esa carpeta. Esto har

que el usuario no pueda hacer nada en su propia carpeta, as que lo mejor es crearle otra dentro con permisos normales para que pueda utilizarla. sudo chmod 555 /home/ftp/antonio sudo mkdir /home/ftp/antonio/documentos sudo chown antonio:ftp /home/ftp/antonio/documentos Con todo esto ya deberas poder acceder al servidor FTP con cualquier usuario del sistema sin ningn problema.

Cmo crear un usuario FTP

1. El directorio en donde tenga que acceder el usuario debe estar creado, con propietario "ftp" y con permisos para operar: sudo mkdir /ruta/a/su/directorio sudo chown -R ftp:ftp /ruta/a/su/directorio sudo chmod -R 755 /ruta/a/su/directorio