miércoles, 12 de julio de 2017

8) CentOS 7 Instalación y Configuración de Servidor FTP

  No hay comentarios


Introducción

En el presente informe haremos la práctica de implementación de un servidor FTP en Centos 7, el cual en el informe anterior ah sido virtualizado en una MV Hyper-V con servicios básicos de un servidor, ahora anexaremos dicha Característica buscando ampliar las capacidades de nuestro servidor. El módulo FTP elegido para centos 7 es el Vsftpd el cual es un paquete que podemos encontrar en el repositorio YUM lo caul facilitará nuestra instalación de forma más segura. El módulo Vsftpd en centos 7 nos permitirá la administración ágil y básicamente implementación rápida de nuestro servidor FTP con configuraciones desde las más básicas hasta la más complejas para un manejo de seguridad y restricciones de forma granular. La seguridad en un servidor FTP es altamente necesaria y la configuración de su estructura muy bien implementada, esto por razones de los escenarios y que al final el FTP tiene información un bien muy preciado en la actualidad.


Glosario  

Hyper-V. - 
Tecnología de virtualización nativa para sistemas operativos Windows, optimizados
CentOS. - 
CentOS es una distribución de el código fuente de Red Hat Enterprise Linux contando con las mismas características y funcionalidades, también que está abierto para todos.
Webmin. - 
Interfaz basada en Web para administración de sistemas Unix. Usando cualquier navegador Web moderno, se puede configurar cuentas de usuarios, Apache, DNS, archivos compartidos y mucho más.
Servidor. - 
Ordenador remoto que provee los datos solicitados por parte de los navegadores de otras computadoras.
Servidor FTP . - 
FTP (siglas en inglés de File Transfer Protocol, 'Protocolo de Transferencia de Archivos') en informática, es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura cliente-servidor. Desde un equipo cliente se puede conectar a un servidor para descargar archivos desde él o para enviarle archivos, independientemente del sistema operativo utilizado en cada equipo.
Vsftpd . - 
Es el "very secure ftp daemon" (demonio ftp muy seguro) , un pequeño pero eficiente servidor FTP. Como puede correr con o sin xinetd, serán explicados los dos métodos.
Direcciones estáticas. -
IDirección IP asignada por el usuario de manera manual, o por el servidor de la red con base en la Dirección MAC del cliente.
Puertos.-
Un puerto es una interfaz (Lógica/Física) a través de la cual se pueden enviar y recibir los diferentes tipos de datos.
Cliente FTP.-
Un cliente FTP (Usuario/Software) emplea el FTP para conectarse a un servidor FTP para transferir archivos a un alojamiento.
Palabras Claves:
(inicio de sesión anónimo, credenciales, usuarios, grupos, permisos ficheros, permisos carpetas, directorio home, vsftpd.conf (for centos 7), permisos anónimos, puerto 20-21,iptables, firewall).
FTP (Esquemas Básicos de Login)

 


Práctica
Verificación de adaptadores Hyper-V

Verificaremos que el adaptador de red LAN y WAN para nuestra maquina este creado, Esto es necesario para acceder al FTP desde diversos dispositivos de la Red

Verificación Hyper-V (Conmutadores)
1)      Configuración Conmutadores Virtuales

Daremos clic en Administración de conmutadores virtuales

2)      Configurar Conmutador WAN

Verificaremos el adaptador WAN para que las máquinas virtuales, tengan acceso a Internet mediante el adaptador Físico de Red

 

3)      Configurar Conmutador LAN

Verificaremos el Adaptador LAN para crear redes internas “LAN” entre las MV, Red Interna nos permitirá crear una red local entre incluyendo la maquina Física, Red Privada nos permitirá crear redes locales solo entre las MV dejando fuera a la máquina física. Daremos aceptar y estaremos listo para crear una MV.

 

 

Instalación del FTP en Centos7

Instalaremos la característica de servidor FTP en centos7 con el paquete Vsftpd

Instalación FTP
1)      Acceder como el usuario su (root)

Como siempre para instalar un paquete accederemos al usuario root de nuestro sistema co el comando “sudo su”

2)      Instalar el módulo Vsftpd desde Yum

Una vez con los permisos del root ingresaremos el comando “yum install vsftpd -y” y esperaremos que instale el paquete.

 

 

3)      Iniciación del servicio

En este punto que ya culmino la instalación ejecutarnos el comando “systemctl start vsftpd.service” para iniciar el servicio FTP en centos

 

 

4)      Verificar estado del Servicio Vsftpd

Para verificar el estado del servicio de Vsftp y que no existe anomalía alguna ejecutaremos el siguiente comando “systemctl status vsftpd.service”, y como observamos el estado activo es correcto.

 

Configuraciones Recomendadas

Haremos unas configuraciones a nuestro servicio y puertos de centos 7 para que nuestro servicio sea mas funcional

1)      Activar iniciar FTP con Centos 7

Con esto buscaremos que el FTP inicie automáticamente con el sistema Centos7 para ahorra tiempos de accionar, con el comando “systemctl enable vsftpd.service”

2)      Agregar el servicio FTP al firewall de Centos 7

Con esto haremos que nuestro firewall que trabaja en centos 7 no bloquee los flujos de datos a travez del servicio FTP con el comando “firewall-cmd –permanet –add-service=ftp”

 

 

3)      Reiniciar servicio firewall

Para dejar la configuración lista reiniciaremos el servicio de firewall con el comando “systemctl restart firewalld.service”

 

4)      Si tenemos Firewall IPtables

En este punto ingresaremos la reglas para que nuestro firewall iptables de acceso a este servicio.

 

 

5)      Guardamos las reglas ingresadas

Guardaremos la reglas ingresadas con “iptables-save | sudo tee /etc/sysconfig/iptables”

 

 

6)      Reiniciamos el servicio IPtables

Con el comando “systemctl restart iptables”

Configuraciones del FTP

En este punto configuraremos el FTP para poner a prueba nuestro servicio

Configuración Vsftpd.conf

Mediante este archivo podremos editar configuraciones de nuestro servicio FTP

1)      Acceder al archivo de configuración

En este punto editaremos las configuraciones de nuestro FTP editaremos el archivo de configuración mediante “nano /etc/vsftpd/vsftpd.conf”

 

2)      Archivo de configuración Vsftpd.conf

En este punto podremos observar las diversas configuraciones que nos presta nuestro servicio de FTP

 

 

Configuraciones Básicas

Anónimo/Credencial Login podremos permitir estos tipos de logueo así como permisos de publicaciones y otras configuraciones más avanzadas. En nuestro caso haremos un FTP con credenciales (la forma anónima viene por defecto en Vsftpd)

1)      Desactivar login Anónimo

Ya que estamos en el Vsftpd.conf verificaremos que la siguiente línea se encuentra de la siguiente forma “Anonymous_enable=NO”

2)      Verificar Rutas/Usuarios Locales

Con esto permitiremos integrar usuarios locales al FTP,  para esto verificaremos la línea señalada se encuentra de la siguiente forma “local_enable=YES”

 

 

3)      Verificar Escritura mediante FTP

Como siguiente verificación tendremos en esta línea la cual nos permitirá las publicaciones de los diversos usuarios en FTP, la siguiente línea “write_enable=YES”

 

4)      Permisos anónimos de subida

Con esto permitiremos que los usuarios una vez superada sus credenciales puedan subir sus archivos al FTP, otra forma para evitar activar esta línea es dar permisos individuales por carpeta FTP del usuario. Para demostrar los permisos de anonimato activaremos esta línea “anon_upload_enable=YES”

 

5)      Permisos anónimos de escritura

Así mismo probaremos los permisos anónimos de subida lo que permitirá en general q los usuarios logueados tengan los permisos para escribir en nuestro FTP, con la siguiente línea. Finalmente “Ctrl+O” para guardar y “Ctrl+X” para 8salir.

 

Configuración de Usuarios FTP

Crearemos usuarios locales para que tengan acceso a sus FTP a través de la Red

1)      Crear Usuario para ftp

En este punto crearemos un usuario local el cual tendrá un FTP personal a través de su HOME. Con el comando “useradd -g ftp -d /home/ftptest ftptest”

2)      Contraseña para el usuario

Como ya sabemos vamos a asignar una contrañsea para el usarion ftp mediante el comando “passwd” e ingresamos la contraseña

 

 

3)      Configurar home como FTP ruta

Ejecutaremos el siguiente comando “setsebool -P ftp_home_dir on”

 

Probando al FTP

Probaremos nuestro FTP a través de un cliente en nuestra red

Probar FTP mediante Cliente (Browser)
1)      Ingresar al FTP Mediante Browser

Una vez configuradas estas opciones vamos al cliente para comprobar el funcionamiento del ftp en nuestro caso es ftp://server.practica.com  e ingresamos nuestras credenciales

 

2)      Verificar FTP

En este punto podemos observar el panel del FTP, en este momento no sale ningún archivo ya que no ha sido usado

 

 

Probar FTP mediante Cliente (Filezilla)
1)      Ingresar a Filezilla

Este software cliente ftp nos permitirá una mejor conexión de cliente al servidor FTP, para esteo especificaremos la ruta del servidor y las credenciales de acceso, server.practica.com – ftptest – admin1234 – 21

2)      Verificación de Conexión

Vemos que la conexión ha sido exitosa

 

 

3)      Subiendo archivos mediante cliente FTP

Crearemos un simple fiche llamado Readme.txt en el cliente más adelante observaremos la ruta en el servidor donde se alojan el contenido.

 

 

Probando FTP a través de Móvil (Entorno WAN -> Solo a través de dirección wan )

Se conectara a través de un cliente móvil y transferirá archivos al FTP, el acceso es igual al cliente filezilla

1)      Conectando a través de FTP Móvil

Una vez conectado podremos ver el acceso del FTP

2)      Verificación de conexión

Como observamos vemos los archivos del usuario FTP ftptest

 

 

3)      Creamos carpeta de ejemplo

Crearemos una carpeta en el cliente móvil

 

4)      Subiendo archivos mediante cliente móvil

Crearemos una carpeta y subiremos un archivo del móvil en el FTP, recalcamos se revisará más adelante el sitio alojado en el FTP del servidor

 

 

FTP en el Servidor
Verificación de archivos en el Servidor FTP

Vamos a verificar en el servidor la ruta y visualizar los archivos de FTP

1)      Ingresaremos mediante Terminal

Siendo usuario root ingresaremos a la ruta “cd /home/ftptest”

2)      Verificar directorios y archivos

Con la ayuda de “ls” verificaremos los archivos dentro del servidor subidos por los diversos clientes a través del usuario ftptest. Como observamos están todas las modificaciones, ficheros y directorios que se han trabajado durante el ejemplo

 

Integrando Vsftpd Con Wembin
Instalar Modulo Vsftpd para Webmin

Instalaremos la un paquete para visualizar diversas configuraciones en webmin

1)      Descargar paquete de vsftpd para webmin

Descargaremos el .gz en esta dirección especificada en la imagen

2)      Instalar modulo en webmin

Iremos a webmin -> configuración de webmin -> Modulos de Webmin, en la opción de paquetes adjuntaremos el descargado

 

 

3)      Adjuntar paquete

Daremos clic en adjuntar y buscaremos el paquete una vez encontrado daremos clic en instalar

 

 

4)      Verificar Modulo

Una vez instalado iremos a Servidores -> Vsftpd y podremos observar las opciones de forma gráfica que podemos ir editando


 

Glosario (Anexo) ftp/permisos/directorio
Permisos:

Autorización o consentimiento para realizar una acción

Tipos de Permisos:
Permiso de lectura (read r):

                El usuario puede acceder para poder leer el contenido del archivo o directorio

Permiso de escritura (write w):

                El usuario tiene permiso a los archivos y directorios tanta para leerlos así mismo para modificarlos

Permiso de Ejecución (execute x) :

                El usuario tiene permiso de ejecución de un archivo lo que significa que puede ejecutarlo sea o no una aplicación.

Tipos de usuarios a los que se les otorga permisos

·         Usuario propietario del archivo (u)

·         Grupo propietario del archivo (g)

·         Resto de usuarios del sistema (o)

Cambio de Permisos
Agregar o quitar permisos:
Forma 1: Inicial a quien va dirigido  

Para agregar permisos a un archivos o directorio se lo realiza de la siguiente manera inicial a quien va dirigido el permiso acompañado de la letra del permiso que se desea otorgar para agregar se utiliza (+) y para quitar (-) ejemplo:

·         u+r-x = para agregar permiso de lectura a usuario propietario, pero quitarle el de ejecución.

·         g-w = para quitar permiso de escritura a grupo

·         u+r+w+x = para agregar todos los permisos al propietario.

Forma 2: Código numérico

Para esto representamos de la siguiente manera los permisos de lectura (r = 4), escritura (w=2) y ejecución (x=1). Para otorgar los permisos lo realizamos de la siguiente forma sumamos el valor que tiene cada permiso (lectura y escritura = 6, escritura y ejecución = 5, todos los permisos = 7 y para quitar todos los permisos el código es 0) ejemplo:

·         700 = Otorga todos los permisos al usuario propietario

·         731 = Otorga todos los permisos al propietario, a grupos escritura y ejecución y otros solo ejecución

·         444 = Permiso de lectura para todos 

 

 

RECORDAR

 (Los permisos en linux/centos van desde carpetas superiores à hasta carpetas inferiores)

(Existen permisos en usuarios / grupos / otros usuarios)

(Si la carpeta superior tiene todos los permisos clientes FTP pueden editar permisos de carpetas inferiores lo que correspondería a una falla grave a la gestión de permisos)


 

Practica (Anexo) ftp/permisos/directorio
Editar Permisos en las opciones del FTP

Ahora editaremos el archivo vsftpd.conf en la cual desactivaremos las líneas de configuración anónima para esto

Opciones de FTP
1)      Acceder al archivo vsftpd.conf

Para esto primero verificaremos que estamos logueados como super usuarios con el comando “sudo su” accederemos a root, consecuente ejecutaremos la línea de código con el comando “nano /etc/vsftpd/vsftpd.conf

2)      Comentar Líneas de Acceso anónima 1

Una vez el en archivo de configuración comentaremos con “#” las siguientes líneas “#anon_upload_enable=YES”

 

 

3)      Comentar Líneas de Acceso anónima 2

Una vez el en archivo de configuración comentaremos con “#” las siguientes líneas “#anon_mkdir_write_enable=YES” y guardamos con CTRL+O y salimos con CTRL + X

Verificar permisos de Acceso

Bien como realizamos el esquema de la práctica determinamos al inicio que los usuarios que creamos localmente tendrán acceso mediante FTP a su /Home osea su directorio personal, procederemos a jugar con los permisos de estos usuarios desde sus carpetas /Home hasta sus ficheros en raíces más bajas de los directorios con lo que jugaremos al poner restricciones.

Restringiendo permisos desde /Home

Vamos a establecer permisos en los directorios personales

1)      Acceder al home del usuario

Vamos a acceder al directorio home para observar los directorios principales de cada usuario para esto ejecutaremos “cd /home

2)      Verificar Permisos

una vez aquí ejecutaremos un “ls -l” y verificaremos los permisos que tiene cada directorio que por defecto tiene “rxw”

 

 

 

3)      Cambiar Permisos

Para comprobar el rápido cambio quitaremos todos los permisos del directorio para el usuario, para esto ejecutaremos “chmod -rxw ftptest” el cual es el nombre del directorio de nuestro usuario

 

4)      Verificar en el cliente FTP

Ahora trataremos de conectarnos a nuestro FTP mediante el usuario “ftptest” y observarnos que no tenemos acceso, principalmente porque se quitó el permiso de ejecución “x”. Por lo cual no vamos a poder acceder al FTP

 

5)      Revertir permisos

Para dejar normal el acceso a nuestro usuario ftptest agregaremos de nuevo sus permisos, para esto volveremos a ejecutar la línea “chmod  u+rx ftptest/” con esto nuestro usuario no tendrá problemas acceder y leer su FTP, además ejecutamos un “ls -l” y comprobamos sus credenciales están de vuelta. (si hay permisos de grupos y restos de usuarios quitarlos con “chmod g-rxw ftptest/” y “chmod o-rxw ftptest/”)

 

Permisos de Directorios y Ficheros
Verificar Permisos Directorios y Ficheros

Una vez que nuestro usuario ftptest tiene acceso a su directorio y que durante la práctica se han subido algunos archivos y creados directorios, editaremos ciertos permisos y observaremos sus aplicaciones

1)      Entrar al directorio del usuario

Para verificar los permisos de los archivos que contiene el usuario primero entraremos en su directorio principal con el comando “cd /home/ftptest”

2)      Verificar Permisos de directorios y ficheros

Para esto ejecutaremos un “ls -l” y observamos que cada archivo y directorio tienen sus permisos, lo que indica que el usuario puede realizar cualquier cambio.

 

3)      Verificar modificaciones del usuario

Ahora iremos al cliente y cambiaremos un nombre a un directorio y a un fichero (directorio “prueba” a “1”)(dichero ”README.txt” a “2.txt”) (los cambios se evidencian en la imagen).

 

4)      Verificar en el Servidor FTP

Aquí mismo en el servidor ejecutaremos un “ls -l” y comprobaremos que se han realizado los cambios

 

Aplicación de restricción por Permisos
Modificar Permisos Directorios y ficheros

Para abarcar las aplicaciones haremos cambios en generales, quitaremos todos los permisos de ejecución y escritura (-xw) lo que solo permitirá al usuario ver sus archivos “solo eso”.

1)      Modificar permisos del fichero

Modificaremos los permisos del fichero 2.txt para esto ejecutaremos el comando “chmod -xw 2.txt” y daremos enter

2)      Modificar permisos del Directorio

Modificaremos los permisos del directorio 1 para esto ejecutaremos el comando “chmod -xw 1” y daremos enter

 

 

Verificar Restricciones

Para acortar tiempos comprobaremos que tenemos restricciones de permisos intentado cambiar nombre a los ficheros y directorios modificados, que como resultado deberíamos tener denegaciones de dichos cambios

1)      Ingresar al Cliente FTP y Modificar

Una vez que ingresemos a nuestro cliente ftp y tratemos de modificar le nombre del directorio y fichero a los que restringimos permisos deberemos recibir mensajes de restricciones, accderemos de las misma forma que siempre la hemos hecho.

2)      Mensaje de restricción 1 directorio

Observamos que no podemos modificar este directorio

 

 

3)      Mensaje de restricción 2 fichero

Observamos que no podemos modificar este fichero

 

 

Conclusiones

FTP (File Transfer Protocol) Es ideal para transferir grandes bloques de datos por la red teniendo un servidor y un cliente FTP, en la mayoría de los servidores, es la única manera de conectar con nuestro sitio permitiéndonos subir y bajar archivos.

Como hemos visto en esta práctica el FTP nos ha permitido agilizar mucho la comunicación rápido entre el usuario y el servido aplacando así la necesidad de aumentar la distancia de que un usuario pueda transmitir información necesaria para diversos escenarios.

Así mismo se ha evidenciado el uso de las diversas formas en el que un FTP puede trabajar, comprado el rendimiento del FTP en el SO CentOS 7, cave recalcar las seguridades implementadas en el FTP dependerán de cada flujo de procesos en el que queramos montar nuestro servicio, siendo este un punto muy importante para que el FTP demuestre su adaptación a los diversos procesos.

Como ya se ha venido trabajando en esta práctica hemos decido implantar el módulo de vsftpd en Webmin para su administración grafica

En algún caso errónea al realizar peticiones a nuestro FTP debemos revisar que nuestro problema no proviene de nuestro archivo relsov.conf o de nuestro firewall

No hay comentarios :

Publicar un comentario