doctorlinux commited on
Commit
0fd5ce9
·
verified ·
1 Parent(s): aa26f9d

Upload 4 files

Browse files
Files changed (4) hide show
  1. README.md +20 -14
  2. app.py +58 -0
  3. modules.json +44 -0
  4. requirements.txt +3 -0
README.md CHANGED
@@ -1,14 +1,20 @@
1
- ---
2
- title: Ciberseguridad
3
- emoji: 🔥
4
- colorFrom: pink
5
- colorTo: blue
6
- sdk: gradio
7
- sdk_version: 5.49.1
8
- app_file: app.py
9
- pinned: false
10
- license: gpl
11
- short_description: Manual de Ciberseguridad Operativa – IA Edition
12
- ---
13
-
14
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
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