Proyecto Integrador
Tópico I-II Redes Linux 2023
Servicio FTP
Servicio SSH
Descripcion de proyecto
El proyecto busca proporcionar una comprensión profunda sobre el sistema operativo de código abierto GNU/Linux y los principios fundamentales del software libre, centrándose en la instalación y configuración de servicios esenciales como SSH y FTP tanto en un cliente como en un servidor.
Explicar los conceptos básicos de GNU/Linux, su historia, estructura, distribuciones populares y el movimiento del software libre. Destacar los beneficios éticos y prácticos del software libre y de código abierto.
Detallar el protocolo SSH (Secure Shell) y su importancia en la seguridad de la comunicación remota. Explicar la instalación y configuración tanto del cliente SSH para acceder a máquinas remotas como del servidor SSH para permitir el acceso remoto seguro a un sistema.
Explorar el protocolo FTP (File Transfer Protocol) y sus aplicaciones en la transferencia de archivos. Instrucciones detalladas sobre la instalación y configuración del cliente FTP para transferencias desde el sistema local y del servidor FTP para facilitar el intercambio de archivos de forma remota.
Integrantes del equipo
Equipo 2
Luis Toledo Russo
Eduardo Valdez Rubio
DANIEL RODRIGO ZAZUETA SOLANO
Antecedentes
Algunas cosas que puede ofrecer Linux
Licencias
En el ecosistema de software de Linux, existen diversas licencias que reglamentan su distribución, modificación y uso.
GNU - Linux
Es una familia de sistemas operativos tipo Unix compuesto por software libre y de código abierto.
Servicios
Linux ofrece multitud de servicios o servidores, estos pueden iniciar o arrancar junto con la carga del sistema o pueden después ser puestos a funcionar cuando se requieran.
Licencias y software libre
GPL (GNU General Public License)
Una de las licencias más populares para software de código abierto. La GPL garantiza a los usuarios la libertad de usar, estudiar, modificar y distribuir el software. Sin embargo, requiere que cualquier software derivado también se distribuya bajo la GPL.
LGPL (GNU Lesser General Public License)
Similar a la GPL, pero menos restrictiva en cuanto a la vinculación de bibliotecas y permite el uso de bibliotecas LGPL en software propietario.
MIT License:
Una licencia permisiva que permite un amplio uso, modificación y redistribución del software, siempre y cuando se incluya el aviso de copyright y la licencia original en las redistribuciones.
BSD License
Otra licencia permisiva que permite el uso, modificación y redistribución del software, con pocos requisitos en cuanto a la redistribución del código fuente y sin obligación de que el software derivado sea distribuido bajo la misma licencia.
Apache License
Creative Commons Licenses
Una licencia permisiva que permite el uso, modificación y distribución del software bajo ciertas condiciones, como la inclusión de avisos de copyright y la indicación de cambios realizados en el código.
Aunque más comúnmente asociadas con contenido creativo como imágenes, música o texto, algunas variantes de las licencias Creative Commons también se utilizan para software.
Licencias y software libre
En muchos de los textos de la FSF (Free Software Foundation) se habla más de filosofía que de ingeniería.
Debemos entender todo este movimiento más como una forma de pensar o hacer las cosas que como una compañía más de software.
Software libre consiste en programas de los cuales podemos conseguir su código fuente, estudiarlo, modificarlo y redistribuirlo sin que nos obliguen a pagar por ello. Lo que debemos tener claro es que sí que podemos pedir el dinero que queramos por los programas y su código fuente, el soporte que podemos ofrecer a los usuarios, los libros que vendamos o el material que proporcionemos, tal y como muchas compañías que distribuyen GNU/Linux hacen.
Las licencias de software son un aspecto crucial para la gestión eficiente de recursos y gastos en tecnología de la información. Este artículo proporciona una comprensión detallada de los diversos tipos de licencias y su importancia.
GNU - Linux
Los laboratorios Bell (AT&T) diseñaron un sistema operativo llamado UNIX, caracterizado por la buena gestión de los recursos del sistema, su estabilidad y su compatibilidad con el hardware de diferentes fabricantes (para homogeneizar todos sus sistemas).
Richard Stallman escribio el primer manifiesto de GNU En él empezó a describir el concepto de software libre y para qué creía necesario que programadores y desarrolladores de alrededor del mundo contribuyeran con él.
El proyecto empezó a producir software a partir de 1984, comenzando con el desarrollo de todas la herramientas necesarias para poder implementar un sistema operativo completo.
Linux, el núcleo de GNU/Linux, es de tipo monolítico. Esto indica que no se separan sus diferentes funcionalidades en distintos módulos, sino que todo forma parte de un mismo programa. El principal inconveniente de este tipo de diseño es que la localización de errores y su mantenimiento son muy costosos. En contrapartida, el rendimiento que se consigue es mucho mayor que en otros tipos de diseño.
Actualmente, existen muchas distribuciones diferentes basadas en GNU/Linux. Las hay para toda clase de computadoras y dispositivos electrónicos: ordenadores portátiles o de sobremesa, pocketPC o PDA, puntos de acceso de redes wireless.
Servicios de GNU - Linux
Cuando se administra un sistema GNU/Linux es necesario conocer
una gran variedad de aplicaciones y programas diferentes. Aunque antes de instalar cualquier aplicación es totalmente imprescindible leerse detenidamente la documentación que incorpora, en algunos casos las configuraciones pueden llegar a ser realmente complejas.
Servidores web: Linux es ampliamente utilizado como sistema operativo para servidores web. Herramientas como Apache, Nginx y Lighttpd se ejecutan comúnmente en sistemas Linux para alojar sitios web y aplicaciones.
Correo electrónico y servidores de mensajería: Servidores de correo electrónico como Postfix, Sendmail, Exim y servidores de mensajería instantánea como Jabber/XMPP son comunes en entornos Linux.
Servidores de base de datos: Sistemas de gestión de bases de datos como MySQL, PostgreSQL, MongoDB y SQLite se ejecutan bien en entornos Linux y se utilizan ampliamente para gestionar datos en aplicaciones web y empresariales.
Virtualización y contenedores: Linux es la base de numerosas soluciones de virtualización, como KVM (Kernel-based Virtual Machine) y contenedores como Docker y LXC, que permiten la creación de entornos virtuales aislados.
Almacenamiento en red: Ofrece soluciones de almacenamiento en red como NFS (Network File System) y Samba, que permiten compartir archivos y recursos en redes locales y entornos mixtos Windows-Linux.
Clustering y alta disponibilidad: Herramientas como Pacemaker, Corosync y Keepalived permiten la creación de clústeres para garantizar la disponibilidad y la redundancia de servicios.
Automatización y administración de sistemas: Linux cuenta con herramientas como Ansible, Puppet y Chef para automatizar la administración de sistemas, facilitando la configuración y gestión de múltiples sistemas.
Particiones del SO
/boot: 1024 MB Partición para los archivos de arranque del sistema.
/swap: 8GB (doble de nuestra memoria RAM).. Área de intercambio para mejorar el rendimiento del sistema.
/: 20GB. La partición raíz del sistema.
/var: 5 GB (5120) (o más si esperas un alto volumen de registros o datos variables)
·/var almacena datos variables, como registros del sistema, bases de datos, y otros datos que pueden cambiar durante el funcionamiento del sistema.
/home: Resto del espacio disponible. almacena los directorios personales de los usuarios.
Servicio FTP
¿Qué es? - ¿Cómo funciona? - Tipos de FTP
Los usuarios inician sesión en un servidor FTP (aunque esto puede no ser necesario).
El cliente FTP interactúa con el servidor según la solicitud del usuario.
Con FTP, se pueden cargar, descargar o mover archivos en el servidor.
FTP, desarrollado en 1971 por Abhay Bhushan, se concibió para transferir archivos de datos sobre ARPANET, el precursor de Internet. Ha experimentado revisiones desde la década de 1980 para mejorar velocidad, fidelidad y seguridad.
FTP permite la descarga, carga y transferencia de archivos en Internet y entre sistemas informáticos.
Facilita el intercambio de archivos entre computadoras o a través de la nube.
Requiere una conexión a Internet para ejecutar transferencias FTP.
Herramienta esencial para quienes construyen y mantienen sitios web.
Muchos clientes FTP son gratuitos, y la mayoría de los sitios web ya tienen FTP incorporado.
El término Protocolo de Transferencia de Archivos (FTP) se refiere a un proceso que implica la transferencia de archivos entre dispositivos a través de una red. Inicialmente utilizado para que los usuarios se comuniquen y compartan información entre dos dispositivos físicos, ahora se usa comúnmente para almacenar archivos en la nube, una ubicación segura a la que se accede de forma remota.
-Anónimo: Permite la transferencia sin cifrado ni contraseña.
-Protegido por Contraseña: Requiere un nombre de usuario y contraseña.
-FTP Seguro (FTPS): Ofrece seguridad adicional mediante transporte implícito o explícito de la capa de seguridad (TLS).
-HTTP (Protocolo de Transferencia de Hipertexto): Transmite datos en la web.
-IMAP (Protocolo de Acceso a Mensajes de Internet): Proporciona acceso a mensajes de correo electrónico.
-NTP (Protocolo de Tiempo de Red): Sincroniza relojes en computadoras a través de una red.
Servicio FTP
Proceso de Instalación del S.O. y de los servicios
Servicio SSH
¿Qué es? - ¿Qué hace? - ¿Cómo funciona?
SSH establece una conexión entre el dispositivo del usuario y una máquina lejana, generalmente un servidor. Utiliza encriptación para cifrar los datos que atraviesan la conexión, haciendo que, para un observador externo, parezcan datos aleatorios sin significado.
Capacidad para Tunneling: En redes, el tunneling es un método para mover paquetes a través de una red utilizando un protocolo o ruta que normalmente no podrían usar. SSH utiliza una técnica llamada reenvío de puertos para enviar paquetes de una máquina a otra.
TCP/IP: SSH opera sobre el conjunto de protocolos TCP/IP, fundamental en gran parte de Internet. TCP (Protocolo de Control de Transmisión) e IP (Protocolo de Internet) se emparejan para formatear, enrutar y entregar paquetes de datos.
Criptografía de Clave Pública: SSH es seguro porque utiliza la criptografía de clave pública. Esta técnica encripta o firma datos con dos claves diferentes: una clave pública disponible para todos y una clave privada guardada en secreto. Ambas partes de la conexión tienen un par de claves pública/privada y se autentican mutuamente.
El protocolo Secure Shell (SSH) es un método para enviar comandos de manera segura a una computadora a través de una red no segura. SSH utiliza la criptografía para autenticar y cifrar conexiones entre dispositivos. Además, permite el "tunneling" o reenvío de puertos, lo que permite que los paquetes de datos crucen redes que de otra manera no podrían atravesar. SSH se utiliza comúnmente para controlar servidores de forma remota, gestionar infraestructuras y transferir archivos.
Cuando un dueño de una tienda está de viaje, podría dar instrucciones a sus empleados desde lejos para asegurarse de que la tienda funcione sin problemas. De manera similar, SSH permite a los administradores gestionar servidores y dispositivos a distancia. A diferencia de protocolos de gestión remota antiguos como Telnet, que transportaban comandos de los administradores en una forma que cualquiera podía ver, SSH es seguro, de ahí el nombre Secure Shell.
Servicio SSH
Proceso de Instalación del S.O. y de los servicios
Servicio SSH
Comandos utilizados en el video.
Server
sudo apt update
sudo apt install openssh-server
sudo nano /etc/ssh/sshd_config
(nano) CTRL+W para buscar
(nano) CTRL+X para salir
(Configuraciones) PasswordAuthentication: no
sudo service ssh restart
sudo service ssh status
sudo systemctl enable ssh
Ip a
Cliente
sudo apt update
ssh username@VM_IP
ssh-keygen -t rsa -b 2048
ssh-copy-id username@VM_IP
Conclusiones
Luis
Entiendo que las licencias pueden pasar desapercibidas para el usuario común, pero desde la perspectiva de los ingenieros de software y profesionales de IT, reconocer su importancia es crucial. Durante la discusión sobre los servicios FTP y SSH, se exploró la transferencia de información y la interacción remota. En mi opinión, estos servicios son particularmente convenientes para situaciones como la interacción con un servidor alojado en la nube. La consideración de las licencias en este contexto añade un valor significativo a nuestra comprensión y práctica como profesionales en el campo de la ingeniería de software.
Eduardo
Aunque ya hace más de veinte años que el software libre existe, hasta los últimos tiempos no se ha perfilado como una alternativa válida para muchos usuarios, empresas y, cada vez más, instituciones y gobiernos. Actualmente, GNU/Linux es uno de los sistemas operativos más fiables y eficientes que podemos encontrar. Aunque su naturaleza de software libre creó inicialmente cierta desconfianza por parte de usuarios y empresas, GNU/Linux ha demostrado estar a la altura de cualquier otro sistema operativo existente.
Daniel
GNU/Linux emerge como un pilar fundamental en el universo de los sistemas operativos, destacándose por su estabilidad, versatilidad y naturaleza de código abierto. El servicio FTP facilita el intercambio de archivos de manera rápida y segura, mientras que el SSH proporciona un canal seguro para la administración remota del sistema. Esta combinación de servicios no solo contribuye a la robustez del sistema, sino que también subraya la importancia de GNU/Linux en entornos donde la seguridad y la transferencia de datos son cruciales.