iptables output, configuración iptables para conexiones salientes, en Red Hat/CentOS 6 o Ubuntu

A modo de ampliación del post «Configuración firewall iptables Red Hat/CentOS 6, desde linea de comandos«, esta vez vamos a ver como asegurar las conexiones salientes de nuestro servidor.

El limitar las conexiones salientes puede parecer algo un tanto paranoico, pero en caso de un ataque tu máquina será utilizada para «saltar» a otras o enviar correos. Se que esto todavía puede sonar más paranoico todavía, pero son cosas que ocurren y son muy reales, quiero hacer un post más adelante tratando un caso real.

Vamos al lío, partimos de una situación inicial:

Source   
[root@oradb ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
 
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
 
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Continue reading

Apache SSL certificado cliente, configurar Apache para permitir solo accesos SSL con certificado instalado en cliente

Vamos a configurar Apache (sobre un Ubuntu 12) para permitir el acceso de clientes que tengan un certificado SSL personal instalado, primero tenemos que crear algunas estructuras para poder más tarde trabajar con listas de revocación.

Lo primero es tener instalado openssl:

ubuntu@ip-10-112-31-82:~$ sudo aptitude install openssl

Crearemos una estructura de directorios que se ajuste a las rutas esperadas por el fichero de configuración openssl.cnf:

Source   
ubuntu@ip-10-112-31-82:~$ mkdir -p /vol/apache2_certs
ubuntu@ip-10-112-31-82:~$ cd /vol/apache2_certs/
ubuntu@ip-10-112-31-82:/vol/apache2_certs$ sudo cp /etc/ssl/openssl.cnf .

El fichero openssl.cnf define una estructura de directorios para poder trabajar entre otras cosas con listas de denegación de certificados, vamos a editarlo y moficicar la linea:

Continue reading

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

Recientemente se ha puesto en contacto conmigo un compañero de fatigas llamado Miguel Angel (un saludo), a ver si le podía echar una mano con unos ataques que está teniendo. Evidentemente no usaré sus datos para nada en esta entrada.

En esta estrada vamos realizar un filtrado más preciso de las comunicaciones entrantes, para evitar ataques DOS.

En el anterior post «Impedir ataques denegación de servicio (DOS Denial Of Service) en Linux (Match extension limit)», se mostraba como realizar un filtrado limitando el número de accesos. La gran mejora de la extensión recent vs limit, es que recent mantiene una lista de IPs de origen de comunicación y los límites son establecidos por IP de origen. La extensión limit impone límites independientemente del origen, es un límite global.

Continue reading

Volúmenes encriptados (LUKS, Linux Unified Key Setup) en RedHat/CentOS 6

En esta entrada vamos a crear un volumen encriptado, algo muy útil si trabajamos con un portátil y queremos asegurar los datos ante la posible perdida.

Se pueden hacer cosas muy interesantes, como que nos pida la clave al arrancar o tener la clave por ejemplo en un USB. A mi me parece muy buena la opción de un dispositivo USB con la clave para poder arrancar.

Vamos al asunto, los pasos a seguir son:

1- Asegurarnos que tenemos cargado el módulo de kernel dm_crypt con:

Source   
[root@test ~]# lsmod | grep dm_crypt
dm_crypt 10848 2
dm_mod 63859 11 dm_crypt

Continue reading

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