iptables ddos configurar limit, impedir ataques denegación de servicio (DOS Denial Of Service) en Linux (Match extension limit)

Cuando ponemos un servidor web funcionando, hay que tener aplicar una protección básica para evitar cualquier posibilidad de que alguna «buena» persona (con todo el sarcasmo), se dedique a poner algún que otro JMeter (excelente software pensado para pruebas de cargar) con la idea de saturar nuestro servidor.

Esto son cosas que realmente ocurren, no es nada paranoico .

Una forma de evitar estos ataques es mediante iptables (tengo otra entrada más amplia sobre iptables), un ejemplo de configuración sería:

Continue reading

Configuración firewall iptables Red Hat/CentOS 6, desde linea de comandos

IPTABLES es el firewall incluido a nivel de kernel en las distribuciones Linux, es muy potente (una vez comprendido su funcionamiento), muy útil y flexible. Este post se ha hecho sobre un CentOS 6 (clon de Red Hat), prácticamente todo se debería poder aplicar a cualquier distribución.

Mucho cuidado con los — y los -, wordpress hace conversiones, el largo son en realidad 2 cortos. En los ejemplos no existe esa conversión.

El funcionamiento básico de iptables es el siguiente:

  1. Existen chains (cadenas) de reglas. Basicamente 3: INPUT, OUTPUT y FORWARD.
  2. Las reglas dentro de una cadena se evaluan por orden. Es aquí donde hay multitud de opciones de filtrado.
  3. Cuando una regla se evalua de forma positiva, es dirigida a un TARGET. Puede ser aceptada, denegada, eliminada, logada u otras muchas consas más (ver man iptables TARGET EXTENSIONS).

Podemos listar las reglas actuales con:

Continue reading

Linux ACL tutorial, trabajo con Access Control List

El trabajo con ACL (Access Control List), es útil cuando se quiere dar permisos o revocar a un usuario o grupo determinado sobre directorios y objetos. A mi personalmente no me gusta demasiado, queda todo demasiado «oculto» y caprichoso para mi gusto. Aunque hay que reconocer que en determinadas situaciones puede ser la mejor solución.

Un requisito para poder trabajar con ACL es tener montado el volumen con la opción adecuada. Esto es posible hacerlo sin desmontar ni reiniciar con el comando:

Continue reading

Linux atributos ficheros y directorios

En linux es posible asignarle atributos a los ficheros, esto permite incrementar el nivel de seguridad. Es posible por ejemplo proteger un archivo para que no se pueda eliminar.

Para ver los atributos de un fichero:

Source   
[root@tester1 prueba]# lsattr
-------------e- ./fich.txt
-------------e- ./fich2.txt

Continue reading

Ampliación y reducción de volúmenes LVM (Red Hat 6 y CentOS 6)

Voy a mostrar como crear, ampliar y reducir volúmnes LVM, todas estas acciones se han realizado con RedHat 6 directamente desde la consola LVM. Creo que no es necesario decirlo, pero es muy recomendable hacer una copia de seguridad de los discos originales por si acaso.

Lo primero que se ha de tener claro es la estructura que sigue LVM, trabaja con 3 tipos de elementos:

  • Grupos de volúmenes, todos los comandos relacionados con esto comienzan por vg*, un grupo de volúmenes puede contener 1 o más volúmenes lógicos. Y está compuesto por volúmenes físicos.
  • Volúmenes lógicos, todos los comandos relacionados comienzan por lv*, un volumen lógigo reside dentro de un grupo de volúmenes
  • Volúmenes físicos, en este caso todos los comandos comienzan por pv*, un grupo de volúmenes se componen de 1 o más volúmenes físicos.

Existen una gran cantidad de comandos para administrar los volúmnes LVM:

Continue reading

Oracle compactar tabla BLOB, compactado de tablas con objetos BLOB (Oracle)

Las tablas con objetos BLOB en tablespaces diferentes del resto de la tabla, tienen un tratamiento algo diferente.

Vamos a preparar un entorno de pruebas:

Creamos 2 tablespaces con:

Source   
CREATE SMALLFILE TABLESPACE "TS_PFIRMA_DATOS" LOGGING DATAFILE  '/u01/app/oracle/oradata/PRUEBA/TS_PFIRMA_DATOS.dbf' SIZE 10M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE SMALLFILE TABLESPACE "TS_PFIRMA_BLOB" LOGGING DATAFILE '/u01/app/oracle/oradata/PRUEBA/TS_PFIRMA_BLOB.dbf' SIZE 10M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

Continue reading

Mensajes service_update en listener.log

Analizando el log del listener, por defecto «listener.log» en posible que veamos mensajes como:

Source   
23-FEB-2012 08:17:56 * service_update * BD01 * 0
23-FEB-2012 08:19:08 * service_update * BD02 * 0
23-FEB-2012 08:27:56 * service_update * BD01 * 0
23-FEB-2012 08:29:08 * service_update * BD02 * 0
23-FEB-2012 08:37:56 * service_update * BD01 * 0
23-FEB-2012 08:39:08 * service_update * BD02 * 0
23-FEB-2012 08:47:56 * service_update * BD01 * 0
23-FEB-2012 08:49:08 * service_update * BD02 * 0
23-FEB-2012 08:57:59 * service_update * BD01 * 0
23-FEB-2012 08:58:08 * service_update * BD02 * 0
23-FEB-2012 09:03:59 * service_update * BD01 * 0
23-FEB-2012 09:05:08 * service_update * BD02 * 0
23-FEB-2012 09:12:59 * service_update * BD01 * 0
23-FEB-2012 09:14:23 * service_update * BD02 * 0

Continue reading

Compactado de tablas para reducir datafiles (Oracle)

Seguro que en más de una ocasión hemos eliminado registros de una tabla en grandes cantidades, quizás millones. Una vez hecho esto lo esperable sería una reducción del espacio ocupado en el tablespaces, pero esto no es así, las extensiones siguen existiendo pero libres para el uso de la tabla en cuestión, no las puede usar otra tabla.

Una vez eliminados los millones de registros, se ha de compactar la tabla para devolver espacio libre al tablespace, una vez hecho esto incluso podemos reducir el tamaño de los datafiles sin encontrarnos con la limitación  impuesta por el HIGH WATER MARK (tamaño máximo alcanzado  por los objetos dentro de un datafile).

Supongamos la tabla:

Continue reading

Pasar de un solo datafile InnoDB a uno por tabla (MYSQL)

Durante una instalación por defecto de MySQL, un error muy común es no modificar la configuración de como almacena los datos en motor InnoDB. Por defecto toda la información es almacenada en un solo datafile, que normalmente se llama:

Source   
ibdata1

Continue reading

Variables estado MySQL

Para realizar un tuning de MySQL, antes hay que familiarizarse con un par de conceptos, MySQL tiene VARIABLES y ESTADOS:

  • Una variable tiene asociado un valor que puede ser fijado en el fichero my.cnf (my.ini en Windows) o símplemente se ha fijado uno por defecto de forma implícita, aunque también es posible modificar algunas variables en tiempo de ejecución (atención que no queda reflejado el cambio en los ficheros de configuración). Según la versión de que estemos usando podemos tener más de 300 (como ocurre con la versión 5.5). Es posible conocer el valor de todas las variables con:

Continue reading