Securizar el directorio /tmp a noexect

Buenas como todos sabeis hay un colectivo de gente que se dedica a explotar exploits de scripts estilo php-nuke pos bla bla que lo que hace es colarte en tu directorio /tmp del server un script muy chulo que o se te logea como root o te hace mil putadas bien la mejor manera de evitar esto es hacer que nada se pueda ejecutar desde ese directorio aparte de configurar bien tu firewall y tener una vigilancia constante como es lógico

Como ROOT haceis estos pasos:

cd /dev
dd if=/dev/zero of=tmpMnt bs=1024 count=100000
/sbin/mke2fs /dev/tmpMnt
(Contestad y a la pregunta que os hace)
cp -R /tmp/ /tmp_backup
mount -o loop,rw,nosuid,noexec /dev/tmpMnt /tmp
chmod 0777 /tmp
cp -R /tmp_backup/* /tmp/
rm -rf /tmp_backup

Ahora hay que modificar el /etc/fstab para hacer que el /dev/tmpMnt se monte al reiniciar el server. Es añadir esta linea:

/dev/tmpMnt /tmp ext2 loop,rw,nosuid,noexec 0 0
(OJO: los espacios de esta linea son tabuladores).

Reiniciad los servicios como por ejemplo postgresql , mysql, el clamantivirus, etc… para que se recreen bien los sockets y locks en el dir tmp si es ahi donde los creaban.

Para probarlo cread un shell en el /tmp e intentad ejecurtarlo. Ejemplo:
pegad esto dentro:

#!/bin/sh
echo prueba

lo guardais como en /tmp/test.sh y le haceis un chmod 0755 e intentad ejecutarlo desde dentro del /tmp, y os ha de dar esto:

[root@server tmp]# ./test.sh
bash: ./test.sh: bad interpreter: Permission denied

chapucillas que tb funciona y es bueno tenerlas.
Una formna rápida si no te quieres liar mucho con el asunto es anulando el acceso a wget linx y derivados, si no los usas y al compilador de C.

Para lo primero tienes una forma facil de hacerlo, cambiales el nombre wget ->wlee pr ejemplo y no lo encontrarán.

O chmod -ax cuando no lo utilizes con lo que anulas el acceso a ejecutar.

Es mas facil, mas rápido y menos dolores de cabeza que el poner tmp en noexec.

o bien:

Te creas un archivo de texto pones esto

chmod 000 /usr/bin/wget
chmod 000 /usr/bin/lynx
chmod 000 /usr/bin/*cc*
chmod 000 /usr/sbin/*cc*

Y luego le das permisos de ejecucion, nadie podra utilizar el wget ni el lynx ni compilar, puedes añadir todos los que quieras.

Despues creas el mismo (con otro nombre, por ejemplo abrir)

y le pones

chmod 755 /usr/bin/wget
chmod 755 /usr/bin/lynx
chmod 755 /usr/bin/*cc*
chmod 755 /usr/sbin/*cc

Tambien le das permisos de ejecucion, asi cuando quieras compilar o descargar algo solo tu podras dar esos permisos.
Espero que os guste amigos sysadmins

Ejemplos de reglas para IPtables

Aqui os dejo unos ejemplos de configuración de reglas para IPtables, encontraréis más en la siguiente web:

http://danieldegraaf.afraid.org/info/iptables/examples

Accept-all policy (Aceptar todo)

#!/usr/bin/env iptables-restore
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
*filter
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
*raw
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT

Minima:

#!/usr/bin/env iptables-restore
*filter
:FORWARD DROP [0:0]
:INPUT DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT

Aceptar SSH para un solo host:

#!/usr/bin/env iptables-restore
*filter
:FORWARD DROP [0:0]
:INPUT DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -s 1.8.9.7 -p tcp --dport 22 -j ACCEPT
COMMIT

Muchas más en el enlace mencionado anteriormente.

iptables example rulesets

Bloquear el tráfico con IPTABLES desde/hacia una dirección IP

Una entrada rápida, sencilla y útil para usuarios principiantes de Linux, la forma más rápida de bloquear el acceso a una determinada IP o rango a un sistema es mediante IPTABLES, el comando a ejecutar es el siguiente:

Bloquear tráfico de entrada a una IP con IPTABLES:

iptables -I INPUT -s 12.34.56.78 -j DROP

Bloquear tráfico de salida a una IP con IPTABLES:

iptables -I OUTPUT -s 12.34.56.78 -j DROP

Linux Máxima Seguridad (Edicion Especial) E-BooK en PDF

Libro enfocado para aquellos administradores de sistemas, gestores y usuarios de Linux que deseen proteger servidores y estaciones de trabajo Linux contra intrusiones no autoriazadas y otras amenazas externas para la integridad de sus sistemas. Esta guia exclusiva de la seguridad en Linux la ha escrito un “hacker” con años de experiencia y en ella se identifican los agujeros y fallos de seguridad existente y potenciales, ademas de como solucionarlos.

Continuar leyendo «Linux Máxima Seguridad (Edicion Especial) E-BooK en PDF»