Mantener GNU/Linux actualizado sin hacer nada!

En esta entrada vamos a crear un script bash el cual junto a cron mantendrá nuestro sistema siempre actualizado. Creando el script Lo primero que vamos a hacer es crear el script, solo necesitaremos pegar esto en un bloc de notas y darle permisos de ejecución. #actualiza.sh #!/bin/bash apt update -y –force-yes apt upgrade -y –force-yes apt autoremove -y –force-yes apt autoclean -y –force-yes Usamos -y –force-yes para que no nos pida confirmación al ejecutar el script. Ahora toca darle permisos. chmod u+x actualiza.sh Ahora cada vez que ejecutemos el script nuestro sistema se actualizará. Habilitar cuenta root A continuación, para automatizar este script y que se ejecute en cada inicio debemos usar cron con el usuario root. En el […]

» Read more

Script php para obtener los dominios que nos han atacado

Teniendo en funcionamiento iptables, combinado con algún monitor como fail2ban, podemos obtener el listado de IP’s que tenemos bloqueadas en el firewall con un DROP (mejor no deja huella) o REJECT (contesta). Esto para que os hagáis una idea produce una salida así: Ahora filtro un poco: Excluyo las IP que no se han podido resolver, seguramente pertenecen al abanico DHCP que ofrece algún ISP a nivel doméstico. Esto lo redirecciono a un archivo nombres.txt para usarlo como fuente en el script siguiente y obtener nombres.dat. Con ayuda de un script en PHP para trabajar a gusto con las cadenas y poder usar funciones como explode: Con ayuda de unos pocos filtros más: Evitamos duplicados. Posibles mejoras Podríamos ahora usar […]

» Read more

Fail2Ban e Iptables y cómo hacer una blacklist de ip persistente

fail2ban sospedia.net

Fase 1: Recolección de direcciones IP Lo primero de todo es construirnos nuestra base de datos de direcciones IP, que cumplan 2 condiciones: 1. Nos hayan atacado alguna vez 2. No sean from Spain para no perder visitas en el intento de protegernos Esta base de datos la usaremos en la Fase 2: Todo esto para qué? Integración con fail2ban. La fuente son los logs y/o fuentes de terceros; yo voy a usar los que me proporcionan: 1. Fail2ban: un sistema de baneo de IP en base al estudio que hace de los logs de los diferentes servicios (ssh, http…) 2. Logwatch: Una vez al día recibo resumen de actividad en el servidor 3. Wordfence: conocido plugin WordPress de seguridad Las […]

» Read more

Script Linux de las Oposiciones 2015 al cuerpo FP SAI

Mini tutorial de cosas útiles en nuestro día a día

Para retomar el capítulo de Scripting Linux, usando el Shell Bash, vamos a resolver uno de los ejercicios prácticos de las pasadas oposiciones a Profesor Técnico de Formación Profesional (PTFP), especialidad Aplicaciones y Sistemas Informáticos (SAI) Script Linux de las Oposiciones 2015 al cuerpo FP SAI El enunciado rezaba algo así: Dado un fichero de datos con el siguiente contenido de ejemplo (digamos datos.txt): Pepe 02:30:44 Marcos 23:56:33 Pepe 10:33:01 Marta 05:47:44 Pepe 12:22:33 José 11:55:00 Haced un Script Linux que devuelva un listado ordenado por tiempos (de uso de máquina por ejemplo) de forma ascendente. Teniendo en cuenta que si algún usuario se repite, solo produzca una línea de salida y sume los tiempos. Al lío: Lo vamos a […]

» Read more

Las comillas en los script bash

En esta cuarta entrega del curso de Scripting Linux usando Bash vamos a hablaros de los diferentes tipos de comillas (doble, simple, acento grave) , según la que utilicemos el Shell realiza una interpretación u otra del contenido que encierran dentro “date” ‘date’ `date` Comillas simples El contenido se interpreta de forma literal. SALUDO=’Hola $USER, que tal?’ echo $SALUDO No produce el resultado esperado Hola jose, que tal? Comillas dobles Interpreta las referencias a variable, las explosiona, poniendo en su lugar su contenido: SALUDO=”Hola $USER, que tal?” echo “$SALUDO tu directorio de trabajo es $HOME” El resultado será algo parecido a Hola jose, que tal? tu directorio de trabajo es /home/jose Acento grave → sustitución de orden La sustitución de orden permite usar […]

» Read more

Variable de entorno PATH

En esta tercera entrega del curso de Scripting Linux usando Bash vamos a hablaros de la Variable de entorno PATH, que determina los caminos donde busca el Sistema Operativo los ejecutables cuando le pedimos que ejecute alguna orden. Variable de entorno PATH Desde la consola con el comando echo, podemos ver el contenido de cualquier variable. Para ver el contenido de la variable PATH puedes escribir este comando: echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games Ese es el PATH actual de mi sistema, si quiero tener acceso a los scripts de mi carpeta de trabajo (/home/usuario/scripts) desde cualquier ruta, debo añadir esta carpeta a la variable de entorno PATH. Podemos modificar la variable PATH con esta orden de asignación: PATH=”$PATH:~/scripts” Donde a lo que ya tuviese la variable, […]

» Read more

Scripts Linux Bash Segunda Entrega

Comenzamos este segundo post “Scripts Linux Bash Segunda Entrega” en el apartado de Scripting para Linux usando Bash, haciendo un repaso y ampliando las bases un poco. Añadimos el concepto de parámetros de un Script, como los parámetros que pasamos a cualquier otro comando. Veremos también la estructura condicional if, que permite ejecutar ciertas acciones si se cumple un TEST, y opcionalmente (si no se cumple) ejecutar otras acciones distintas (correctoras o informadoras por ejemplo). Repaso de las bases del scripting Se denomina Shell Script a un fichero, de texto plano, que contiene órdenes del propio Sistema Operativo, para ser ejecutadas por el Shell (intérprete de comandos o de órdenes). Cualquiera de los Shells que ofrezca nuestra distribución GNU/Linux es susceptible de […]

» Read more

Scripts Linux

Resultado de nuestro flamante script, un poco soso pero bueno

Mi primera entrada real en el Blog. Por fin! Y es que no encontraba un coloreador de código que me convenciese, voy a probar SyntaxHighlighter Evolved. Bueno al lío, cómo muchos conoceréis ya, uso a diario GNU/Linux, concretamente la rama Debian, y cómo me encanta la programación, tanto ejecutarla cómo enseñarla, voy a montar un mini curso de scripting usando Bash. Para empezar lo que necesitamos es una distro Linux, ya sea en máquina real, o bien virtualizada. Para seguir un editor de texto con el que nos sintamos cómodos, yo me manejo con nano en consola, o con geany en la IGU. La estructura de un fichero script Bash, cómo en cualquier lenguaje de scripting, comienza indicándole al sistema operativo en que […]

» Read more