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

Syllable Desktop un nuevo O.S. libre GNU

Si ya eran pocos los sistemas operativos uno nuevo salta a la palestra. Se trata de Syllable, aunque en fase Alpha es utilizable para pruebas a nivel desktop.

//web.syllable.org/products/Desktop/0.6.5/PremiumCD/SyllableDesktop-0.6.5-CD-front-175x179.jpg

Syllable es un proyecto cuyo objetivo es producir un sistema operativo, liviano, estable y fácil de usar. En el momento se desarrollan dos familias: Syllable Desktop y Syllable Server.

Syllable Desktop es un OS libre y abierto, de acuerdo con los términos GNU. Dejamos en claro que este sistema NO usa el nucleo LINUX para impulsar un escritorio X-Window, sino que es un sistema donde el nucleo y la interfaz gráfica son una sola pieza absolutamente integrada, liviana y eficiente. Esto permite prescindir totalmente del sistema X-Windows y los toolkit, convirtiendo al desarrollo de software en una tarea sencilla si se dominan lenguajes como C o C++. Syllable Desktop tiene una arquitectura estilo Unix, pero es absolutamente amigable y no se requieren conocimientos técnicos para usarlo.
Visto en: wikipedia, Syllable

Curso administración: Linux – ubuntu PDF

Este curso fue realizado por el Ministerio de Educación y Ciencia de España, aproximadamente son 17 Mb y al descomprimir obtienes un PDF de 265 paginas.

//www.megacomputers.com.my/images/ubuntu_logo.jpg

Contenido:

-Ubuntu en Live CD
-Instalación de Ubuntu.
-Sofware libre
-El entorno de trabajo en Ubuntu
-Gestión de archivos
-Administración básica de sistema
-Aplicaciones de red
-Ofimática básica en Ubuntu
-Otras tareas elementales.

Descargar:

http://rapidshare.com/files/61491497/Curso_Ubuntu_Completo.rar

Redirigir peticiones http de una maquina a otra sin perder hostname con mod_proxy

Hace unos dias me encontré con el siguiente problema, tengo que migrar el site foo.com del servidor A al servidor B, no podemos tener el site caido mucho tiempo mas allá de unos pocos minutos (lo que tardamos en hacer un dump de los datos y una copia de ficheros), tampoco queremos cambiar el dominio del site  (por ejemplo usando una redirección del estilo.foo.com a new.foo.com).

Resumiendo: queremos que todas las peticiones que entren al servidor A para el virtual host foo.com le lleguen al servidor B que tiene tambien configurado ese mismo dominio en sus virtual hosts.

Afortunadamente Apache 2 es el servidor web del dominio foo.com.

¿Como lo hacemos?

Voy a proponer una solución al problema utilizando mod_proxy:

Añadimos estas 3 lineas a la configuración del servidor A.

ProxyPass / http://192.240.2.93/

ProxyPassReverse / http://192.240.2.93/

ProxyPreserveHost On

Explicamos para que sirven los parametros:

  • ProxyPass redirige la petición del servidor A a la ip del servidor B.
  • ProxyPassReverse cambia la URL en las cabeceras Location, Content-Location y URI de las respuestas HTTP redirect. Se utiliza para que la respuesta de la petición vaya al cliente a traves del host A, lo cual es muy util cuando redirigimos peticiones a hosts en una red privada que no tienen acceso a internet. En nuestro caso esta directiva es opcional y podemos decidir que sea el host B el que responda al cliente directamente.
  • ProxyPreserveHost mantiene la cabecera Host de la petición en la redirección al servidor B, esta pensado especificamente para poder hacer redirecciones a servidores que utilicen virtual hosts basados en nombres de dominio.

En el host B tenemos que tener una configuración similar a esta para que acepte las peticiones que le entran desde el servidor A:

<virtualhost *:80>
ServerName foo.com
DocumentRoot /var/www/foo

<directory «/var/www/foo»>
Order allow,deny
Allow from all
</directory>

ErrorLog /var/log/apache2/foo.err
CustomLog /var/log/apache2/foo.log combined
</virtualhost>

Curso completo de Redes Cisco CCNA

Aqui os dejo un pedazo de curso CISCO CCNA  que para los que querrais sacaros la titulación CCNA os va a venir de lujo.

Contenido:

Semestre I

0 : Recorrido rapido del curriculum
1: Informatica basica
2: El Modelo Osi
3: Redes de ares local (LAN)
4: Capa 1 – Electronica y señales
5: Capa 1 – Medios, Conexiones y Colisiones
6: Capa 2 – Conceptos
7: Capa 2 – Tecnologias
8: Diseño y documentacion
9: Proyecto y cableado estructurado
10: Capa3 – Enrutamiento y direccionamiento
11: Capa3 – Protocolos
12: Capa4 – Capa de transporte
13: Capa5 – Capa de sesion
14: Capa6 – Capa de presentacion
15: Capa7 – Capa de aplicacion

Semestre II

i: Recorrido rapido del curriculum
1: Repaso
2: WAN y routers
3: CLI de router
4: Componentes del router
5: Inicio y configuracion del router
6: Configuracion del router 1
7: Imagenes IOS
8: Configuracion del router 2
9:TCP/IP
10: Direccionamiento IP
11: Enrutamiento
12: Protocolos de Enrutamiento
13: Diagnostico de fallas de red

Semestre III

i: Recorrido del Curriculum
1: Repaso: El modelo de referencia OSI y el enrutamiento
2: Conmutacion de LAN
3: LAN virtuales (VLAN)
4: Diseño de LAN
5: Protocolo de Enrutamiento de gateway interior (IGRP)
6: Listas de Control de acceso (ACL)
7: IPX de Novell
8: Administracion de Red

Semestre IV

i: Recorrido rapido del curriculum
1: Repaso
2: WAN
3: Diseño de WAN
4: Protocolo punto a punto (PPP)
5: Red Digital de Servicios Integrados (RDSI)
6: Frame Relay
7: Administracion de red
8: Repaso para el Examen de Certificacion + Red
9: Repaso para el Examen de Certficadcion CCNA

* Tamaño: 53 Mb
* Idioma: Español

Link:

http://www.ziddu.com/download/4788960/BlogofsysAdmiins.com-Curso_Redes_Cisco.rar.html

Password:  http://blogofsysadmins.com