Manual de Configuración de un servidor FTP en Linux

10
Manual de Configuración de FTP Página 1 / 10 MANUAL DE CONFIGURACION DE UN SERVIDOR FTP EN CENTOS Autor: Roger Armando Contreras Corrales ( Fecha: 15 de Enero del 2011)

description

Manual en la cual explico diferentes aspectos en el proceso de configuración de un servidor FTP en Linux.

Transcript of Manual de Configuración de un servidor FTP en Linux

Page 1: Manual de Configuración de un servidor FTP en Linux

Manual de Configuración de FTP

Página 1 / 10

MANUAL DE CONFIGURACION DE UN SERVIDOR FTP EN CENTOS

Autor: Roger Armando Contreras Corrales( Fecha: 15 de Enero del 2011)

Page 2: Manual de Configuración de un servidor FTP en Linux

Manual de Configuración de FTP

Índice de contenido

1.Introducción:.....................................................................................................................................3

2.Instalación y configuración..............................................................................................................5

3.Definir que máquinas pueden establecer una conexión con el servicio FTP:..................................7

4.Utilización de certificados de seguridad:.........................................................................................8

5.Conexión al servidor FTP :.............................................................................................................10

Página 2 / 10

Page 3: Manual de Configuración de un servidor FTP en Linux

Manual de Configuración de FTP

CONFIGURACIÓN DEL SERVIDOR FTP

1. Introducción:Antes de proceder con la configuración de nuestro servidor FTP, vamos a suponer que tenemos un

servidor Web, el cual lo hemos configurado para alojar dos sitios: uno que es el portal web de

nuestra institución y el otro la intranet.

Dada la situación anterior, sería adecuado disponer de un servidor FTP en la cual existan dos

usuarios autorizados para publicar archivos en estos dos sitios Web, el esquema de esta solución

sería similar al siguiente:

Nombre de Usuario Sitio Web Carpeta de Accesointranet Intranet Institucional /var/www/intranetwebmaster Portal Web institucional /var/www/web

De acuerdo al esquema, vamos a necesitar dos usuarios, uno que sirve para publicar archivos en la

Intranet, y otros para publicar en el portal Web de la institución.

Para implementar el servicio FTP haremos uso de VSFTP. Podemos obtener mas información de

VSFTP en la siguiente URL: http://vsftpd.beasts.org/

Para instalar VSFTP se ha hecho uso de la versión en RPM que viene en el disco DVD de CentOS

5.5. Si se tiene tal disco, se puede proceder a insertarlo en nuestro lector de DVD y ejecutar la

siguientes órdenes para tenerlo montado en la carpeta “/mnt/disco” :

Con las órdenes anteriores si nos dirigimos al directorio “/mnt/disco” ya debemos tener acceso al

disco de CentOS.

Página 3 / 10

# cd /# mkdir -p /mnt/disco# mount -t iso9660 /dev/cdrom /mnt/disco/

Page 4: Manual de Configuración de un servidor FTP en Linux

Manual de Configuración de FTP

Si no tenemos tal disco podemos acceder a descargar la versión RPM desde la siguiente URL que

corresponde a uno de los mirrors de CentOS:

http://mirror.its.sfu.ca/mirror/CentOS/5.5/os/i386/CentOS/vsftpd-2.0.5-16.el5_4.1.i386.rpm

Ejecutando la siguiente orden podemos descargar el paquete mencionado en la URL anterior en el

directorio donde nos encontremos:

Hay que recordar que el manual explica como instalar el servidor FTP usando el paquete RPM que

se encuentra en el disco de Centos. Si no se tiene el disco se debería copiar el paquete RPM

descargado de Internet en el directorio “/mnt/disco/CentOS/”, esto con la finalidad de ejecutar las

órdenes explicadas posteriormente en el presente manual sin ningún problema.

El servidor FTP debe ser configurado para que presente las siguientes características:

• Ningún usuario especial del sistema puede hacer login vía FTP.

• Acceso anónimo debe estar inhabilitado, así como las operaciones que se puedan hacer con

este.

• Se debe especificar de manera explícita que usuarios podrán hacer login vía FTP.

• Se debe utilizar chroot para evitar el libre desplazamiento por directorios de los usuarios que

hagan login (Este comportamiento debe ser el por defecto para hacer login).

• Sólo determinadas máquinas deberían conectarse al servidor FTP.

• De manera opcional permitir que uno pueda elegir si desea establecer una comunicación

cifrada (Uso de certificados de seguridad).

Página 4 / 10

# wget http://mirror.its.sfu.ca/mirror/CentOS/5.5/os/i386/CentOS/vsftpd-2.0.5-16.el5_4.1.i386.rpm

Page 5: Manual de Configuración de un servidor FTP en Linux

Manual de Configuración de FTP

2. Instalación y configuraciónInstalamos VSFTP ejecutando la siguiente orden:

Una vez instalado el paquete podemos comprobar la información de este con las siguientes órdenes:

Editamos el archivo de configuración de VSFTP, lo haremos con el editor vi:

Editamos de tal manera que se tengan las siguientes opciones (Si alguna de ellas no se encuentra, agregarla al final del archivo):

Se puede encontrar una explicación detallada de estas opciones en la siguiente URL:

http://vsftpd.beasts.org/vsftpd_conf.html

Una vez que se ha comprobado lo anterior guardamos los cambios y cerramos el archivo.

Luego de esto ejecutamos la siguiente orden, para crear el archivo donde colocaremos los usuarios que vamos a crear, de tal manera que estos una vez que ingresen al servidor FTP sólo puedan desplazarse en su directorio local (Directorio Home):

Página 5 / 10

# cd /mnt/disco/CentOS/# rpm -ivh vsftpd-2.0.5-16.el5_4.1.i386.rpm

# rpm -qi vsftpd# rpm -ql vsftpd

# vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NOlocal_enable=YESwrite_enable=YESanon_upload_enable=NOanon_mkdir_write_enable=NOftpd_banner=Servidor FTP Institucionalchroot_local_user=YESchroot_list_enable=NOchroot_list_file=/etc/vsftpd/chroot_listlisten_ipv6=NOuserlist_enable=YESmax_clients=3userlist_deny=NO

Page 6: Manual de Configuración de un servidor FTP en Linux

Manual de Configuración de FTP

Creamos los dos usuarios que tendrán acceso a nuestros sitios Web:

Asignamos contraseñas a los usuarios anteriormente creados (Se recomienda una clave con mínimo de 6 caracteres que sean alfa-numéricos y especiales):

Ahora debemos editar el siguiente archivo:

En ese archivo encontraremos varios usuarios, borramos todos estos y sólo dejamos lo siguiente:

En el anterior archivo deben estar los nombres de los usuarios que pueden hacer login vía FTP. Guardamos los cambios y cerramos el archivo.

Ahora debemos cambiar los permisos de las carpetas y archivos a los cuales vamos acceder vía FTP

Ahora debemos reiniciar nuestro servidor FTP con la siguiente orden:

Página 6 / 10

# cd /etc/vsftpd/# touch chroot_list

# adduser intranet -d /var/www/intranet/ -g ftp -s /sbin/nologin

# adduser webmaster -d /var/www/web/ -g ftp -s /sbin/nologin

# passwd intranet# passwd webmaster

# /etc/init.d/vsftpd restart

# cd /var/www/ # chown -R intranet intranet# chmod -R 755 intranet# chown -R webmaster web# chmod -R 755 web

# vi /etc/vsftpd/user_list

# vsftpd userlist# If userlist_deny=NO, only allow users in this file# If userlist_deny=YES (default), never allow users in this file, and# do not even prompt for a password.# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers# for users that are denied.intranetwebmaster

Page 7: Manual de Configuración de un servidor FTP en Linux

Manual de Configuración de FTP

Para que el servicio FTP se inicie automáticamente con el sistema operativo, debemos ejecutar la siguiente orden:

3. Definir que máquinas pueden establecer una conexión con el servicio FTP:

Ahora vamos a configurar para que sólo algunas máquinas puedan conectarse al servicio FTP, para esto es necesario habilitar el soporte TCP wrappers, el cual permitirá el uso de archivos como el hosts.allow y hosts.deny, para controlar quienes pueden usar el servicio FTP.

Editamos el archivo de configuración principal a través del siguiente comando:

Agregamos las siguientes lineas al final del archivo (Sólo la primera línea es obligatoria para habilitar esta opción) :

Guardamos los cambios y cerramos el archivo, después tenemos que reiniciar el servicio FTP:

Ahora debemos editar los archivo hosts.allow y hosts.deny. Supongamos que deseamos establecer que sólo las máquinas con IP 192.168.4.26 y 192.168.4.28 puedan conectarse. Entonces debemos editar lo siguiente:

• En el archivo “/etc/hosts.allow”, debe haber la siguiente línea de contenido (En este archivo deben estar las IP's de las máquinas que podrán acceder al servicio FTP):

• En el archivo “/etc/hosts.deny”, debe haber la siguiente línea de contenido:

Página 7 / 10

# chkconfig --level 345 vsftpd on

# vi /etc/vsftpd/vsftpd.conf

tcp_wrappers=YESpasv_min_port=50000pasv_max_port=60000

# /etc/init.d/vsftpd restart

vsftpd: 192.168.4.26 192.168.4.28

vsftpd: ALL

Page 8: Manual de Configuración de un servidor FTP en Linux

Manual de Configuración de FTP

4. Utilización de certificados de seguridad:En esta parte se va a explicar como utilizar los protocolos SSL y TLS a través de un certificados RSA.

Esto se utilizará con la finalidad de cifrar la comunicación que se envié y/o reciba cuando se este usando el servidor FTP.

En primer lugar creamos un directorio donde se almacenaran los certificados de seguridad para todas las comunicaciones SSL y TLS. Para lo cual ejecutamos la siguiente orden.

El directorio anterior sirve para almacenar todos los certificados que vamos a guardar, por ejemplo podemos almacenar certificados de seguridad para el servicio Apache, SSH, FTP, SMTP, etc.

Para poder tener una organización sobre estos certificados, vamos a crear un directorio donde se almacenará el certificado para el servicio FTP. Para esto ejecutamos la siguiente orden:

Ahora vamos a ingresar a este directorio, y en el vamos a crear nuestro certificado:

Al ejecutar lo anterior vamos a crear un certificado de seguridad que tendrá una duración de 1460 días (4 años), este utilizará como algoritmo de cifrado el RSA de 1024 Kb. También no se hace uso de triple DES, con la finalidad de que el servicio FTP inicie de manera normal sin ningún tipo de interacción. El fichero donde se almacena el certificado estará ubicado en “/etc/ssl/ftp/vsftpd.pem”

Al momento de generar el certificado de seguridad, este solicitará la siguiente información:

• Código de dos letras del país. (Se recomienda seguir el ISO 3166-1 alfa-2)• Nombre del estado o provincia. • Nombre de la localidad.• Nombre de la organización.• Nombre de la unidad organizacional.• Nombre común (Puede ser el nombre de uno, o el nombre del host)• Dirección de email

Página 8 / 10

# mkdir -m 0700 /etc/ssl

# mkdir -m 0700 /etc/ssl/ftp

# cd /etc/ssl/ftp/# openssl req -x509 -nodes -days 1460 -newkey rsa:1024 -keyout vsftpd.pem -out vsftpd.pem

Page 9: Manual de Configuración de un servidor FTP en Linux

Manual de Configuración de FTP

Los resultados que se han tenido al momento de generar el certificado son:

Ahora debemos modificar los permisos de nuestros certificados para que estos soló puedan ser leídos por el usuario “root”. Para esto ejecutamos las siguientes órdenes:

Luego de lo anterior, necesitamos modificar el archivo de configuración principal del servidor FTP, para lo cual usaremos el editor vi:

En este archivo debemos agregar las siguientes líneas al final:

Página 9 / 10

Generating a 1024 bit RSA private key............++++++...........++++++writing new private key to 'vsftpd.pem'-----You are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [GB]:PEState or Province Name (full name) [Berkshire]:LambayequeLocality Name (eg, city) [Newbury]:ChiclayoOrganization Name (eg, company) [My Company Ltd]: Nombre empresaOrganizational Unit Name (eg, section) []: Oficina de InformaticaCommon Name (eg, your name or your server's hostname) []:Roger ContrerasEmail Address []:[email protected]

# cd /etc/ssl/ftp/# chmod 400 vsftpd.pem

# vi /etc/vsftpd/vsftpd.conf

# Habilitamos el soporte de TLS/SSLssl_enable=YES# Permitir el uso de TLS/SSL a usuarios anónimosallow_anon_ssl=YES# Obligar el uso de TLS/SSL para cualquier operaciónforce_local_data_ssl=NOforce_local_logins_ssl=NO# Preferir TLSv1 sobre SSLv2 y SSLv3ssl_tlsv1=YESssl_sslv2=NOssl_sslv3=NO# Ubicacion del certificadorsa_cert_file=/etc/ssl/ftp/vsftpd.pem

Page 10: Manual de Configuración de un servidor FTP en Linux

Manual de Configuración de FTP

Guardamos los cambios y cerramos el archivo, después tenemos que reiniciar el servicio FTP:

5. Conexión al servidor FTP :Una vez que hemos configurado todo lo anterior, ya podemos utilizar nuestro servicio FTP.

Para esto haremos uso de un cliente FTP, en este caso vamos a usar Core FTP. Este programa puede ser descargado desde la siguiente página: http://www.coreftp.com/

Una vez que se haya instalado este programa, lo ejecutamos y nos mostrará la ventana de conexión:

En esta ventana debemos ingresar las opciones que nos solicitan, teniendo cuidado con la opción “Connection”, ya que al usar certificados de seguridad, debemos variarla. En esta opción vamos a dejarla con el valor “AUTH TLS”. Si no queremos usar una conexión cifrada debemos elegir en la opción “Connection” el valor “FTP”.

La IP 192.168.4.3 es la ip de la máquina donde se ha instalado y configurado el servicio FTP.

Página 10 / 10

# /etc/init.d/vsftpd restart