Spaces:
Sleeping
Sleeping
Upload 4 files
Browse files- README.md +20 -14
- app.py +58 -0
- modules.json +44 -0
- requirements.txt +3 -0
README.md
CHANGED
|
@@ -1,14 +1,20 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 🧠 Manual de Ciberseguridad Operativa – Doctor Linux Ltda. (IA Edition)
|
| 2 |
+
|
| 3 |
+
**Versión IA 2025 – con asistencia técnica inteligente.**
|
| 4 |
+
Desarrollado por Doctor Linux Ltda. con soporte de IA para entrenamiento y diagnóstico técnico.
|
| 5 |
+
|
| 6 |
+
## 🚀 Funcionalidades
|
| 7 |
+
- 6 módulos interactivos con comandos y checklist.
|
| 8 |
+
- Chat IA técnico (modelo `mistralai/Mistral-7B-Instruct-v0.2`).
|
| 9 |
+
- 100 % en español.
|
| 10 |
+
- Modo oscuro integrado.
|
| 11 |
+
- Sin necesidad de API keys.
|
| 12 |
+
|
| 13 |
+
## 🛠️ Cómo usar
|
| 14 |
+
1. Crea un nuevo Space en Hugging Face → tipo **Gradio**.
|
| 15 |
+
2. Sube estos archivos (`app.py`, `modules.json`, `requirements.txt`, `README.md`).
|
| 16 |
+
3. Hugging Face instalará automáticamente las dependencias y lanzará la app.
|
| 17 |
+
|
| 18 |
+
## 📜 Créditos
|
| 19 |
+
© 2025 Doctor Linux Ltda. – Departamento de Ingeniería
|
| 20 |
+
*"Seguridad real, ingeniería aplicada."*
|
app.py
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import gradio as gr
|
| 2 |
+
import json
|
| 3 |
+
from transformers import pipeline
|
| 4 |
+
|
| 5 |
+
# Cargar módulos del manual
|
| 6 |
+
with open("modules.json", "r", encoding="utf-8") as f:
|
| 7 |
+
modules = json.load(f)
|
| 8 |
+
|
| 9 |
+
# Cargar modelo IA gratuito de Hugging Face
|
| 10 |
+
model_id = "mistralai/Mistral-7B-Instruct-v0.2"
|
| 11 |
+
chatbot = pipeline("text-generation", model=model_id, max_new_tokens=512)
|
| 12 |
+
|
| 13 |
+
# --- Funciones de backend ---
|
| 14 |
+
def ask_ai(message, history):
|
| 15 |
+
prompt = "El siguiente texto pertenece al Manual de Ciberseguridad Operativa de Doctor Linux Ltda. " \
|
| 16 |
+
"Responde en español técnico, claro y conciso, con ejemplos reales cuando sea posible.\n\n"
|
| 17 |
+
conversation = ""
|
| 18 |
+
for user, bot in history:
|
| 19 |
+
conversation += f"Usuario: {user}\nIA: {bot}\n"
|
| 20 |
+
input_text = f"{prompt}{conversation}Usuario: {message}\nIA:"
|
| 21 |
+
output = chatbot(input_text)[0]["generated_text"]
|
| 22 |
+
response = output.split("IA:")[-1].strip()
|
| 23 |
+
return response
|
| 24 |
+
|
| 25 |
+
# --- Interfaz Gradio ---
|
| 26 |
+
with gr.Blocks(theme=gr.themes.Soft(primary_hue="blue", secondary_hue="gray"),
|
| 27 |
+
css="body {background-color:#0d1117;color:#f0f6fc;} .gradio-container{max-width:1200px;margin:auto;}") as demo:
|
| 28 |
+
|
| 29 |
+
gr.Markdown(
|
| 30 |
+
"""
|
| 31 |
+
# 🧠 Manual de Ciberseguridad Operativa – Doctor Linux Ltda.
|
| 32 |
+
### *“Seguridad real, ingeniería aplicada.”*
|
| 33 |
+
---
|
| 34 |
+
**Versión IA Edition 2025 – con asistencia técnica inteligente.**
|
| 35 |
+
""")
|
| 36 |
+
|
| 37 |
+
with gr.Tab("💬 Asistente IA"):
|
| 38 |
+
chat = gr.ChatInterface(fn=ask_ai, title="Asistente Técnico Doctor Linux IA")
|
| 39 |
+
|
| 40 |
+
for module in modules:
|
| 41 |
+
with gr.Tab(module["titulo"]):
|
| 42 |
+
gr.Markdown(f"### 🎯 Objetivo\n{module['objetivo']}")
|
| 43 |
+
gr.Markdown(f"#### 🧩 Contenido\n{module['contenido']}")
|
| 44 |
+
if module.get("comandos"):
|
| 45 |
+
gr.Code(value=module["comandos"], language="bash", label="Ejemplo de comandos")
|
| 46 |
+
if module.get("checklist"):
|
| 47 |
+
gr.CheckboxGroup(choices=module["checklist"], label="Checklist técnico")
|
| 48 |
+
|
| 49 |
+
gr.Markdown(
|
| 50 |
+
"""
|
| 51 |
+
---
|
| 52 |
+
© 2025 Doctor Linux Ltda. – Departamento de Ingeniería
|
| 53 |
+
Desarrollado en colaboración con IA · Versión IA Edition
|
| 54 |
+
"""
|
| 55 |
+
)
|
| 56 |
+
|
| 57 |
+
if __name__ == "__main__":
|
| 58 |
+
demo.launch()
|
modules.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"titulo": "Módulo 1 – Seguridad en Entornos Mixtos",
|
| 4 |
+
"objetivo": "Medir la seguridad desde la operación real (redes industriales + oficina) con métricas y evidencias.",
|
| 5 |
+
"contenido": "- Definir perímetro Mikrotik (VLAN, DMZ, rutas).\n- Establecer métricas: latencia, jitter, pérdida.\n- Centralizar logs (rsyslog/syslog-ng) en servidor Linux.\n- Alertas de seguridad en Zabbix (Telegram/Email).",
|
| 6 |
+
"comandos": "ping -i 0.2 -c 40 8.8.8.8\nzabbix_sender -z 192.168.10.20 -s \"$(hostname)\" -k test.security -o 1",
|
| 7 |
+
"checklist": ["Perímetro definido", "Logs centralizados", "Alertas Zabbix probadas", "Evidencias archivadas"]
|
| 8 |
+
},
|
| 9 |
+
{
|
| 10 |
+
"titulo": "Módulo 2 – Hardening Linux",
|
| 11 |
+
"objetivo": "Blindar servidores Debian/Ubuntu de clientes (SSH, usuarios, firewall, fail2ban, monitoreo).",
|
| 12 |
+
"contenido": "- Actualización del sistema y limpieza de paquetes.\n- Configurar SSH seguro (sin root, sin password, solo clave pública).\n- Activar fail2ban y UFW.\n- Instalar y registrar Zabbix Agent.",
|
| 13 |
+
"comandos": "sudo apt update && sudo apt upgrade -y\nsudo sed -i 's/^#\\?PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config\nsudo systemctl restart ssh",
|
| 14 |
+
"checklist": ["Root remoto deshabilitado", "Fail2ban activo", "Firewall habilitado", "Zabbix Agent reportando"]
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"titulo": "Módulo 3 – Firewall Mikrotik",
|
| 18 |
+
"objetivo": "Usar Mikrotik como perímetro seguro con listas dinámicas, protección DoS y trazabilidad.",
|
| 19 |
+
"contenido": "- Separar reglas input/forward.\n- Address-list para IP sospechosas.\n- Límites de conexión SYN/UDP.\n- Logging remoto a servidor Linux.",
|
| 20 |
+
"comandos": "/ip firewall filter add chain=input action=accept connection-state=established,related\n/system logging add action=remote topics=firewall",
|
| 21 |
+
"checklist": ["Reglas configuradas", "Logging remoto activo", "Pruebas de bloqueo correctas"]
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"titulo": "Módulo 4 – Enlaces y Wi-Fi",
|
| 25 |
+
"objetivo": "Asegurar enlaces PtP/PtMP y Wi-Fi corporativo (Ubiquiti, Ruijie, UniFi).",
|
| 26 |
+
"contenido": "- WPA2-AES con claves robustas.\n- SSID por rol/área con VLAN.\n- Aislamiento de clientes.\n- Supervisión de enlace desde Zabbix.",
|
| 27 |
+
"comandos": "iwconfig\niperf3 -c 192.168.10.50 -t 30",
|
| 28 |
+
"checklist": ["SSID segmentado", "Canalización optimizada", "Zabbix monitoreando enlaces"]
|
| 29 |
+
},
|
| 30 |
+
{
|
| 31 |
+
"titulo": "Módulo 5 – Backup y Continuidad",
|
| 32 |
+
"objetivo": "Garantizar restauración verificada siguiendo la estrategia 3-2-1.",
|
| 33 |
+
"contenido": "- 3 copias: producción, local, remoto.\n- 2 tipos de medios distintos.\n- 1 copia fuera de sitio o nube.\n- Verificación de restauración documentada.",
|
| 34 |
+
"comandos": "rsync -avh --delete /srv/datos/ /mnt/backup/datos/\ntar -cf /tmp/test.tar /srv/datos/ && sha256sum /tmp/test.tar",
|
| 35 |
+
"checklist": ["3 copias", "Medios distintos", "Prueba de restauración", "Zabbix alerta backup"]
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"titulo": "Módulo 6 – Monitoreo con Zabbix e IA",
|
| 39 |
+
"objetivo": "Detección temprana y reportes de seguridad con correlación IA + Zabbix.",
|
| 40 |
+
"contenido": "- Triggers de seguridad activos.\n- Notificaciones Telegram/Email.\n- Dashboard de seguridad operativo.\n- Reportes mensuales automáticos.",
|
| 41 |
+
"comandos": "zabbix_sender -z 192.168.10.20 -s \"$(hostname)\" -k sec.event -o \"probe\"",
|
| 42 |
+
"checklist": ["Triggers activos", "Notificaciones OK", "Dashboard visible", "Reporte mensual generado"]
|
| 43 |
+
}
|
| 44 |
+
]
|
requirements.txt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
gradio>=4.31.0
|
| 2 |
+
transformers>=4.39.0
|
| 3 |
+
torch>=2.0.0
|