INSTALACION Y CONFIGURACION DE SERVIDOR FTP
RODULFO GUSTAVO RODRÍGUEZ GARCÍA
CÓD.: 1150485
ENTREGADO A:
ING. JEAN POLO CEQUEDA OLAGO
UNIVERSIDAD FRANCISCO DE PAULA SANTANDER
FACULTAD DE INGENIERÍAS
INGENIERÍA DE SISTEMA
CÚCUTA
2012
CONFIGURACION DEL SERVICIO FTP EN FEDORA 17
Para la instalación 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: Instalación
En Fedora, el paquete vsftpd ofrece el Demonio FTP muy seguro. El Demonio FTP muy
seguro (vsftpd por las iníciales en inglés de Very Secure FTP Daemon) está diseñado
desde un principio para ser veloz, estable, y, lo más importante, seguro.
Para instalar vsftpd en nuestro Fedora escribimos: yum –y install vsftpd
Luego de terminada la instalación se necesita modificar el archivo de configuración 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 configuración será de la siguiente manera y las lineas que se encuentran
resaltadas y con letras de tamaño mayor deberán 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 líneas a modificar son:
# linea 12: no anonymous
anonymous_enable=NO
Este parámetro se utiliza para definir si se permitirán los accesos anónimos al servidor.
Se establezca como valor YES o NO de acuerdo a lo que se requiera, en este caso no
deseamos accesos anónimos, por tanto ponemos NO.
# linea 82,83: quitar comentario ( permitir modo ascii )
ascii_upload_enable=YES
Las transferencias de datos serán en modo ASCII para las subidas de archivos al
servidor.
ascii_download_enable=YES
Las transferencias de datos serán 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 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 fichero con la lista de
usuarios que quedarán excluidos de la función 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 quedaría
de la siguiente manera:
1. anonymous_enable=NO : YES/NO, permite el acceso de usuarios anónimos 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
tendrán 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 combinación con xferlog_enable, sólo
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 parámetro se utiliza para el enjaulamiento de
usuarios.
12. chroot_list_enable=YES : Este parámetro establece que se utilizará la lista de
exclusiones para el enjaulamiento.
13. chroot_list_file=/etc/vsftpd/chroot_list : Este parámetro especifica la lista que se
utilizará para las exclusiones de enjaulamiento.
14. ls_recurse_enable=YES : Establece si la opción -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.
Después 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 configuración surtan efecto, utilice:
service vsftpd restart
Para detener el servicio, utilice:
service vsftpd stop
Para añadir 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 máquina
conectada a la red.
Para esto se utilizara filezilla que es una aplicación para la transferencia de archivos por
FTP. Permite transferir archivos desde una computadora local, hacia uno o más
servidores FTP (y viceversa) de forma sencilla.
Se escribe la direccion ip del servidor al que se va a acceder, el usuario, la contraseña 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
conexión (es mi primera vez montando un servidor FTP utilizando la herramient
VSFTPD, en Linux CentOS).
Comenzemos; ya instalado el software en mi máquina, al intentar acceder vía FTP
presentaba errores como estos con mi cliente FTP:
500 OOPS: cannot change directory:/home/
Para resolver este error, es necesario ejecutar las siguientes líneas en una terminal:
# getsebool -a | grep ftp (para consultar el estado de las configuraciones FTP).
Como se logra apreciar, están 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
corrección de los parámetros:
Ahora chequeamos nuestro cliente FTP y probamos la conexión:
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 raíz. Una solución 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 deberías poder acceder al servidor FTP con cualquier usuario del
sistema sin ningún problema.
Cómo 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
Top Related