Sunday, March 22, 2009

Deshabilitar completamente el Autorun y el Autoplay de Windows XP

Ya que vienen circulando 8000 virus a traves de los pendrives y como ya me infecte 3 veces por olvidarme de revisar pendrives a mano antes de abrirlos entonces busque bien como realmente desactivar el autorun de windows, y digo realmente porque si bien hay muchos metodos para desactivarlo, cuando uno hace click sobre alguna unidad que tiene el autorun.inf, el maldito se SIGUE ejecutando.

Entonces:

Inicio, ejecutar: gpedit.msc

Ir a Administrative Templates -> System -> Turn off Autoplay

Configurarlo en Enabled para todas las unidades.

Ademas de esto, abrir con el notepad y crear un archivo con cualquier nombre pero con la extension .reg (para crear un archivo de registro) y pegarle el siguiente texto:

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]
@="@SYS:DoesNotExist"

Guardarlo y hacer doble click sobre el archivo. Cuando windows pregunte si desea agregar la informacion al registro darle que si.

Ahora si tenemos REALMENTE el autorun desactivado por completo. Aclaro que el gpedit.msc solo funciona en la version Professional de Windows XP.

Saludos !

Thursday, March 19, 2009

Crear y montar una particion basada en archivo

Supongamos que ya compramos un servidor con linux en algun datacenter y que por X motivo no lo podemos reparticionar o reinstalar y necesitamos tener otras particiones, quiza con otro sistema de archivo ...

1) dd if=/dev/zero of=/particion.part bs=1M count=1000
2) losetup /dev/loop0 /particion.part
3) mkfs -t reiserfs /dev/loop0
4) mount -t reiserfs /dev/loop0 /www
5) Ya tenemos disponible la particion /www para hacer lo que queramos
6) umount /www
7) losetup -d /dev/loop0

1) le decimos a dd que cree un archivo de 1 GB (bs = block size) 1M x 1000 = 1 GB
2) losetup asocia dispositivos de loop con archivos normales
3) formateamos con reiserfs (puede ser ext3, etc) el archivo /particion.part
4) montamos la particion
5) hacemos algo util
6) desmontamos la particion
7) desvinculamos el dispositivo de loop /dev/loop0 del archivo que creamos

Supongamos ahora que deseamos automontar esta "particion" al bootear, para ello editamos el archivo /etc/fstab y agregamos lo siguiente:

/particion.part /www reiserfs defaults,loop 0 0

Ahora los scripts de inicio se encargaran de montar la particion que hemos creado en un archivo sobre otro sistema de archivos.

Copiar via ssh un archivo o directorio comprimiendo al vuelo con bzip2

Este metodo es un poco distinto del anterior, ya que lo unico que se requiere es ssh, tar y bzip2 (no dependemos de rsync). Por supuesto, este metodo va comprimiendo cada archivo con bzip2, asi que es util para pasar backups de un server a otro sin gastar espacio para el backup

tar cjf - ./archivo | ssh "-oPort=1234" root@192.168.1.1 'cd /tmp && tar xjpvf -'

esto copia /archivo comprimiendo el envio via ssh a 192.168.1.1 en el directorio /tmp

o para copiar un directorio:

tar cjf - mydir/ | ssh "-oPort=1234" root@192.168.1.1 'cd /tmp && tar xjpvf -'

esto copia el directorio mydir comprimiendo el envio via ssh a 192.168.1.1 en el directorio /tmp

y ahora, quiza otra variante interesante sea comprimir un archivo o directorio y dejar el resultado comprimido en un tar en el host remoto:

tar cjf - ./archivo | ssh "-oPort=1234" root@192.168.1.1 'cd /tmp && cat - > ./archivo.tar.bz2'

o para un directorio:

tar cjf - directorio/ | ssh "-oPort=1234" root@192.168.1.1 'cd /tmp && cat - > ./directorio.tar.bz2'

Supongamos que tenemos un disco de 20 GB y tenemos 19.5 GB ocupados. Logicamente hacer un backup dentro de ese disco es imposible, asi que con el metodo que menciono arriba se comprimen los datos al vuelo y se envian al host remoto sin utilizar espacio en la maquina local.

Espero que resulte util.

Copiar via ssh un archivo o directorio con rsync comprimiendo on-the-fly (al vuelo)

El ya de por si interesante programita rsync tiene un flag que permite comprimir lo que se esta enviando (gzip). Podemos combinar rsync + ssh para hacer un envio seguro de los datos de la siguiente forma:

rsync -azvhe "ssh -p 1234" /dir_local/archivo root@192.168.1.1:/dir_remoto

o sino para un directorio completo:

rsync -azvhe "ssh -p 1234" /dir_a_copiar/ root@192.168.1.1:/dir_remoto

cabe aclarar que la barra al final de dir_a_copiar es muy importante ya que si esta nos dice que copiemos el contenido de /dir_a_copiar dentro de /dir_remoto, si no la colocamos el comando copiara /dir_a_copiar/ DENTRO de /dir_remoto, por lo que la estructura quedaria /dir_remoto/dir_a_copiar (las idiosincracias de rsync ;-)

los flags hacen lo siguiente:

a: archiva
z: comprime (gzip)
v: verbose (dar detalles podria ser la traduccion)
h: human readable, mostrar los detalles de forma que un humano los pueda entender
e: especifica el shell remoto a utilizar, en nuestro caso ssh en el puerto 1234, obviamente hay q reemplazar por el puerto que corresponda (22 en un caso normal)

Followers

About me

Santa Fe, Argentina
Programador Web, PHP, MySQL, JQuery, Administrador Linux. LAMP, Lighttpd, Nginx.