Bloquear una IP atacante con null route

En alguna ocasion podemos encontrarnos con algun tipo de ataque de una determinada IP o red (rezando para que no sean multiples) hacia nuestra red/sistema.

En Linux (y BSD/Solaris/Unix Flavours) podemos mandar los paquetes de una determinada IP o red a ninguna parte (blackhole route o null route) añadiendo una entrada en nuestra tabla de rutas.

USANDO EL COMANDO ROUTE PARA NULL ROUTE

route add 192.168.1.5 gw 127.0.0.1 lo

En este comando especificariamos que la IP atacante es 192.168.1.5 y queremos enviar los paquetes que nos envie a la interfaz de loopback.

Verificar que se ha “null routeado” la IP en nuestra tabla de rutas

route -n

O bien usando Netstat

netstat -nr

Tambien podemos hacer un reject:

route add -host 192.168.1.5 reject

Mandar a Null route una red entera

Imaginaros que queremos filtrar el sistema autónomo completo de McColo (si algún ISP anunciara sus prefijos, claro).

route add -net 208.66.192.0/24 gw 127.0.0.1 lo

Borrar entradas de la tabla de rutas

Probablemente haya un tiempo en el que ya no nos interese bloquear a determinada IP o bloque. Para borrar una entrada haremos lo siguiente:

route delete 192.168.1.5

Monitorizar logs del sistema con Logwatch en Ubuntu

Una práctica recomendable como buen administrador de sistemas es revisar los logs del sistema para comprobar el buen funcionamiento del mismo. Esta tarea es bastante pesada porque en un sistema servidor habrá mucha actividad y estos ficheros pueden llegar a crecer bastante día a día. Como no podía ser menos alguien creó una herramienta que nos facilitara enórmemente esa tediosa labor. LogWatch es una analizador de logs que se ejecuta cada noche y te envía un correo con los resultados.

http://www.nrgglobal.com/images/products/logwatch/lw_homepage.png

Instalación:

sudo aptitude install logwatch

Configuracion:

El fichero de configuración esta en,  /usr/share/logwatch/default.conf/logwatch.conf. Abre el fichero y podras ver algunos parametros pra su correcto funcionamientoque deberas rellenar, el correo donde enviar los avisos:

sudo gedit  /usr/share/logwatch/default.conf/logwatch.conf

MailTo = root updates to MailTo = user.name@domain.tld

Técnicas de Programación de la Shell de Linux para Administradores

Técnicas de Programación de la Shell de Linux para Administradores

Realizado por
PEDRO LOPEZ SOTO
Dirigido por
FRANCISCO R. VILLATORO MACHUCA y LAWRENCE MANDOW ANDALUZ

DEPARTAMENTO DE LENGUAJES Y CIENCIAS DE LA COMPUTACIÓN
UNIVERSIDAD DE MÁLAGA
MÁLAGA, NOVIEMBRE 2005

Índice de Contenidos
Capítulo 1. Introducción…………………………………………………………………………………………………………….1
1.1. Objetivos del Proyecto ……………………………………………………………………………………………………..1
1.2. Contenidos de la Memoria…………………………………………………………………………………………………3
Capítulo 2. Estudio Histórico y Práctico de la Evolución de las Shells ……………………………………………..5
2.1. UNIX. Un Comienzo………………………………………………………………………………………………………..5
2.2. Shell. Una Evolución………………………………………………………………………………………………………10
2.2.1 Shell Bourne. El Gran ‘Daddy’…………………………………………………………………………………..12
2.2.2 C Shell. El Valor de ser Diferente ……………………………………………………………………………..13
2.2.3 Shell Korn. El Retorno a las Tradiciones ……………………………………………………………………14
2.2.4 Shell POSIX. Adaptándose al Estándar………………………………………………………………………16
2.2.5 Shell Bash. En Busca de la Libertad…………………………………………………………………………..17
2.3. Conclusiones ………………………………………………………………………………………………………………..19
Capítulo 3. Comparativa Funcional de las Shells de Unix……………………………………………………………..21
3.1. Criterios Técnicos………………………………………………………………………………………………………….21
3.1.1 Histórico de Comandos ……………………………………………………………………………………………21
3.1.2 Edición de la Línea de Comandos ……………………………………………………………………………..24
3.1.3 Seguimiento Invisible de Enlaces Simbólicos ……………………………………………………………..25
3.1.4 Completado de Nombres de Ficheros, Comandos, Usuarios, Hosts y Variables ………………26
3.1.5 Facilidades para el uso del Prompt de Usuario…………………………………………………………….30
3.1.6 Evaluación de Expresiones Aritméticas y Lógicas……………………………………………………….33
3.1.7 Manejo de Variables………………………………………………………………………………………………..40
3.1.8 Sentencias de Control de Flujo de la Ejecución …………………………………………………………..47
3.1.9 Redirección de Entrada y Salida. Pipes ………………………………………………………………………50
3.1.10 Funciones………………………………………………………………………………………………………………54
3.1.11 Shells Libres …………………………………………………………………………………………………………..55
3.1.12 Diferencias Entre Shell Posix y Shell Korn…………………………………………………………………56
3.2. Conclusiones ………………………………………………………………………………………………………………..57
Capítulo 4. Técnicas Básicas de la Programación Shell…………………………………………………………………61
4.1. Comenzando a Crear un Script…………………………………………………………………………………………61
4.1.1 Ejecutar un Script ……………………………………………………………………………………………………63
4.1.2 Comentarios…………………………………………………………………………………………………………..66
4.1.3 Uso de Variables en un Script. Arrays. Variables Especiales ………………………………………..66
4.2. Comunicación con un Script ……………………………………………………………………………………………72
4.2.1 Argumentos de un Script ………………………………………………………………………………………….72
4.2.2 Sentencia read………………………………………………………………………………………………………73
4.2.3 Opciones y Argumentos con getopts……………………………………………………………………..74
4.3. Variables. Aritmética, Lógica y Cadenas …………………………………………………………………………..78
4.3.1 Aritmética y Lógica …………………………………………………………………………………………………78
4.3.2 Manejo de Cadenas………………………………………………………………………………………………….78
4.4. Condiciones………………………………………………………………………………………………………………….79
4.4.1 Cortocircuitos …………………………………………………………………………………………………………79
4.4.2 Condicional if……………………………………………………………………………………………………….81
4.4.3 Condicional case…………………………………………………………………………………………………..82
4.5. Bucles ………………………………………………………………………………………………………………………….84
4.5.1 while y until …………………………………………………………………………………………………….84
4.5.2 for………………………………………………………………………………………………………………………85
4.5.3 select………………………………………………………………………………………………………………..87
4.5.4 break y continue………………………………………………………………………………………………89
4.6. Funciones …………………………………………………………………………………………………………………….89
4.6.1 Definición de Funciones…………………………………………………………………………………………..89
4.6.2 Argumentos y Entorno de Funciones …………………………………………………………………………90
4.6.3 Finalización de Funciones ………………………………………………………………………………………..91
4.6.4 Librerías de Funciones …………………………………………………………………………………………….91
4.7. Flujo de Datos. Entrada y Salida ………………………………………………………………………………………92
4.8. Traps y Señales……………………………………………………………………………………………………………..93
Capítulo 5. Expresiones Regulares, sed y awk …………………………………………………………………………..97
5.1. Introducción …………………………………………………………………………………………………………………97
5.2. Expresiones regulares. grep …………………………………………………………………………………………..97
5.3. Comando sed ……………………………………………………………………………………………………………..100
5.3.1 sustituir ……………………………………………………………………………………………………………….101
5.3.2 Borrar………………………………………………………………………………………………………………….103
5.3.3 Imprimir………………………………………………………………………………………………………………104
5.3.4 Leer…………………………………………………………………………………………………………………….105
5.3.5 Escribir ……………………………………………………………………………………………………………….105
5.4. Comando awk ……………………………………………………………………………………………………………..106
5.4.1 Procesamiento de líneas en awk………………………………………………………………………………107
5.4.2 Campos definidos dentro de una línea………………………………………………………………………108
5.4.3 Operadores en los patrones……………………………………………………………………………………..109
5.4.4 Procesamiento pre-entrada y post-entrada…………………………………………………………………109
5.4.5 Impresión de valores con awk. Salida formateada……………………………………………………..110
5.4.6 Variables……………………………………………………………………………………………………………..111
5.4.7 Operadores y funciones ………………………………………………………………………………………….111
5.5. Programas sed y awk…………………………………………………………………………………………………..112
Capítulo 6. Aplicaciones para administración con la Shell Bash …………………………………………………..115
6.1. Análisis del Número de Argumentos de un Script: argumentos.sh ………………………………116
6.2. Bombardeo con Mails a un Servidor de Correo: mailbomb.sh……………………………………….116
6.3. Backups del Sistema en Cdrom: cdbackup.sh……………………………………………………………..117
6.4. Grabación en cd de una Imagen de Cdrom en formato .iso: grabacd.sh………………………….119
6.5. Representación de un Cursor en Pantalla: cursor.sh…………………………………………………….120
6.6. Ejemplo de uso del Script cursor.sh: usacursor.sh……………………………………………………..121
6.7. Escáner de red: escanea_ip.sh ………………………………………………………………………………..121
6.8. Escáner de red: escanea_ip_2.sh…………………………………………………………………………….122
6.9. Backup y Eliminación de Ficheros log: logrotate.sh…………………………………………………123
6.10. Conversión de Nombres de Ficheros a Caracteres Minúsculas: minusculas.sh………….125
6.11. Desglose de un Nombre Completo de directorio o Fichero en sus Componentes: path.sh126
6.12. Difusión de un Correo a Múltiples Usuarios: broadmail.sh ……………………………………..127
6.13. Desglose de un Fichero de Base de Datos en sus Componentes: cortafichero.sh …….128
6.14. Ejecución de un ftp a una Máquina Remota sin Intervención Manual : ftpremoto.sh ….130
6.15. Renombrado de Ficheros de Imágenes en Formato .jpg: renombra.sh ………………………..131
6.16. Gestión de Paquetes de Instalación en Formato .rpm: maneja_rpm.sh………………………..132
6.17. Petición de Usuario y Contraseña Para Scripts: login.sh …………………………………………..137
6.18. Eliminación de Segmentos de Memoria Compartida en el Sistema: rm_shmem.sh…………138
6.19. Selección de la Shell Para una Sesión Interactiva de Trabajo: selecciona_shell.sh..139
6.20. Agenda Personal: agenda.sh ………………………………………………………………………………….141
6.21. Creación de una Cuenta de Usuario: nuevousuario.sh……………………………………………143
6.22. Listado de los Usuarios de un Sistema: usuarios.sh………………………………………………..145
6.23. Ejemplo de Sentencia getopts: opciones.sh ……………………………………………………….146
6.24. Distribución de Ficheros en Múltiples Servidores: copia_array_remoto.sh …………..147
6.25. Kit Para Implantación de Aplicaciones en Servidores en Cluster: clustertoolkit.sh.148
6.26. Conversión de Ficheros en Formato .lj a Postscript y a Formato Pdf: lj-ps-pdf.sh…….150
6.27. Generación de un Informe de Totales: formatea.awk……………………………………………….151
Capítulo 7. Conclusiones ………………………………………………………………………………………………………..153
BIBLIOGRAFíA……………………………………………………………………………………………………………………….155
Apéndice A. Contenidos del CD adjunto ……………………………………………………………………………………….159

Descarga:

Técnicas de Programación de la Shell de Linux para Administradores

Curso de Administración de Sistemas GNU/Linux

jEsuSdA liberó un curso de Administración de Sistemas GNU/Linux que ya está disponible para descargarlo en PDF o seguir el curso online en presentaciones desde su web, con un contenido muy interesante:

  1. Introducción
  2. Instalación
  3. Primeros Pasos
  4. Administración básica I
  5. Administración básica II

Mis más sinceras felicitaciones por el buen trabajo que ha hecho y por liberarlo para que muchas personas puedan disfrutar del curso.

Saludos ;)