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