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.
Varnish es un acelerador para HTTP que está causando furor en el mundo del hosting y en general en el mundo Linux. Varnish aparece como alternativa al poderoso Nginx, que durante mucho tiempo fue el rey en cuanto a la optimización a nivel de cache, proxy y balanceo de carga para los servicios web. Varnish además de hacer todo lo que hace Nginx con mejor rendimiento, también tiene algunas característiacs destacables, como por ejemplo:
Lenguaje propio VLC, que permite al usuario manipular varnish a su gusto.
Concebido desde el comiento para utilizarse en sistemas 64 bits
Soporte parcial de ESI
No necesita reiniciar para tomar los cambios de configuraciones
La forma de funcionar de Varnish es muy sencilla, pero a la vez efectiva: se guarda la información de cada request en la memoria virtual y el S.O es quien decide qué es guardado y que es paginado al disco duro. Esto es muy útil para que no se cachee información mientras se mueve al disco duro por otras aplicaciones.
Cada request desde el cliente genera hilos independientes y una vez se llega al límite de hilos, las nuevas conexiones son puestas en cola y recién a medida que se liberan otras, estas nuevas comienzan a despacharse. Sólo si la cola de peticiones pendientes alcanza un gran límite recién serán descartadas.
Un escenario ideal es tener apache, lighttpd o nginx en el puerto 8080 y Varnish en el 80 para actuar como proxy delante del webserver. En fin, ahora que ya tenemos una ideal general de como funciona, vamos a la parte divertida:
Para instalar Varnish vamos a seguir los siguientes pasos:
Si bien este repo es para RHEL/CentOS 5.x, funciona perfecto en la versión CentOS 6.x.
Si detectectamos en el servidor Linux con CentOS y notas que tienes muchos procesos del tipo: /var/qmail/bin/relaylock /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/
Un pequeño manual o reseña como lo querrais llamar… de cómo instalar Ubuntu Server en un sobre un RAID creado por software, en una máquina con dos discos iguales. Esta manual implica particionar y formatear discos duros, lo que destruye todos los datos. Por favor no la uses si no sabes lo que estás haciendo.
Página 1 – Particionar los discos duros
Instalar Ubuntu Server (vale perfectamente para todas las version de Ubuntu Server) sobre un arreglo RAID creado por software es fácil, pero la interfaz puede ser confusa. La instalación la haré sobre una máquina virtual con dos discos duros idénticos de 8 GB cada uno.
La instalación es totalmente standard hasta el momento de particionar los discos duros. En ese momento hay que decidir cuánto espacio dedicarle a cada función. En esta máquina de prueba usaré dos arreglos RAID; uno para la memoria virtual y otro para los datos. El de memoria virtual será de 512 MB (igual a la cantidad de RAM en este servidor) y el resto estará dedicado a una partición única.
Esta es la primera pantalla del particionador (nótense los dos discos iguales):
Acá escogeré la tercera opción, «Manually edit partition table». El particionador manual se ve así:
Primero editaré el primer disco (/dev/sda en este caso). El instalador de Ubuntu pregunta si estoy seguro de crear una tabla de partición en blanco en el disco duro. Contestaré «Yes».
Ahora aparece el espacio vacío en el particionador:
Cuando selecciono el espacio vacío, Ubuntu pregunta qué deseo hacer con él.
Respondo «Create a new partition» y me pide que le diga cuánto espacio dedicarle a la partición. Ofrece usar todo el espacio (8.6 GB, en este caso).
Como mi idea es usar 0.5 GB para memoria virtual, bajo lo que ofrece a 8.1 GB
El tipo de partición es «Primary»
y deseo que lo cree al principio del disco duro.
Tras crear la partición, debemos decirle a Ubuntu el rol que esta tendrá. Por default, Ubuntu ofrece usar la partición para el sistema operativo.
En este caso, queremos dedicarle la partición a un arreglo RAID. Por lo tanto, muevo el cursor a «Use as:» y aprieto Enter. En la pantalla siguiente se puede elegir el rol de la partición:
Elige «physical volume for RAID» y presiona Enter. El rol de la partición cambia para confirmar:
Falta decirle que esta partición es booteable. Presiona enter sobre «bootable flag».
Esta partición está lista. Presiona «Done setting up the partition».
Ahora el disco duro tiene una partición creada, y espacio libre. Crearemos otra partición primaria en el resto del espacio. El uso será physical volume for RAID, no booteable. Presiona Enter sobre «FREE SPACE» y sigue los mismos pasos de nuevo. Recuerda aceptar usar todo el espacio restante, y cambiar el rol de la partición a «physical volume for RAID». Cuando termines, la parte relevante de la ventana principal del particionador debiera verse más o menos así (como se vea exactamente dependerá de tus discos duros):
Ahora debes repetir exactamente el mismo proceso con el segundo disco duro. Los tamaños de las particiones deben ser idénticos. Cuando termines la ventana principal del particionador debiera verse así:
Ahora es el momento de crear los arreglos RAID
Para crear los dispositivos RAID, escoge «Configure software RAID» (la opción de más arriba en el menú principal del particionador).
Antes de continuar, debemos confirmar que queremos guardar los cambios a las tablas de partición. Responde «Yes».
Tras guardar los cambios aparece el menú de RAID por software. Crearemos dos dispositivos MD, uno para los datos y otro para la memoria virtual. Escoge «Create MD device».
Lo primero que Ubuntu quiere saber es qué tipo de arreglo RAID estamos creando. En este caso es RAID 1. Escoge RAID 1 y presiona Enter.
Luego debemos decirle cuántos dispositivos serán parte de este arreglo. En este caso, usaremos 2.
Luego hay que decirle cuántos de éstos estarán en standby por si hay fallas (los «spares»). En este caso, 0, que es lo que ofrece por default (ya que el mínimo de dispositivos para un RAID 1 son 2, todos estarán ocupados).
Por último hay que escoger los dispositivos que serán parte del arreglo. En este caso elegí la primera partición de cada disco (/dev/sda1 y /dev/sdb1).
Una vez que el arreglo está creado, el instalador muestra la pantalla inicial de la configuración de RAID de nuevo.
Repite los mismos pasos para crear un segundo dispositivo MD, RAID 1, con las otras dos particiones.
Cuando termines selecciona «Finish» y volverás a la pantalla inicial del particionador, donde habrá dos dispositivos nuevos: los discos duros virtuales que representan los arreglos RAID.
Escoge el primer dispositivo RAID, el de más capacidad (en este ejemplo, 8.1 GB) y presiona Enter. El particionador, por default, no le asigna rol.
Escoge «Use as: do not use» y presiona Enter. Elige usar un sistema de archivos Ext3:
y presiona Enter. Aún falta un paso más, decirle al instalador que queremos usar esta partición para el sistema de archivos. Mueve el cursor a «Mount point: none» y presiona Enter.
Dile que quieres usar esta partición para «/ – the root file system»
y, por último, confirma que terminaste de configurar esta partición. Apreta Enter sobre «Done setting up the partition». La partición debiera verse así antes de confirmar:
En la pantalla principal del particionador, los cambios están guardados (dice en forma muy compacta que será un sistema de archivos ext3, para montar /). Es hora de particionar el otro arreglo RAID.
Escoge el RAID #1 y presiona Enter. Al igual que en el caso anterior, el instalador no le da un uso por default. Escoge «Use as: do not use» y presiona Enter.
Elige «swap area» para este disco y presiona Enter.
Una vez que la partición esté configurada, elige «Done setting up the partition» y el particionador mostrará los dos dispositivos RAID con su configuración lista:
Mueve el cursor hasta el final de la pantalla del particionador y elige «Finish partitioning and write changes to disk.»
Una vez más debemos confirmar los cambios a las tablas de partición:
Elige «Yes» y presiona Enter. El resto de la instalación de Ubuntu server es normal y no tiene relación con los discos. Si todo sale bien, el sistema bootea correctamente desde su arreglo RAID.
Con la necesidad de hacer un script en bash, me ví con la obligación de hacer una conexion ssh y no queria que me pidiera contraseña cada vez que lo ejecutara. Tenia la opcion por claves publicas y privada pero creo que iba a perder mucho tiempo, asi que opte por la siguiente: Nos bajamos el paquete llamado sshpassde sourceproject
wget http://heanet.dl.sourceforge.net/project/sshpass/sshpass/1.05/sshpass-1.05.tar.gz
tar xvf sshpass-1.05.tar.gz
cd sshpass-1.05
./configure
make
sudo make install
Ahora una vez instalado sshpass en nuestro sistema o servidor, la sentencia para conectarnos a ssh es la siguiente: