Act6. MilJimenez - CarlosAlberto

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 30

1


REPORTE DE
PRÁCTICA
integrantes:
• Mil Jiménez Carlos Alberto
• Ovando Arcos Angie Michelle
• Rodríguez Campos Rodrigo Irán
• Mosqueda Gómez Jesús Alexander
• Sánchez Córdova Yaditzy Arisbeth
Profesor:
Villanueva Guzmán Jorge Cein
Carrera:
Ing. En Sistemas Computacionales
Fecha de entrega:
15 de octubre del 2024
2

INDICE
INTRODUCCIÓN ................................................................................................................................ 3
Marco Teórico..................................................................................................................................... 4
CONCEPTOS MÁS IMPORTANTES: ....................................................................................... 6
INSTALAR Y CONFIGURAR UN SERVIDOR FTP. ................................................................. 7
CREACION DE UN USUARIO PARA FTP. ................................................................................ 9
CONFIGURACIÓN DE VSFTPD................................................................................................... 12
CONFIGURACIÓN DE SSL/TLS EN VSFTPD ......................................................................... 14
DESCARGA E INSTALACIÓN DEL FILEZILLA EN LA MAQUINA FÍSICA DE UNA
COMPUTADORA EXTERNA ........................................................................................................ 16
EJECUCIÓN DEL SERVIDOR EN FILEZILLA ........................................................................... 19
CONFIGURACIÓN DE RUTA FTP AL DIRECTORIO DE NUESTRO PROYECTO ..... 21
Computadoras usadas: ................................................................................................................. 28
CONCLUSIÓN .................................................................................................................................... 29
BIBLIOGRAFÍA .................................................................................................................................. 30
3

INTRODUCCIÓN
En la era digital actual, la transferencia segura y eficiente de archivos se estaba
convirtiendo en una necesidad crítica para muchas organizaciones y desarrolladores.
Para abordar este desafío, uno de los métodos más comunes que se utilizaba para
gestionar la transferencia de archivos entre sistemas era el uso de servidores FTP
(File Transfer Protocol).

En este informe, se estaba detallando el proceso de instalación y configuración de


vsftpd (Very Secure FTP Daemon), una de las soluciones de servidor FTP más seguras
y populares en entornos Linux.

Nuestro equipo de trabajo había explorado de manera exhaustiva una serie de pasos
claros que incluían la creación de usuarios, la configuración de permisos adecuados,
la implementación de medidas de seguridad y el establecimiento de conexiones
seguras mediante SFTP (Secure File Transfer Protocol).

El objetivo de esta práctica era proporcionar una guía práctica que permitiera a los
administradores de sistemas implementar un servidor FTP seguro y funcional,
optimizando así el acceso y la gestión de archivos en entornos colaborativos.
4

1. FTP (File Transfer Protocol)

El FTP es un protocolo estándar de red utilizado para la transferencia de archivos


entre un cliente y un servidor. Es ampliamente utilizado para cargar y descargar
archivos en servidores remotos.

vsftpd (Very Secure FTP Daemon) es una implementación popular de un servidor


FTP, conocida por su seguridad y eficiencia. Los servidores FTP como vsftpd permiten
controlar qué usuarios pueden acceder, qué permisos tienen sobre los archivos, y
cómo se gestionan las conexiones.

2. SFTP (Secure File Transfer Protocol)

El SFTP es una extensión del protocolo SSH (Secure Shell) que proporciona una
transferencia de archivos más segura en comparación con el FTP estándar. Utiliza el
cifrado de SSH para proteger la comunicación.

A diferencia del FTP, el SFTP cifra tanto los comandos como los datos, lo que lo
convierte en una opción preferida para conexiones seguras en la transferencia de
archivos.

3. SSH (Secure Shell)

SSH es un protocolo que permite a los usuarios conectarse a una máquina de manera
segura para realizar operaciones como administración remota y transferencia de
archivos. SSH también puede ser utilizado para tunelización segura y ejecución de
comandos remotos.

El archivo /etc/ssh/sshd_config es clave en la configuración del servicio SSH, ya que


define cómo se comportará el servidor SSH en cuanto a seguridad, acceso y
restricciones para los usuarios.

4. Chroot (Change Root Directory)

La directiva ChrootDirectory se utiliza para "enjaular" a un usuario dentro de un


directorio específico, limitando su acceso solo a ese directorio y sus subdirectorios.
Esta es una técnica de seguridad para evitar que los usuarios puedan acceder a otras
partes del sistema.
5

En el caso de un servidor SFTP, es común usar chroot para restringir a los usuarios
solo a sus propios directorios, garantizando que no puedan ver ni manipular otros
archivos en el servidor.

5. Permisos de Archivos en Linux

Los permisos de archivos en Linux son gestionados a través del comando chmod,
que define qué tipo de acceso tienen el propietario, el grupo y otros usuarios a un
archivo o directorio.

El modo 755 significa que el propietario tiene permisos completos (lectura, escritura
y ejecución), mientras que el grupo y los demás solo tienen permisos de lectura y
ejecución. Esto es esencial en servidores FTP y SFTP para proteger la integridad de
los archivos mientras se asegura el acceso adecuado.

6. Gestión de Usuarios y Grupos

Comandos como useradd y chown son utilizados para crear usuarios y asignarles
permisos específicos sobre directorios y archivos. En un entorno FTP o SFTP, es
importante crear usuarios con permisos limitados para evitar posibles brechas de
seguridad.

La administración de permisos y propiedad de los archivos mediante chown asegura


que solo los usuarios autorizados puedan modificar o acceder a ciertos archivos.

7. Configuración de Servicios y Firewall

Systemctl es el comando estándar para gestionar servicios en sistemas basados en


systemd (como la mayoría de las distribuciones modernas de Linux). Comandos
como systemctl start, enable y status permiten iniciar, habilitar en el arranque y
verificar el estado de servicios como vsftpd y sshd.

El firewalld se utiliza para gestionar el firewall y permitir conexiones específicas


(como los puertos 20 y 21 para FTP o 22 para SSH/SFTP).
6

CONCEPTOS MÁS IMPORTANTES:

Seguridad en la transferencia de archivos: Mediante el uso de SFTP y las


configuraciones de Chroot, se busca garantizar que los usuarios solo puedan acceder
a su propio espacio y que las conexiones sean seguras.

Gestión de usuarios y permisos: Definir claramente qué usuarios pueden acceder


a qué recursos y qué permisos tienen sobre ellos es esencial en la administración de
sistemas seguros.

Control de servicios: El uso de systemctl para habilitar y verificar servicios asegura


que el sistema esté correctamente configurado y funcionando.
7

La Instalación del servidor vsftpd

Su instalación es muy sencilla, ya que los paquetes ya se encuentran disponibles en


los repositorios principales:

Podemos empezar la instalación con : dnf install vsftpd openssl

Una vez hecho esto, encendemos el servicio y lo añadimos al arranque:


8

Empezamos iniciando el servicio con: systemctl start vsftpd

Este comando inicia el servicio vsftpd (Very Secure FTP Daemon) en el sistema. No
hace que el servicio se inicie automáticamente en futuros reinicios, solo lo activa en
el momento.

Si quedemos que el servicio se inicie automáticamente cuando entramos a nuestra


maquina podemos usar: systemctl enable vsftpd

Este comando maneja el enable lo que significa que cada vez que enciendas tu
maquina el servicio vsftpd se inicializada solo

Ahora podemos verificar si nuestro servicio vsftpd está en funcionamiento con:

systemctl status vsftpd


9

Vamos a crear primero el usuario del servicio, y le asignamos un directorio de trabajo:


useradd -m -c admin -d /home/admin admin

El comando que mencionas useradd -m -c admin -d /home/admin admin se utiliza


para crear un nuevo usuario en un sistema Linux. Cada opción tiene una función
específica:

useradd: Es el comando básico para agregar un nuevo usuario al sistema.

-m: Esta opción crea un directorio home para el nuevo usuario. En este caso, se va a
crear el directorio /home/admin si aún no existe.

-c admin: La opción -c permite agregar un comentario al perfil del usuario. El


comentario puede ser una descripción o algún detalle útil. En este caso, el
comentario será "admin". Este comentario aparece, por ejemplo, cuando se ejecuta
el comando finger o cuando se consulta información sobre el usuario.

-d /home/admin: Define el directorio home del usuario, es decir, el lugar donde se


almacenarán sus archivos personales. En este caso, se está especificando que el
directorio home del usuario será /home/admin.

admin: Es el nombre del usuario que se está creando.

Ahora creamos la carpeta para el servicio:

mkdir -p /home/admin/ftp

mkdir: Es el comando para crear directorios.


10

-p: Esta opción asegura que, si los directorios padres no existen, se creen
automáticamente. En este caso, si la ruta /home/admin no existe, se creará también.

/home/fadmin/ftp: Especifica la ruta completa donde se creará el nuevo directorio


llamado ftp dentro del directorio home del usuario admin.

le asignamos permisos:

chmod -R 750 /home/admin/ftp:

chmod: Es el comando que se usa para cambiar los permisos de archivos o


directorios.

-R: Esta opción es recursiva, lo que significa que aplicará los permisos no solo al
directorio especificado, sino también a todos los archivos y subdirectorios dentro de
él (si los hubiera).

750: Son los permisos que se están asignando al directorio:

7 (rwx): El usuario (propietario) tiene permiso de lectura, escritura y ejecución.

5 (r-x): El grupo tiene permiso de lectura y ejecución, pero no de escritura.

0 (---): Los demás no tienen ningún permiso.

/home/admin/ftp: Especifica el directorio al que se le aplican estos permisos.

El comando chown admin: /home/admin/ftp cambia la propiedad del directorio


/home/admin/ftp al usuario admin. Aquí te explico cada parte:

chown: Es el comando que se utiliza para cambiar el propietario de un archivo o


directorio.

admin:: Indica que el usuario admin será el nuevo propietario del directorio. El
carácter: después de admin sugiere que también puedes cambiar el grupo al que
pertenece el directorio, pero en este caso se omite el grupo, por lo que mantiene el
grupo anterior o lo asigna al grupo por defecto del usuario admin.

/home/admin/ftp: Es el directorio al que se le cambia la propiedad.

Le damos una contraseña de 9 caracteres para nuestro usuario


11

Añadimos el usuario al fichero de usuario de usuarios del servicio:

echo ftpusuario >> /etc/vsftpd/user_list

El comando echo admin >> /etc/vsftpd/user_list se utiliza para agregar el usuario


admin al archivo /etc/vsftpd/user_list, que es utilizado por el servidor FTP vsftpd para
gestionar los accesos de los usuarios. Aquí te explico los detalles:

echo admin: El comando echo simplemente imprime o genera el texto "admin". En


este caso, se está utilizando para agregar este texto (el nombre del usuario admin)
al archivo.

>>: Es un operador de redirección. En este caso, >> se utiliza para agregar (append)
el texto al final del archivo sin sobrescribir su contenido actual. Si usáramos solo un
>, se sobrescribiría todo el contenido del archivo, pero con >>, se conserva el
contenido existente y se añade el nuevo texto al final.

/etc/vsftpd/user_list: Es un archivo de configuración de vsftpd que se utiliza para


controlar qué usuarios pueden o no pueden acceder al servidor FTP. El
comportamiento exacto de este archivo depende de cómo esté configurado vsftpd:

Si userlist_deny=NO en el archivo de configuración de vsftpd, entonces solo los


usuarios listados en user_list podrán iniciar sesión en el servidor FTP.

Si userlist_deny=YES (el valor por defecto), los usuarios en user_list serán bloqueados
del acceso FTP.
12

En el siguiente paso, vamos a realizar algunas configuraciones en el archivo de


configuración de vsftpd, para permitir que los usuarios puedan acceder al servidor
FTP. Para ello debemos abrir el fichero de configuración en «/etc/vsftpd/vsftpd.conf»
y editarlo.

Primero, permitimos el acceso a los usuarios locales y luego bloqueamos a los


usuarios anónimos:

Descomentaremos las siguientes líneas

Otorgamos permisos al usuario para ejecutar algunos comandos de FTP, como


descargar, cargar eliminar, además de agregar archivos:

Restringimos el acceso de los usuarios solo a su directorio de inicio:

Otorgamos a los usuarios permiso de escritura en sus directorios de inicio:

Agregamos la línea:
13

Declaramos unos puertos personalizados para habilitar conexiones FTP pasivas:

Agregamos las líneas:

Permitimos que solo los usuarios declarados en el archivo user_list accedan al


servidor FTP y luego bloqueamos los anónimos:
Agregamos las líneas:

Una vez terminamos las configuraciones en el archivo de vsftpd


Podemos guardar y reiniciar nuestro servidor:

Ahora podemos verificar si el servicio está escuchando por el puerto 21:

Usando
14

/
Por último, vamos a generar un archivo de certificado SSL y luego configurarlo en el
servidor.

Solicitamos el certificado ejecutando el siguiente comando:

openssl req -x509 -nodes -days 3650 \-newkey rsa:2048 -keyout


/etc/vsftpd.pem \ -out /etc/vsftpd/vsftpd.pem

Respondemos las preguntas a nuestra consideración:

Una vez hecho esto, editamos el fichero de configuración, y añadimos:


15

Recuerda que para entrar al fichero se usa:

Al realizar los cambios, guardamos y salimos.

Reiniciamos el servicio:

systemctl restart vsftpd

Configurar el cortafuegos para vsftpd

Si tenemos configurado el cortafuegos, con firewalld, debemos habilitar los puertos


correspondientes:

firewall-cmd --permanent --add-port=20-21/tcp

firewall-cmd --permanent --add-port=31500-32500/tcp

Y recargamos:

firewall-cmd –reload

Una vez que ya hicmos todas las configuraciones pertinentes podemos verificar el
servidor en nuesto caso usaremos FileZilla.
16

DESCARGA E INSTALACIÓN DEL FILEZILLA EN LA MAQUINA FÍSICA


DE UNA COMPUTADORA EXTERNA
Ingresaremos a la página https://filezilla-project.org/ y dar clic en “Download FileZilla
Client All platforms”

Dar clic en “Download FileZilla Client”


17

Descargar la edición gratuita

Ejecutar como administrador para comenzar la instalación

Aceptar términos y condiciones


18

Seguir los pasos mostrados en pantalla para finalizar la instalación


19

Lo primero que se tiene que hacer en FileZilla una vez ya instalada es poner la ip que
has configurado hasta el momento en tu máquina virtual y de igual forma poner el
usuario y contraseña que se crearon mientras tanto en el puerto pondremos el 21 ya
que es este el que configuramos previamente, le damos a ‘Conexión rápida’ y nos
debería de lanzar la carpeta que creamos previamente

Si por alguna razón no les muestra ninguna carpeta es probable que al estar usando
SElinux pueda estar bloqueando el acceso, puedes verificarlo en tu maquina virtual
en donde tienes el servidor con sestatus

Si está en modo "enforcing", intenta ponerlo en "permissive" temporalmente para


ver si eso resuelve el problema:

Con setenforce 0

Ahora podemos verificarlo


20

ya que, ya nos debería de dar acceso a la carpeta

Con esto podemos ver que todas nuestras configuraciones son exitosas, pero todavía
no hemos acabado ya que lo que queremos es que entre a nuestra carpeta donde
tenemos nuestro proyecto.

Se creo la carpeta ftp para ver el buen funcionamiento de nuestro servidor, ahora
procedemos a configurarlo de forma que nos apunte a nuestra carpeta en donde
tenemos nuestro proyecto
21

Una vez que ya tenemos todas las configuraciones anteriores, a la vez que
verificamos en el filezilla que responde bien al puerto 21, hora procedemos a
configurar nuestra ruta para que apunte a nuestro proyectó web, donde haremos lo
siguiente:

Entraremos al archivo de vsftpd por nuestro servidor en nuestra máquina virtual:

Recuerda que para entrar a ese archivo se usa:

Una vez entremos aquí pondremos la ruta en donde se encuentra nuestro proyecto
web:

En nuestro caso sería:

Local_root=/srv/www/dominio/public_html/

Guardamos los cambios (recuerda que para guardar cualquier archivo que hayas
modificado se usa w + q + ! + enter)

Reiniciamos el vsftpd

Procedemos a poner la siguiente línea de código:

chmod 755 /srv/www/dominio/public_html

El comando chmod 755 /srv/www/dominio/public_html se utiliza para cambiar los


permisos del directorio /srv/www/dominio/public_html, que es una ruta típica para
almacenar archivos de un sitio web en servidores web (como Apache o Nginx).
22

chmod: Es el comando que se usa para cambiar los permisos de archivos y


directorios en sistemas Linux/Unix.

755: Son los permisos que se están asignando al directorio. El número 755 se
descompone en:

7 (rwx): El propietario del archivo (o directorio) tiene permisos de lectura (r),


escritura (w), y ejecución (x).

5 (r-x): Los usuarios que pertenecen al grupo tienen permisos de lectura y ejecución,
pero no de escritura.

5 (r-x): Todos los demás usuarios (otros) también tienen permisos de lectura y
ejecución, pero no de escritura.

/srv/www/dominio/public_html: Especifica la ruta del directorio al que se le están


aplicando estos permisos. En este caso, es el directorio donde se almacenan los
archivos públicos del sitio web.

Ahora procedemos a verificar nuestro si nuestras configuraciones fueron las


correctas.

De primeras nos muestra nuestro certificado que creamos

Para después dar paso a ver nuestra carpeta del proyecto con el puerto 21
23

Como se puede observar nos apunta únicamente a nuestro proyecto lo que significa
que los pasos anteriores fueron un éxito.

Pero ahora que pasa si en vez de querer entrar a nuestro puerto 21 quiero entrar a
mi puerto 22 con sshd, lo mas seguro es que si me va a dejar entrar pero me mostrara
todas las carpetas

Bueno de la misma forma que hicimos con el puerto 21 haremos en el puerto 22


pero esta vez con sshd.

Lo primero que hay que hacer entrar al archivo de sshd, con la siguiente línea de
código:
24

vi /etc/ssh/sshd_config

lo que nos abrirá todo el archivo sshd en donde introduciremos las siguientes líneas
de código

Match User admin

ChrootDirectory /srv/www/dominio/public_html

ForceCommand internal-sftp

AllowTcpForwarding no

X11Forwarding no

1. Match User admin

Esta directiva indica que las reglas especificadas debajo de ella se aplicarán solo al
usuario admin cuando intente conectarse mediante SSH o SFTP.

Match User permite aplicar configuraciones específicas para un usuario o grupo de


usuarios en lugar de tener configuraciones globales.

2. ChrootDirectory /srv/www/dominio/public_html

ChrootDirectory especifica el directorio raíz al que el usuario será "enjaulado"


(chrooted). Esto significa que el usuario admin solo tendrá acceso a este directorio,
y no podrá acceder a otras partes del sistema de archivos.
25

En este caso, el usuario admin quedará restringido a /srv/www/dominio/public_html.


Esto es común en servidores SFTP para asegurar que los usuarios no puedan acceder
a archivos fuera de su propio directorio asignado.

3. ForceCommand internal-sftp

Esta directiva fuerza al usuario admin a usar el comando internal-sftp, que es una
implementación integrada de SFTP dentro del servidor SSH.

Al usar internal-sftp, se asegura que el usuario solo pueda utilizar SFTP para transferir
archivos y no tenga acceso a una shell interactiva del sistema (es decir, no podrá
ejecutar comandos como en un acceso SSH normal).

Esto es importante para limitar las capacidades del usuario admin solo a la
transferencia de archivos sin acceso a otras funcionalidades del servidor.

4. AllowTcpForwarding no

AllowTcpForwarding controla si el usuario tiene permitido usar el reenvío de puertos


TCP a través de la conexión SSH.

Al establecer AllowTcpForwarding no, se evita que el usuario admin pueda usar la


conexión SSH/SFTP para reenviar tráfico a otros sistemas (lo que podría ser un riesgo
de seguridad en algunos entornos).

5. X11Forwarding no

X11Forwarding controla si el reenvío de X11 está permitido. X11 es el sistema de


ventanas gráfico que permite ejecutar aplicaciones gráficas en un servidor y verlas
en un cliente.

Al establecer X11Forwarding no, se deshabilita la capacidad del usuario admin para


reenviar aplicaciones gráficas a través de la conexión SSH. Esto también mejora la
seguridad, ya que evita potenciales vulnerabilidades asociadas con el reenvío de
aplicaciones gráficas.

Guardamos los cambios del archivo, y ejecutamos la siguente línea de codigo


26

Reiniciamos el sshd con

systemctl restart sshd

Ahora podemos entrar a nuestro filezilla y verificar si podemos entrar con nuestro
usuario al puesto 22 y que solo nos aparezca nuestra carpeta donde tenemos nuestro
proyecto web como en el 21.

Como podemos observar de igual manera podemos entrar con el puerto 22 y solo
nos aparecerá nuestro proyecto. Dando por fin a nuestro reporte

Como dato a considerar también podemos entrar a nuestro usuario root en donde
aquí si nos mostraran todas nuestras carpetas
27
28

Computadoras usadas:
29

CONCLUSIÓN
La correcta instalación y configuración de un servidor FTP utilizando vsftpd era
esencial para garantizar un entorno seguro y eficiente para la transferencia de
archivos.

Conforme íbamos conociendo más el cómo configurar las direcciones, puertos y


usuarios, nuestro equipo de trabajo había demostrado que, a través de la
implementación de medidas de seguridad como el chroot para enjaular a los
usuarios, la configuración de permisos específicos y la integración de protocolos
seguros como SFTP, se podía lograr un equilibrio entre accesibilidad y protección de
datos.

Esta práctica ha proporcionado un enfoque sistemático que nuestro equipo había


desarrollado para establecer un servidor FTP, desde la instalación inicial hasta la
verificación de su funcionamiento.

Al seguir al pie de la letra las indicaciones, los administradores de sistemas estarían


en condiciones de asegurar que sus infraestructuras de intercambio de archivos no
solo fueran funcionales, sino también resilientes frente a posibles vulnerabilidades.
La adopción de estas prácticas contribuiría a crear un entorno de trabajo más seguro
y productivo, alineándose con las crecientes exigencias actuales de la gestión de
datos en la red.
30

BIBLIOGRAFÍA

Spencer, S. (n.d.-b). Secure FTP Server - vsftpd - Documentation. Rockylinux.org.

Retrieved October 16, 2024, from

https://docs.rockylinux.org/guides/file_sharing/secure_ftp_server_vsftpd/

Un servidor FTP seguro con vsftpd en Rocky Linux 8. (2022, May 23).

ochobitshacenunbyte.

https://www.ochobitshacenunbyte.com/2022/05/23/un-servidor-ftp-

seguro-con-vsftpd-en-rocky-linux-8/

También podría gustarte