Hola, soy

Vladimir Llueca

Desarollador Web | Programador

¿Quien soy?

Un desarollador con ganas de crecer profesionalmente

En 2023 me saque el titulo de Desarrollador Web y desde entonces he participado en la creación, desarollo y optimización de varias páginas webs.

Información Personal

  • Fecha de nacimiento : 21/09/2002
  • Correo : VladimirLlueca@gmail.com

Habilidades

Desarollador Web

Javascript, PHP, Java, HTML, CSS, Wordpress, Python, SQL


Hacker Ético

Python, Redes


Diseñador Gráfico

Canva, Pixlr E


Mi Resumen

Experencia Laboral

2024 | Colegio Oficial Magisterio

Desarollador Web / Diseñador Gráfico

Magisterio « Ver pagina


2024 | Horno San José

Desarollador Web / Diseñador Gráfico

Horno San José « Ver pagina


2023 | Hipica el Pedregal

Desarollador Web / Diseñador Gráfico

Hipica el Pedregal « Ver pagina


2023 | Academia ADOS

Desarollador Web / Diseñador Gráfico

Academia ADOS « Ver pagina

Educación

2020 - 2023

Grado superior en Desarollador de Aplicaciones Web

IES Juan De Garay


2017 - 2019

Bachillerato de Ciencias

Escolapios Carniceros


2012 - 2016

Educación Secundaria Obligatoria

Escolapios Carniceros

Habilidades

HTML5 & CSS3
JavaScript
PHP
Python
SQL
Java
Wordpress

Idiomas

Español
Ingles
Valenciano

Mi Linkedin

Mis Servicios

Páginas Web Personalizadas

Ideal para empresas pequeñas que se quieran modernizar con una página web para aumentar su radio de clientes.

Actualizar Páginas Web

Ideal para personas que ya tienen una página web y necesitan actualizarla o implementar nuevos cambios en ella.

Mantener Páginas Web

Ideal para personas que necesiten revisiones constantes, implementar nuevas funciones, soporte, SEO, etc.

Diseño Gráfico Personalizado

Ideal para aquellos que buscan mejorar su imagen de marca con diseños únicos y creativos, como logotipos, tarjetas de visita, folletos, etc.

Gestión de Redes Sociales

Ideal para aquellos que necesitan una presencia activa y efectiva en plataformas como Facebook, Instagram, Twitter, etc.

Integración de Páginas Web para Dispositivos Móviles

Adaptación y optimización de páginas web existentes para dispositivos móviles.

Mis Proyectos

Download free bootstrap 4 admin dashboard, free boootstrap 4 templates
Horno San José
» Ver pagina «

Download free bootstrap 4 admin dashboard, free boootstrap 4 templates
Academia ADOS
» Ver pagina «

Download free bootstrap 4 admin dashboard, free boootstrap 4 templates
Hipica el Pedregal
» Ver pagina «

Download free bootstrap 4 admin dashboard, free boootstrap 4 templates
Mi Capitán
» Ver pagina «

Download free bootstrap 4 admin dashboard, free boootstrap 4 templates
Colegio Oficial Magisterio
» Ver pagina «

Download free bootstrap 4 admin dashboard, free boootstrap 4 templates
Frosty Magic

Página hecha en shopify para hacer dropshipping

Download free bootstrap 4 admin dashboard, free boootstrap 4 templates
VisteteYA

Página hecha con Python y con el framework Flash

Ciberseguridad y Redes

1. Introducción

Mi interés en la ciberseguridad y las redes ha crecido a lo largo del tiempo, impulsado por la curiosidad y el aprendizaje autodidacta. Aunque mi formación principal es en desarrollo web, he dedicado un tiempo considerable a comprender los fundamentos de ciberseguridad y redes, aplicando este conocimiento en proyectos prácticos. Un ejemplo notable es el desarrollo de un sistema cliente-servidor en Python que permite una conexión remota segura mediante técnicas como el port forwarding. Este proyecto me ha permitido explorar y entender los desafíos de comunicación en redes y la importancia de implementar prácticas de seguridad adecuadas, acercándome a la ciberseguridad desde una perspectiva práctica.

Habilidades

Python Networking
Comunicación entre sistemas usando Python
Ciberseguridad Básica
Proteger sistemas contra amenazas comunes
TCP/IP Protocols
Gestionan la transmisión de datos en redes
Network Security Fundamentals
Proteger redes contra accesos no autorizados

2. Cliente-Servidor

El servidor abre un puerto y permanece a la espera de que los clientes se autentiquen mediante una contraseña. Una vez autenticados, los clientes entran en un estado de espera. La conexión con cada cliente se incia unicamente cuando el servidor emite el comando connect [IP del cliente], permitiendo así al servidor conectarse al equipo deseado y gestionar la comunicación de forma segura.

GIF

Cuando la autenticación se realiza correctamente, se envía automáticamente un correo notificando que el equipo está encendido, ya que la aplicación se inicia de forma automática al encender el sistema. Al establecer la conexión, se envía un segundo correo informando que la conexión se ha realizado con éxito.

GIF

El servidor se comunica con el cliente mediante comandos que se ejecutan directamente en el lado del cliente.



Hay 4 tipos de comandos

Movilidad

Estos comandos permiten navegar tanto dentro del equipo del cliente como en sus pendrives y discos duros. La ruta actual se actualiza automáticamente para evitar la necesidad de utilizar rutas absolutas.

GIF

Archivos

Estos comandos permiten interactuar con los archivos del sistema, incluyendo la creación de carpetas, la lectura y creación de documentos de texto, el renombrado de archivos y su eliminación.

GIF

Acciones

Estos comandos representan las funciones más peligrosas, convirtiendo al cliente.exe en un malware. A través de ellos, se pueden enviar archivos del equipo cliente al correo del atacante, activar o desactivar un keylogger (un programa capaz de registrar todas las teclas que el cliente presiona), ocultar y encriptar archivos, ejecutar archivos .exe, cerrar aplicaciones, entre otras acciones maliciosas.

GIF

Además, con el comando admin, se abre un nuevo menú que nos permite dejar de interactuar con el equipo del cliente y comenzar a gestionar el nuestro. Desde este menú, podemos subir archivos de nuestro equipo a GitHub y, a continuación, proceder a instalarlos en el equipo del cliente en segundo plano.

GIF

Extras

Estos comandos son de bajo riesgo y no representan una amenaza significativa para el equipo.

GIF

Cuando el servidor desea desconectarse del equipo, puede hacerlo mediante el comando disconnect, lo cual desconectará al servidor del equipo cliente. Sin embargo, el cliente continuará en espera, listo para aceptar una nueva conexión en caso de que el servidor envíe nuevamente la señal de conexión.

3. Redes

El uso de redes en este proyecto es fundamental para lograr una comunicación efectiva entre el cliente y el servidor.

Uno de los aspectos cruciales fue comprender cómo funcionan las IP públicas y privadas, ya que ambas desempeñan roles diferentes en las conexiones de red.

La IP pública es la dirección visible externamente y la que permite que otros dispositivos en internet se comuniquen con nuestra red.

En cambio, la IP privada es asignada a cada dispositivo dentro de la red local y permite que estos dispositivos se comuniquen entre sí sin exponerse directamente a internet. En la mayoría de los casos, tanto la IP pública como la privada suelen ser dinámicas, es decir, cambian cada cierto tiempo. Esto es gestionado por el proveedor de internet (ISP) para optimizar su propio uso de direcciones IP y reducir costos. Sin embargo, las IP dinámicas pueden causar problemas para establecer conexiones consistentes a lo largo del tiempo, ya que la dirección puede variar y hacer que las configuraciones se desajusten.

Para habilitar la comunicación cliente-servidor en este proyecto, fue necesario habilitar port forwarding (redireccionamiento de puertos) en el router.

El port forwarding es una técnica que permite redirigir el tráfico que llega a la IP pública hacia una dirección IP privada específica en la red local, en este caso, hacia el dispositivo que ejecuta el servidor. Al activar el port forwarding, especifiqué el puerto que el servidor necesita para recibir conexiones y la IP privada del dispositivo donde está alojado. Esta configuración asegura que cualquier solicitud enviada a la IP pública desde el exterior pueda llegar al servidor en la red local.

Otro aspecto relevante fue el firewall, que actúa como una barrera de seguridad en la red. Los firewalls, tanto en el router como en el sistema operativo del dispositivo, pueden bloquear el tráfico hacia ciertos puertos por motivos de seguridad. Para permitir la conexión en mi proyecto, fue necesario ajustar el firewall y crear reglas específicas que habiliten el puerto requerido. Sin estos ajustes, las solicitudes de conexión quedarían bloqueadas, impidiendo que el cliente se conecte al servidor.

Al trabajar con puertos, es importante asegurarse de que están abiertos y accesibles. Para verificar esto, utilicé herramientas en línea, como YouGetSignal, que permite comprobar si un puerto específico está abierto y, por lo tanto, accesible desde fuera de la red local. Esta verificación fue clave, ya que a veces, incluso después de configurar el port forwarding y ajustar el firewall, el puerto puede permanecer cerrado debido a restricciones adicionales del ISP.

Sin embargo, en este proceso me enfrenté a dos desafíos significativos.

En primer lugar, tanto mi IP pública como mi IP privada son dinámicas, lo que significa que cambian cada cierto tiempo, lo cual puede desconectar las configuraciones de red y hacer que el acceso se vuelva inestable.

Además, descubrí que mi ISP bloquea el port forwarding en ciertas circunstancias, lo cual impedía que las solicitudes entrantes llegaran al puerto del servidor a pesar de haber configurado todo correctamente. Debido a estos obstáculos, decidí utilizar una VPN (Red Privada Virtual).

Las VPN ofrecen una solución eficaz en estos casos, ya que, al conectarse a una VPN, el servicio proporciona una IP pública fija y, en muchos casos, un puerto abierto. Esto facilita la conexión, ya que la IP permanece estable y evita el bloqueo del port forwarding por parte del ISP. Además, la VPN proporciona una capa adicional de seguridad, ya que cifra el tráfico entre el cliente y el servidor, minimizando el riesgo de interceptación de datos.

En resumen, establecer la conexión cliente-servidor en este proyecto requirió una serie de configuraciones específicas en la red, el router y el firewall. Cada paso en el proceso fue fundamental para garantizar una comunicación fluida y segura, y la elección de la VPN como solución final permitió superar las limitaciones impuestas por la red y el ISP, asegurando que el servidor estuviera accesible de forma estable y segura.

Habilidades

Sockets
Implementación de sockets para establecer y gestionar conexiones de cliente-servidor en redes locales y remotas.
Port-Forwarding
Configuración de reenvío de puertos para permitir el acceso remoto a través de redes NAT, garantizando la funcionalidad del sistema en cualquier entorno de red.
Seguridad en Conexiones
Uso de autenticación para proteger la comunicación entre el cliente y el servidor contra accesos no autorizados.
Configuración de Redes de Área Local (LAN) y Redes Amplias (WAN)
Adaptación del sistema para operar tanto en redes locales como en redes de mayor escala, asegurando la interoperabilidad en diferentes entornos.
Detección y Manejo de Errores de Red
Implementación de mecanismos para identificar, capturar y manejar errores en la transmisión de datos, mejorando la robustez del sistema.
Gestión de Conexiones Simultáneas
Capacidad para aceptar y gestionar múltiples conexiones de clientes en paralelo, optimizando la comunicación en sistemas distribuidos.
Optimización de Transferencia de Datos
Técnicas para reducir el tiempo de respuesta y el uso de ancho de banda, mejorando la eficiencia de la comunicación entre cliente y servidor.
Control de Acceso en Red
Restricción de acceso al servidor solo a clientes autorizados, mejorando la seguridad mediante listas de control de acceso (ACLs) y autenticación.
Redes Privadas Virtuales (VPN)
Integración del sistema con redes VPN para mejorar la seguridad y asegurar la privacidad en redes públicas.
Persistencia y Recuperación de Conexiones
Implementación de mecanismos para restablecer conexiones interrumpidas, garantizando la continuidad de la comunicación en condiciones de red inestables.