lunes, 28 de mayo de 2012

Registro de Windows

A modo de apunte rápido para no olvidarme, voy a poner una serie de valores del registro que se pueden editar y ayudan en el post anterior. Las claves que no existan en tu registro, las tienes que crear.

Deshabilitar programas aislados:

Lo que haremos con esto será prohibir la ejecución de algunos programas.

HKCU\Software\Microsoft\Windows\Current Version\Policies\Explorer

Creamos una clave DisallowRun y un registro DWORD DisallowRun que pondremos a 1 para habilitarlo y 0 para deshabilitarlo.

Entramos en la clave recién creada (DisallowRun) y creamos entradas de cadena. El nombre del registro es un numero y el valor el nombre del ejecutable. Si añadimos más programas, los valores tienen que ser consecutivos.

1    iexplore.exe
2    firefox.exe

Estos programas NO se ejecutarán.

Deshabilitar todos los programas y permitir excepciones:

Esto es el caso contrario al anterior. Por defecto no se permitirá el uso de ninguna aplicación excepto las que nosotros queramos. Veamos:

HKCU\Software\Microsoft\Windows\Current Version\Policies\Explorer

Creamos una clave RestrictRun y un registro DWORD RestrictRun que pondremos a 1 para habilitarlo y 0 para deshabilitarlo.

Entramos en la clave recién creada (RestrictRun) y creamos entradas de cadena. El nombre del registro es un numero y el valor el nombre del ejecutable. Si añadimos más programas, los valores tienen que ser consecutivos.

1 iexplore.exe
2 firefox.exe

Estos programas SON LOS UNICOS que se ejecutarán.

Quitar acceso a unidades de disco desde Mi PC:

No se mostrarán las unidades indicadas en Mi PC y no dejará entrar a esa unidad. Vamos a:

HKCU\Software\Microsoft\Windows\Current Version\Policies\Explorer

Y añadimos una entrada DWORD llamada NoViewOnDrive y le daremos el valor deseado. Para que no se vea ninguna unidad: 03FFFFFF. Por lo que veo es una conversión de binario a hexadecimal:

A    B    C    D    …    Z

1     0    0     0    …    0  = 1 Deshabilita unidad A
1     1    0     0    …    0  = 3 Deshabilita A y B
0     0    1     0    …    0  = 4 Deshabilita C

Restricciones Internet Explorer:

Ahora unas cuantas restricciones para el navegador Internet Explorer:

HKCU\Software\Policies\Microsoft\Internet Explorer\Restrictions

Creamos valores DWORD, 1 activada la restricción, 0 desactivada.

NoBrowserClose: Evita que se cierre el navegador. También evita que se cierren las pestañas, por lo que andar con ojo.
NoBrowserContextMenu: Deshabilita el botón derecho del ratón.
NoBrowserOptions: Deshabilita las opciones del navegador.
NoBrowserSaveAs: Deshabilita el guardar páginas en disco.
NoFavorites: Deshabilita la sección de favoritos.
NoFileNew: Deshabilita la opción de nuevo documento del menú.
NoFileOpen: Deshabilita la opción de abrir archivo.

Se puede ejecutar el navegador en modo privado si modificamos el acceso directo y al final añadimos –private (válido también para ponerlo como Shell).

Con estas opciones podremos limitar un poco más el uso a algún usuario. Para editar HKCU (HKEY CURRENT USER), hay que loguearse con el propio usuario a limitar y que tenga en ese momento permisos administrativos (y acceso al regedit). Para hacerlo a nivel de máquina sería editar HKLM (HKEY LOCAL MACHINE), y afectaría a todos los usuarios (no lo he probado, habrá algunas limitaciones que no se puedan hacer a nivel de máquina).

Otro día pondré alguna edición más del registro que sea útil.

¡Saludos!

viernes, 25 de mayo de 2012

Enjaular usuario en Windows

Hoy vamos un poco con Windows, que no suelo tocarlo y también tiene sus posibilidades. Hoy lo que me planteo hacer es crear un usuario que sólo pueda ejecutar un navegador, por ejemplo para un ordenador que esté en un hotel. Seguramente haya programas que hagan esto y sean mucho más seguros, pero ¿para qué instalar algo cuando podemos hacerlo nosotros con un poco de tiempo? Bueno, vale, el tiempo Lengua fuera, pero por lo que estoy investigando no hay tanto problema.
El primero obstáculo que me encuentro es que tengo un Windows 7 Home Premium, por lo que la forma fácil de hacerlo que es editando la política de grupos no puedo hacerla (válido para AD y local), por lo que me toca hacerlo de forma universal, es decir, modificando a pelo el regedit. Lo primero es crear el usuario desde el panel de control, con permisos de administrador para poder hacer los cambios. Al finalizar, le cambiaremos a usuario normal. Nos logueamos con ese usuario y empezamos:

Paso 1: Modificar la shell de Windows

Lo primero que vamos a hacer es que Windows no cargue el explorer.exe y cargue el navegador que nosotros elijamos. En este caso lo haremos para sólo un usuario, pero dejaré un link con información más detallada.
Lo primero que tenemos que hacer es decidir el navegador que vamos a usar y localizar la ruta en el disco duro. Estas son las rutas por defecto de los tres navegadores más usados de Windows (De todas formas, comprobarlo en cada equipo):
Internet explorer: "C:\Program Files\Internet Explorer\iexplore.exe"
Firefox: "C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
Chrome: “C:\Users\USUARIO\AppData\Local\Google\Chrome\Application\chrome.exe”

Lo siguiente será modificar la entrada “Shell” del registro para el propio usuario:
HKCU\Software\Microsoft\Windows\Current Version\Policies\System
Creamos una entrada de tipo “String Value” llamada “Shell” y como valor ponemos la ruta del navegador. Si no existiese la carpeta System, la creamos (Crear clave).

Paso 2: Deshabilitando el Administrador de Tareas.

Para ganar algo de seguridad y que los listillos no ejecuten lo que quieran “porque son hackers” vamos a deshabilitar el Administrador de Tareas. Esto deshabilitará la opción del Administrador de Tareas al pulsar “Ctrl+Alt+Supr”. De nuevo vamos al registro y añadimos una entrada de tipo Dword.
HKCU\Software\Microsoft\Windows\Current Version\Policies\System
Entrada a crear: DisableTaskMgr y le ponemos el valor 1. Para volver a habilitarlo, o borramos la entrada o la ponemos a 0.
En la misma clave, podemos añadir otros dos valores útiles, DisableChangePassword y DisableLockWorkstation, que evitarán que se de la opción de cambiar la contraseña de ese usuario y de bloquear el equipo.
Si queremos que no puedan cerrar sesión, tenemos que editar la clave:
HKCU\Software\Microsoft\Windows\Current Version\Policies\Explorer
Y añadir también como DWORD “NoLogoff”
Por último, si queremos deshabilitar el cambio de usuario (dejar abierta la sesión y cambiar a otro) tenemos que ir a la clave:
HKLM\Software\Microsoft\Windows\Current Version\Policies\System
Y añadir también como DWORD “HideFastUserSwitching”. La pega de esto, es que lo deshabilita para todos los usuarios.

Paso 3: Securizar un poco más el equipo.

Para más seguridad, podemos deshabilitar las StickyKeys y el FilterKeys. ¿Porqué? A parte de porque pueden llegar a ser un coñazo, son un agujero de seguridad en estos casos (he hablado de ello en otros post de como usarlo para cambiar contraseñas), pero también porque permiten acceso al panel de control. Si fuese un Windows 7 Professional o superior, esto se puede limitar por políticas de usuarios, pero el home no trae eso.
Para deshabilitarlos podemos hacerlo bien desde el propio panel de control o bien editando el registro:
StickyKeys (pulsar 5 veces Shift izquierdo):
HKCU\Control Panel\Accessibility\StickyKeys
Cambiamos el valor de “Flags” por “506” (510 para activarlo).
FilterKeys (dejar pulsado durante 8 segundo el Shift derecho):
HKCU\Control Panel\Accessibility\Keyboard Response
Cambiamos el valor de “Flags” por “122” (126 para activarlo).

¿FIN?

Falta cambiar los permisos del usuario a estándar y ya tendremos un usuario que sólo podrá ejecutar el navegador. Lo que haga desde el navegador es otra cosa, porque podrá ejecutar otros programas seguramente y acceder al contenido del disco duro. Esta parte tengo que investigarla ya que aun no he tenido tiempo, pero con esto tendremos una terminal un poquito más segura que si dejamos un usuario sin modificar, aunque sea una cuenta estándar (nunca dejar una cuenta de administrador abierta).
Esto es válido con cualquier programa, por lo que si lo que queremos es tener un centro multimedia, podemos usar de Shell el XBMC por ejemplo.
Si alguien ve como mejorarlo o algún punto de fallo que avise Guiño
¡Saludos!
Enlaces:
http://geeks.ms/blogs/checho/archive/2011/12/18/cambiar-el-shell-de-ejecuci-243-n-predeterminado-explorer-exe-en-windows-7.aspx
http://www.dgtallika.com/2010/07/windows-7-avanzado-como-restringir-el-ingreso-a-aplicaciones-con-la-herramienta-applocker/
http://windowsxp.mvps.org/es/tareas-ha-sido-deshabilitado.htm

martes, 22 de mayo de 2012

Instalar Mediatomb con el Samsung Hack (Parte 2)

Bueno, seguimos con el post anterior que me quede sin espacio. Después de la bonita historia de superación vamos a ver cómo aplicar el hack al paquete. Hay que descargar el parche desde http://sourceforge.net/tracker/?func=detail&aid=3014026&group_id=129766&atid=715782 y recordar la ruta donde se ha guardado.
1. Añadir repos a /etc/apt/sources.list
deb http://ftp.de.debian.org/debian sid main
deb-src http://ftp.de.debian.org/debian sid main
Y actualizamos: “apt-get update”.
2. Descargamos el paquete y resolvemos dependencias:
apt-get build-dep mediatomb
apt-get source mediatomb
3. Entramos en la carpeta descargada y nos ponemos al lio:
cd mediatomb-0.12.1/
patch -p0 -i /opt/samsung_video_subtitles.patch (o donde lo hayamos guardado)
./configure
NOTA: Si da errores de dependencias, instalar con apt lo necesario. Lo ultimo que tengo instalado es:
apt-get install ffmpeg ffmpegthumbnailer
apt-get install libmysqld-dev
apt-get install libdvdread-dev libdvdnav-dev
apt-get install libsqlite3-dev
apt-get install libtag1-dev libexpat1-dev libexif-dev libmp4v2-dev libmagic-dev libcurl4-openssl-dev libmozjs-dev

Pero no se si hará falta más cosas, ya que he instalado muchos paquetes anteriormente.
Esto es para que funcione lo siguiente:
apt-get install  build-essential dh-autoreconf libcurl4-gnutls-dev libmozjs185-dev

dpkg-source --commit (Si no fallará porque hemos aplicado el parche.)
dpkg-buildpackage -us -uc (esto como root, si no hay que añadir fakeroot, revisar enlaces)
Con esto ya tendremos los .deb preparados. Volvemos al home y vemos que tenemos varios .deb nuevos. Para instalarlos:
dpkg -i mediatomb*.deb
apt-get install -f
Si todo ha ido bien con "ps aux | grep mediatomb" lo veremos ejecutándose. Sólo falta añadir en el config.xml
<protocolInfo extend="yes" samsung-hack="yes"/>
Reiniciamos el servicio y listo.
Con esto finalizo la guía de lo que hice estos dos días anteriores y a mí me funcionó con LMDE como dije en el post anterior. Espero que le sirva a alguien ya que me volví loco para conseguirlo, pero se hizo Guiño.
¡Un saludo!

POST: Estoy intentandolo hacer en Debian 6, pero me da fallo de dependencias. Cuando lo consiga, actualizo con los pasos extra.

Enlaces (compilándolo de cero y como modificar un deb):
http://sourceforge.net/projects/mediatomb/forums/forum/440751/topic/3991443
http://juliensimon.blogspot.com.es/2008/12/howto-compiling-mediatomb.html
http://www.debian-administration.org/articles/20
https://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide

Instalar Mediatomb con el Samsung Hack (Parte 1)

Mediatomb es un servidor DLNA, con el podremos hacer streaming de audio, video y fotos en nuestra red a todo dispositivo DLNA compatible. La instalación básica es realmente sencilla, el problema me vino a la hora de añadir subtítulos para verlos en mi tele (una Samsung Smart TV). Empezaremos por lo básico que es instalarlo, ya que a la mayoría de gente con eso le vale.

Antes de empezar, aclarar que empecé haciéndolo en una Ubuntu 11.10 y luego con una Ubuntu 12.04, pero ahora mismo estoy usando una Linux Mint Debian Edition, que es donde he aplicado el hack, por lo que asumiré que esto es válido para distros basadas en Debian (no creo que haya mucha diferencia con las demás).

Para instalarlo, es tan sencillo como usar los repositorios “apt-get install mediatomb”. Instalará el mediatomb-common y el mediatomb-daemon, y el resto de dependencias. Con esta instalación, está usando el fichero de configuración que está en /etc/mediatomb/config.xml por lo que es el que tendremos que editar. Si ejecutásemos el mediatomb con nuestro usuario, el archivo de configuración estaría en ~/.mediatomb, pero como vamos a usar el daemon, editaremos el de /etc.

Al final del post, adjuntaré un config.html que funciona con las Samsung, sería copiarlo a /etc/mediatomb/config.xml y reiniciar el demonio. Pondré también los enlaces que usé para configurarlo por si queréis indagar y modificar cosas.

Con esta configuración he conseguido hacer streaming de video (avi, mp4 y mkv que haya probado hasta ahora) sin problemas y sin hacer transcodificación (convertir los archivos de video a otro formato, consume más recursos en el pc), pero sin subtítulos. De primeras lo que intenté fue hacer una transcodificación y que se añadiesen los subtítulos, pero no he sido capaz de hacerlo (lo dejo en los enlaces) aunque tampoco investigué mucho.

Esta configuración la deje durante unos meses, ya que funcionar funcionaba, pero como no lo estaba usando regularmente (no veo muchas películas) necesitaba conseguir poner los subtítulos para ver los capítulos de las series en VO con subtítulos. Era la forma en que le diese un uso regular. Investigando, acabe descubriendo que hay un parche que hace que las televisiones Samsung cojan los subtítulos sin necesidad de transcodificación, pero claro, no sabía como aplicar parches a programas por lo que tocaba seguir la investigación.

Lo primero que encontré fue que había que aplicar el parche sobre el código fuente, así que ni corto ni perezoso me lie la manta a la cabeza y me puse a compilar el mediatomb y todas sus dependencias. Esto es algo a tener en cuenta en las distros basadas en debian, las dependencias no están en el sitio en el que el compilador las busca. Por lo que leí es problema de los que hacen los paquetes para esas distros. Lo primero que me costó fue compilar el ffmpeg, pero una vez hecho, compilar el mediatomb sería ya cosa de poco, con las dependencias resueltas y el parche puesto. Así que cogí el código que había bajado usando el svn y… nada. Después de horas investigando y parcheando, me seguía dando fallos de compilación. Estaba apunto de quemar el ordenador. Y se me encendió una bombilla. ¿Y si aplico el parche al paquete de los repositorios? ¿Se podría hacer? Ya desesperado busqué y busqué, y de primeras fallé. Se puede descargar el código fuente de los repositorios con “apt-get source paquete” siempre y cuando tengas habilitado en los repositorios la descarga de las fuentes. Fallé por culpa del LMDE, que no tenía el mediatomb en los repositorios de código fuente (o no supe dar con él) así que siguiendo la lógica de que está basada en debian, ni corto ni perezoso añadí los repositorios de debian al “/etc/apt/sources.list”. Y a partir de ahí, como la seda. En el siguiente post, los pasos detallados.

Enlaces:

Config.xml e info de transcodificación: https://vanalboom.org/node/9
Básico Samsung: http://ubuntuforums.org/showthread.php?t=1198689
Config xml mío: http://pastebin.com/9xR8BgHm sacado de http://sourceforge.net/projects/mediatomb/forums/forum/440751/topic/4398387/index/page/1