Diferencia entre revisiones de «Scripts»
Sin resumen de edición |
|||
| (No se muestran 4 ediciones intermedias del mismo usuario) | |||
| Línea 1: | Línea 1: | ||
{{Advertencia|Mensaje=Esta página es MUY larga. Por eso se ha puesto los titulos de las secciones en Azul y los titulos de los scripts en Rojo.}} | |||
En el [[GitHub]] hay varios scripts. | En el [[GitHub]] hay varios scripts. | ||
| Línea 43: | Línea 45: | ||
Entre otras cosas, cambia si se decide que los profesores no salen a internet por el proxy y si los alumnos pueden acceder al router de los profesores. | Entre otras cosas, cambia si se decide que los profesores no salen a internet por el proxy y si los alumnos pueden acceder al router de los profesores. | ||
Configura tambien el tamaño del cache el "lifetime" despues de apagar el servidor. | |||
==== instalar.sh ==== | ==== instalar.sh ==== | ||
| Línea 59: | Línea 63: | ||
El script que se activa si activas "permitir login por ssh de root con contraseña", esto toma como entrada el archivo /usr/share/openssh/sshd_config y lo cambia, descomentando y cambiando la linea "PermitRootLogin" de "prohibit-password" a "yes", guardando el nuevo archivo sin ningun otro cambio al archivo "/etc/ssh/sshd_config", luego reinicia el servicio de openssh | El script que se activa si activas "permitir login por ssh de root con contraseña", esto toma como entrada el archivo /usr/share/openssh/sshd_config y lo cambia, descomentando y cambiando la linea "PermitRootLogin" de "prohibit-password" a "yes", guardando el nuevo archivo sin ningun otro cambio al archivo "/etc/ssh/sshd_config", luego reinicia el servicio de openssh | ||
==== | ==== radius.sh ==== | ||
Instala y configura RADIUS, añadiendo unos cuantos usuarios y profesores | |||
==== gen_acl.sh ==== | |||
Genera un archivo de bloqueo (ACL) para SQUID. Se llama inmediatamente en la personalizacion. | |||
Se ignora y no se usa un ACL si instalas 'por defecto' | |||
==== jmail.sh ==== | |||
Hace todo lo del "JMail". Te pide antes confirmaciones para algunas cosas. | |||
==== nginx.sh ==== | |||
Hace la configuracion de NGINX, copiando el archivo del sitio 'default' y permite al usuario de PHP (www-data) reiniciar el sistema con sudo. | |||
=== Testing === | === Testing === | ||
Los scripts testing son scripts que se usan para probar funciones y/o contenidos de el sistema. | Los scripts testing son scripts que se usan para probar funciones y/o contenidos de el sistema. | ||
==== generar_nginx.sh ==== | |||
No hace nada, se iba a permitir configurar NGINX, pero al final todos usan la misma 'interfaz'. | |||
==== testsubshell.sh ==== | ==== testsubshell.sh ==== | ||
| Línea 88: | Línea 106: | ||
La mayoria de estos se han re-implementado de nuevo de una alguna forma u otra. | La mayoria de estos se han re-implementado de nuevo de una alguna forma u otra. | ||
==== mail.sh ==== | |||
Generaba configuraciones de postfix ultra-basicas que no funcionaban. Desfasado en favor de [[Mail|jmail]]. | |||
==== gen_variables.sh ==== | |||
Guarda las variables en un fichero, solo se ejecuta si has decidido romper las cosas y ejecutar el script principal sin [[superusuario]] (Lo cual no recomiendo) | |||
==== Permitir_Root_SSH_Contra.sh ==== | ==== Permitir_Root_SSH_Contra.sh ==== | ||
| Línea 107: | Línea 131: | ||
==== todo.sh -> main.sh ==== | ==== todo.sh -> main.sh ==== | ||
Movido a main.sh | |||
==== main.sh ==== | ==== main.sh ==== | ||
Un script que | Un script que hace absolutamente todo. De manera automática. | ||
==== root.sh ==== | ==== root.sh ==== | ||
La parte de la | La parte de la instalación que requiere root. Tomas las variables del entorno y los archivos ".custom" como entrada para configurar la instalacion. | ||
==== pordefecto.sh ==== | ==== pordefecto.sh ==== | ||
| Línea 121: | Línea 146: | ||
==== todo.sh.old ==== | ==== todo.sh.old ==== | ||
Script roto que se usaba antes, se han copiado grandes fragmentos del codigo para los scripts nuevos. | Script roto que se usaba antes, se han copiado grandes fragmentos del codigo para los scripts nuevos. | ||
=== Extras === | |||
Unos cuantos scripts que puedes usar por tu cuenta para añadir funcionalidades o hacerte la vida mas sencilla | |||
==== crear_cuentas_sql.sh ==== | |||
Un script que crea cuentas de SQL para RADIUS, sin contraseñas encriptadas. | |||
Revisión actual - 09:14 22 ene 2026
| ADVERTENCIA: | Esta página es MUY larga. Por eso se ha puesto los titulos de las secciones en Azul y los titulos de los scripts en Rojo. | ![]() |
|---|
En el GitHub hay varios scripts.
Hay cuatro tipos de script, los auxiliares, los "testing", los retirados y los finales.
Auxiliares
Los scripts auxiliares se encuentran en la carpeta /aux/ en el repositorio. entre ellos están:
generar_cert.sh
generar_cert.sh nos genera un certificado openssl y lo mete en /etc/squid/ssl_cert, esta carpeta se podrá cambiar dentro de poco.
No acepta argumentos, pero puedes abrirlo manualmente y escribirle la información que te pide.
También intenta recrear la base de datos de SSL de Squid, si esto falla, es por que ya existe. No te preocupes.
Ejemplo de uso:
aux/generar_cert.sh
generar_dhcp.sh
Este script genera la config para el servidor dhcp (dhcpd.conf), toma varios argumentos, numerados, son:
- IP de la Red (La maquina donde estamos ejecutando esto)
- El dispositivo (Por ejemplo, enp0s8, eth2...)
- Red (La IP de la red (NO ES LO MISMO QUE EL 1), por ejemplo: 10.0.0.0)
- (Opcional) --append, le decimos que no re-cree el archivo cosas/dhcp.custom, sino que añade a el. --append **tiene** que estar en la posición 4, si no, sera ignorado.
La salida va por defecto a cosas/dhcp.custom
Ejemplo de uso:
aux/generar_dhcp.sh 10.0.0.1 enp0s8 10.0.0.0 --append
generar_red.sh
Toma varios argumentos, que luego usa como pistas (No son estrictamente necesarios, pero los recomiendo)
- 1, o cualquier otra cosa (1=Generar todo de nuevo (Sobrescribe en vez de añadir), cualquier otra cosa=ignorado)
- IP de tu maquina en la red
- Adaptador de red (enp0s8, eth0...)
- Dirección de la red
- Mascara de red
Si faltan estos, el script funcionara con normalidad, pero no te dara "pistas" sobre lo que puede ir en cada campo.
generar_squid.sh
Genera un archivo de squid.conf "valido" con las opciones del entorno establecidas por los scripts de configuración, y las marca en el archivo de configuración como comentarios, esto sirve para hacer el sistema mas reproducible.
Entre otras cosas, cambia si se decide que los profesores no salen a internet por el proxy y si los alumnos pueden acceder al router de los profesores.
Configura tambien el tamaño del cache el "lifetime" despues de apagar el servidor.
instalar.sh
Instala los paquetes necesarios, si la variable del entorno "interfaz" es "no", no instala ni NGINX ni PHP.
iptables.sh
Hace la configuración de IPTABLES, para dejar pasar a internet lo que entre por la interfaz enp0s8, 9 y 10, pasándolos al proxy (La enp0s8 solo pasa por el proxy si se configura como "si")
pers2.sh
Te hace preguntas sobre la interfaz de configuracion, los alumnos y si los profesores salen a internet a traves del proxy.
personalizaciones.sh
Es un boilerplate que llama a los scripts de generar redes y generar DHCP, o genera sus propias configuraciones si le dices que "N"(o).
rootssh.sh
El script que se activa si activas "permitir login por ssh de root con contraseña", esto toma como entrada el archivo /usr/share/openssh/sshd_config y lo cambia, descomentando y cambiando la linea "PermitRootLogin" de "prohibit-password" a "yes", guardando el nuevo archivo sin ningun otro cambio al archivo "/etc/ssh/sshd_config", luego reinicia el servicio de openssh
radius.sh
Instala y configura RADIUS, añadiendo unos cuantos usuarios y profesores
gen_acl.sh
Genera un archivo de bloqueo (ACL) para SQUID. Se llama inmediatamente en la personalizacion.
Se ignora y no se usa un ACL si instalas 'por defecto'
jmail.sh
Hace todo lo del "JMail". Te pide antes confirmaciones para algunas cosas.
nginx.sh
Hace la configuracion de NGINX, copiando el archivo del sitio 'default' y permite al usuario de PHP (www-data) reiniciar el sistema con sudo.
Testing
Los scripts testing son scripts que se usan para probar funciones y/o contenidos de el sistema.
generar_nginx.sh
No hace nada, se iba a permitir configurar NGINX, pero al final todos usan la misma 'interfaz'.
testsubshell.sh
Escribe una variable a una subshell y usa la opción estándar del POSIX -x para que la cargue en una instancia de tu $SHELL actual nueva.
Si el script devuelve "Pasado con exito, si estas viendo esto, la subshell ha ejecutado este comando y ha salido bien, si no es asi, asegurate de que tu shell soporta los argumentos heredados de otros scripts", funciona bien, si no hace nada, tienes que ajustar tu shell para que permita usar argumentos pasados desde le proceso padre.
copias.sh
(La versión en el repositorio no esta al día)
Pruebas de netcat y envió de comandos sin RPC (Llamadas directas a la shell)
Este script sera ignorado en favor de una forma menos automática, pero millones de veces mas segura.
La idea principal del script era que netcat generara una clave, la enviara, usaría la clave como cifrado de PGP para la copia, y terminara la conexión, pero esto causa un problema de seguridad debido a que la clave se envía de forma clara al servidor/de vuelta, lo cual introduce un fallo de seguridad en el transporte, si alguien leyera los primeros bytes de la transmisión y los usara para des-encriptar la copia, todo el proceso se vería nulificado.
ajustar.sh
Una versión menos refinada y menos elegante de generar_red.sh
Las variables están "hardcoded", lo que requiere re-escribir el script cada vez que queramos hacer algún cambio. El actual usa variables del entorno y variables pasadas por argumentos al script.
Retirados
Una colección de scripts que se usaban con el antiguo sistema de cliente <-> router <-> squid <-> internet.
La mayoria de estos se han re-implementado de nuevo de una alguna forma u otra.
mail.sh
Generaba configuraciones de postfix ultra-basicas que no funcionaban. Desfasado en favor de jmail.
gen_variables.sh
Guarda las variables en un fichero, solo se ejecuta si has decidido romper las cosas y ejecutar el script principal sin superusuario (Lo cual no recomiendo)
Permitir_Root_SSH_Contra.sh
Básicamente el (actualmente en uso) rootssh.sh pero mucho mas destructivo (Sobrescribe el buffer del archivo)
instalacion.sh
Una versión primitiva del script de instalación que instalaba "squid" y lo configuraba (Mal) para aceptar todas las conexiones hacia todos los puertos.
routerALPINE.sh
Un script hecho para alpine (usando ash en vez de bash) que instalaba lo necesario para dar servicio DNS, DHCP y enrutamiento en la (retirada) maquina router con Alpine Linux.
segundorouter.sh
Lo mismo que arriba pero cambiaba algunas configuraciones.
Este "router" no iba a pasar por el proxy, por si, por ejemplo, los profesores, querían salir al internet directamente.
Finales
Estos scripts llaman a todos los anteriores (si son relevantes) y/o instalan el proxy completo.
todo.sh -> main.sh
Movido a main.sh
main.sh
Un script que hace absolutamente todo. De manera automática.
root.sh
La parte de la instalación que requiere root. Tomas las variables del entorno y los archivos ".custom" como entrada para configurar la instalacion.
pordefecto.sh
Script "mini-ficado" que hace la instalación por defecto.
Solo tienes que ejecutarlo y dejar que funcione.
todo.sh.old
Script roto que se usaba antes, se han copiado grandes fragmentos del codigo para los scripts nuevos.
Extras
Unos cuantos scripts que puedes usar por tu cuenta para añadir funcionalidades o hacerte la vida mas sencilla
crear_cuentas_sql.sh
Un script que crea cuentas de SQL para RADIUS, sin contraseñas encriptadas.
