Desinstalar las “Modern UI Apps” preinstaladas en Windows 8.1

Windows8.1ModernUIApps

¡Qué cantidad de morralla!

 

Posiblemente una de las cosas que más os llame la atención al adquirir un equipo nuevo con Windows 8.1 (u 8), es la cantidad de “apps” que vienen preinstaladas y que muy probablemente no supongan más que un estorbo.

La opción de irnos al menú “Modern UI”, dar botón derecho sobre cada una de ellas y pulsar desinstalar siempre estará ahí. ¿Pero qué pasa si queremos desinstalarlas todas de “un plumazo”? ¿Y si queremos desinstalarlas en varios equipos y para todos los usuarios?

Vuestro amigo es PowerShell.

Arrancar este interfaz de comandos tan potente es muy sencillo. Basta con irnos a la interfaz Modern UI y escribir directamente “powershell”. Nos encontrará el programa y simplemente debemos recordar ejecutarlo como administrador.

BuscarEjecutarPowershell

Recuerda ejecutarlo como administrador.

Al arrancarlo, nos mostrará una pantalla similar a ésta:

PowerShellConsole

La interfaz de PowerShell no es muy amistosa.

Una vez dentro, simplemente deberemos ejecutar 2 comandos, escribiendo el código directamente en la ventana de PowerShell.

Get-AppxPackage -AllUsers | Remove-AppxPackage

Este comando consta de 2 secciones. La primera, listará todas las “Modern UI Apps” preinstaladas en el sistema y la segunda, desinstalará dichas “apps”.

El problema, es que tras ejecutar este comando, si creas un nuevo perfil, volverás a ver instaladas esas aplicaciones. Esto se debe a que Windows las marca como “persistentes” en el sistema, así que para eliminarlas definitivamente, tras el primer comando, deberemos ejecutar éste:

Get-AppXProvisionedPackage -online | Remove-AppxProvisionedPackage –online

Veremos como el comando va encontrando y eliminando una a una todas las apps y tras finalizar, podremos suspirar tranquilos tras haber limpiado nuestro sistema de esas posibles “molestias”.

Estos 2 comandos, por supuesto, se podrían automatizar con un script de inicio de sesión, en caso de estar unidos a un dominio, facilitando aún mucho más la operación.

 

Solucionar “=> /boot is using X% of YMB” en Ubuntu Server

En la entrada de hoy vamos a explicar como solucionar este aviso, que en nuestro caso ya alcanzaba un punto crítico ya que:

linux-boot-is-using-1

=> /boot is using 99.1% of 227MB

Dicho aviso se produce tras haber actualizado varias veces el kernel de nuestro sistema, el cual no se elimina por si quisiéramos volver a él tras tener algún problema en la actualización o en posteriores cambios.

Se aconseja conservar los 2 o 3 kernels más recientes para poder realizar estos “rollback” en caso de fallo, pero cuando se van acumulando, podemos quedarnos sin espacio en la partición /boot.

Así pues, ¿cómo deshacernos de los kernels más antiguos que ya no necesitamos?

En un principio puede parecer que ejecutando el comando

sudo apt-get autoremove

se eliminan esos archivos, pero no es el caso. Para eliminarlos completamente y liberar espacio en /boot, se deben seguir estos pasos:

1. Primero listamos los kernels que nuestro sistema tiene almacenados con el comando:

dpkg -l | grep linux-image

linux-boot-is-using-2

En nuestro caso como podéis ver lista 12 kernels en el sistema. Fijaros que algunos al principio de la línea tienen escrito “rc” y otros “ii”. Tal y como podéis leer en esta genial entrada:

  • “rc” significa “marcado para desinstalación” y “ficheros de configuración presentes”
  • “ii” significa “marcado para instalación” e “instalado”

Así pues, los 2 primeros kernels realmente ya se encuentran desinstalados y liberarán 0B una vezs los eliminemos, pero el resto sí que están ocupando espacio y debemos desinstalarlos con cuidado.

2. A continuación comprobamos cuál es el kernel que estamos ejecutando en estos momentos con el comando:

uname -r

linux-boot-is-using-3

Vemos que nos devuelve el valor:

3.2.0-48-generic

Por lo que podemos eliminar tranquilamente el resto de kernels que aparecían en la lista y dejar activos los 3 últimos.

3. Para eliminar definitivamente los kernels, se puede utilizar el comando:

sudo apt-get --purge remove linux-image-X.X.X-XX-generic

Comenzaríamos con el primero de la lista

sudo apt-get --purge remove linux-image-2.6.32-24-server

y finalizaríamos con

sudo apt-get --purge remove linux-image-3.2.0-44-generic

Nota: No creo que sea necesario, pero os aconsejo que entre desinstalación y desinstalación reiniciéis el equipo con un sencillo

sudo apt-get reboot

para aseguraros que todo va correctamente.

linux-boot-is-using-4

Al final os debería quedar una lista mucho más limpia de kernels y sobretodo, perder de vista el dicho mensaje de advertencia que puede causar estragos si no se “atiende” 😉

 

Crear contactos y grupos en Nagios

Hace tiempo escribí una entrada en mi blog sobre la instalación de Nagios y como monitorizar equipos Windows desde dicho sistema, http://opdit.wordpress.com/2011/12/23/monitorizar-redes-windows-con-nagios-2/.

Después de ponerlo todo en marcha y tenerlo funcionando quiero ir añadiendo entradas sobre temas concretos de la configuración de Nagios que me han servido y que creo os pueden ser de utilidad.

Una de las grandes funcionalidades de Nagios es el tema del envío de notificaciones por email. Pues bien, como os comentaba he querido profundizar más en el tema para ver como se pueden modificar los parámetros de las alertas, crear grupos de usuarios, horarios para envíos, etc.

Vamos por partes, lo primero que nos recomiendan modificar en la instalación de nagios es el fichero contacts.cfg para poner la cuenta de correo a la que queremos que lleguen las notificaciones. Si nos fijamos en el fichero veremos como en la definición del contacto, utiliza una plantilla (template) llamada generic-contact.

contacts.cfg

Todos los ficheros de configuración de nagios utilizan plantillas, tanto para crear equipos windows (windows-server), como impresoras (generic-printer), switches (generic-switch), etc. y en esas plantillas es donde debemos modificar los datos genéricos que no aparecen en la propia definición pero que si que heredan de la plantillas a través del campo “use”.

Vamos a ver un ejemplo concreto para que nos quede más claro.

Debido al volumen de alertas nos puede interesa que solo nos mande por correo las alertas catalogadas como Critical:

Para hacer esto nos vamos al fichero templates.cfg y en la plantilla generic-contact vemos las opciones de notificación de servicio y de host, ahí es donde si quitamos la w le estaremos diciendo que no nos lleguen las alertas catalogadas como warning (en la imagen):

templates1

Las distintas opciones son: w (warning), u (unknown), c (critical), r (recoveries), f (flapping), s (scheduled downtime).

Os paso un link de la definición de objetos donde entra en más detalle sobre estas opciones: http://nagios.sourceforge.net/docs/3_0/objectdefinitions.html

Esto también lo podemos hacer a nivel de servicio, es decir, si queremos que un servicio concreto solo nos avise cuando el estado sea critico, en el fichero templates.cfg buscaríamos la definición de servicio (generic-service) y ahí dejaríamos las opciones que nos interesen. Luego debemos cerciorarnos de que utilizamos dicha plantilla en el fichero concreto.

Un ejemplo real que nos puede ayudar a entender esto podría ser el caso de que tengamos varias personas para recibir las alertas y queremos que solo una de ellas reciba, por ejemplo, las alertas de las impresoras. Pues bien, lo primero que debemos hacer es definir un nuevo contacto donde le diremos la cuenta de correo del usuario (o usuarios, se pueden poner varias cuentas) que va a recibir las alertas. Después creamos un grupo y le añadimos los miembros del grupo, como vemos en la imagen:

Grupos

Ahora nos queda revisar el fichero printers.cfg donde vemos que está utilizando la plantilla generic-service. En la definición de la plantilla generic-service vemos que utiliza el campo contact-group:

generic-services

Ese campo viene con el grupo definido por defecto, pero como nosotros hemos definido uno nuevo para el caso concreto de las impresoras, podemos añadir una definición nueva de servicio, que podemos llamar en este caso, printer-services y le pasamos el contact-groups para que le mande las alertas unicamente a los miembros de dicho grupo:

generic-services2

Por último lo único que debemos tener en cuenta ahora es que el archivo printers.cfg que hacía referencia al servicio generic-service ahora debe hacer referencia al printer-service que acabamos de crear.

Como he comentado al principio, mi idea es ir añadiendo noticias con temas más concretos de la utilización de Nagios así que si tenéis dudas por favor hacérmelas llegar e intentaré ir resolviéndolas en la medida de lo posible 😉

Calcular velocidad de descarga por línea de comandos en Linux

velocidad-linux-2

¿Instalar el plugin de Java? Sí claro, espera que bajo a por tabaco un segundo…

No sé si en algún momento os ha pasado que sospecháis que vuestra conexión es muy lenta y acudís a nuestro amado Google para calcular la velocidad de vuestra conexión.

Una búsqueda nos arrojará miles y miles de resultados que nos llevarán a tests que nos obligan a tener instalado Java (puaj!) o el plugin de Flash (puaj puaj!), con el consiguiente peligro para la seguridad de nuestro navegador y la poca fiabilidad de los datos que nos puedan presentar.

En esta entrada voy a intentar explicar cómo calcular esa velocidad mediante la consola de comandos en cualquier distribución de Linux con el comando “wget”.

wget -O /dev/null http://cachefly.cachefly.net/100mb.test

ó

wget -O /dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip

El comando es muy sencillo, tienes 2 parámetros: uno definido por el “-O” y otro que es la URL a la que queremos conectarnos para descargarnos el archivo.

En este caso, tras el -O pondremos la ruta /dev/null que es como el “limbo” en Linux y lo que conseguiremos es que realmente no nos descarguemos el archivo y no ocupe espacio en nuestro disco.

El otro parámetro, la URL, hemos elegido 2 descargas: una de 100 y otra de 500 MB, para conexiones más rápidas. En condiciones normales, realizando una descarga de 100 MB tendréis de sobra para calcular vuestra velocidad.

Haciendo la prueba en nuestra conexión de 10 MB (teórica), nos arroja estos resultados:

velocidad-linux-1

Ahora bien, ¿como traducimos esos 697K/s a la velocidad de nuestra línea/conexión?

Para ello, un poco de matemáticas:

En Linux la norma es que las velocidades se muestran en bytes, con B maýuscula. Eso significa que 697K/s aunque no ponga la “B”, son 697 kilobytes por segundo.

Un byte son ocho bits (1 byte = 8 bits), así que multiplicando por 8 esa cifra nos arroja una velocidad de 5576 kilobits por segundo. Dividimos entre 1000 (1000 kilobits = 1 megabit) y nos da una velocidad de 5,576 megabits por segundo. Menos de 6 “megas” 😉 Esto es comprensible ya que en el momento de la prueba la conexión estaba siendo compartida por varios equipos.

Para realizar este cálculo con la misma consola de comandos, podemos ejecutar este comando:

echo "velocidad*8" | bc

Que en nuestro caso quedaría así:

echo "697*8" | bc

Y listo! Un test mucho más fiable que los que podamos encontrar en webs de terceros y lo más importante, independiente de software de escritorio o plugins.

Espero que os sirva!

Un saludo.

Cambiar “Registrado a nombre de” (RegisteredOwner) y “Organización” (RegisteredOrganization) en Windows

Much@s de vosotr@s os habréis encontrado con esta duda al comprar un equipo OEM o preinstalado: el nombre del usuario al que Windows está registrado y la organización muestran valores que nunca hemos introducido (casi siempre mostrando el nombre de la empresa que manufacturó el equipo) y que nos gustaría cambiar, pero no encontramos ningún menú donde poder editarlos.

No es un cambio que vaya a acelerar vuestros equipos ni que os otorgue más poder sobre vuestra máquina pero si sois un@s perfeccionistas (como es mi caso), os gustará tener estos valores editados a vuestro gusto.

Para Windows XP

1) Pulsamos en Inicio -> Ejecutar… -> Escribimos en el recuadro regedit y le damos a aceptar.

cambiar-registered-owner-xp-1

cambiar-registered-owner-xp-2

2) Navegamos hasta la clave del registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion y en el panel de la derecha editamos las claves RegisteredOwner y RegisteredOrganization de tipo REG_SZ (cadena de texto).

cambiar-registered-owner-xp-3

3) Cerramos el editor de registro y reiniciamos. Si por ejemplo ahora pulsamos botón derecho sobre MiPC y le damos a Propiedades, nos mostrará nuestro valores de registro que hemos introducido anteriormente.

cambiar-registered-owner-xp-4

 

Para Windows Vista/7

1) Pulsamos en inicio y escribimos regedit.

cambiar-registered-owner-vista7-1

2) En la lista que nos aparecerá, buscamos en Programas el icono del regedit, pulsamos botón derecho sobre él y escogemos “Ejecutar como administrador”.

cambiar-registered-owner-vista7-2

3) Navegamos hasta la clave del registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion y en el panel de la derecha editamos las claves RegisteredOwner y RegisteredOrganization de tipo REG_SZ (cadena de texto).

cambiar-registered-owner-vista7-3

4) Al contrario que en Windows XP, al cerrar el editor de registro ya se aplicarán los cambios, que podemos ver, por ejemplo, ejecutando el comando winver.

cambiar-registered-owner-vista7-4

Nota: En los equipos de 64bits, puede que también podáis cambiar las mismas claves en la ruta HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion

Disfrutad de vuestro Windows más personalizado! 😉

Visibilidad sin www mediante alias en dns bind9

Muy buenas a tod@s,

hoy os quiero hablar de un caso práctico que nos ha pasado en las últimas semanas y que creo que le debe pasar a más administradores de sitios web.

Pues bien, supongamos que tenemos un dominio llamado ospadial.com. Lo primero que queremos es que al poner en la barra de direcciones http://www.ospadial.com nos lleve a nuestra página web que, por ejemplo, está en el servidor 192.168.0.8 pues en bind es tan sencillo como hacer esto en el fichero /etc/bind/db.ospadial.com:

www                   IN       A        192.168.0.8

Con esto estaríamos publicando nuestra web en el servidor dns.

Ahora viene el caso práctico que os quería comentar es, que pasa si alguien pone en la barra de direcciones ospadial.com directamente sin www??????

Efectivamente, daría un error ya que no encontraría la página. Parece una tontería pero os sorprendería la de gente que ya utiliza la citada barra de este modo (sin poner www), supongo que es debido al auge de añadir directamente la búsqueda de google en dicha barra (Chrome).

Para solucionar esto y encaminar las peticiones a nuestra web (y de este modo no perderlas), deberíamos modificar el archivo /etc/bind/db.ospadial.com de este modo:

ospadial.com.     IN         A                   192.168.0.8

www                     IN         CNAME       ospadial.com.

(MUY IMPORTANTE QUE PONGÁIS EL PUNTO Y FINAL EN LAS DOS LÍNEAS)

Como podéis ver la solución parte por utilizar lo que en los dns se denomina ALIAS y que nos permitirá publicar varios servicios que apunten a la misma máquina y también buscarle solución a este caso práctico 😉

Espero que os ayude a los que como yo os rompáis en algún momento la cabeza con este tema.

Un saludo,

Como protegerse del ataque DoS HTTP Slowloris

slowloris

No te fíes de su inocente mirada.

Hace ya un tiempo que se están oyendo cosas sobre este script en perl para “tumbar” servidores Web Apache.

Es especialmente preocupante la facilidad de su uso y la cantidad de tutoriales que hay en la red para su uso, permitiendo a gente sin conocimientos, poner en jaque la disponibilidad de una dirección Web.

No vamos a entrar en discusiones sobre qué versiones de servidores están afectadas, ya que toda esa información podéis encontrarla en la Web de su creador: http://ha.ckers.org/slowloris/

En el caso que nos compete, queremos proteger nuestro servidor Apache2 contra este posible ataque, así que vamos a ir paso a paso:

Posibles soluciones:

  • Usar un balanceador de carga por hardware.
  • Usar iptables en el frontend para limitar las conexiones desde un mismo host.
  • Configurar la directiva timeout en la configuración de Apache.
  • Instalar un módulo “antiloris” que ya existe en SourceForge para blindar nuestro servidor.

En nuestro caso escogimos aplicar el módulo antiloris, y lo instalamos de la siguiente manera:

Nos situamos en nuestro home:

cd ~

Descargamos el módulo antiloris:

wget http://sourceforge.net/projects/mod-antiloris/files/mod_antiloris-0.4.tar.bz2

Descomprimimos el archivo:

tar -xvjf mod_antiloris-0.4.tar.bz2

Nos situamos en la carpeta del módulo que se ha creado al descomprimir:

cd mod_antiloris-04/

Finalmente, instalamos el módulo con el comando:

sudo apxs2 -a -i -c mod_antiloris.c

Muy importante! Si al ejecutar este comando, el sistema te avisa que no lo encuentra, es porque no tienes instalado el paquete necesario. En nuestro caso, lo primero que debimos comprobar es si nuestra instalación de Apache2 era worker o prefork.

Eso lo vemos con este comando:

apache2 -V

Y en la línea:

Architecture: 64-bit
Server MPM: Worker
threaded: yes (fixed thread count)
forked: yes (variable process count)

Vemos que es Worker.

Así que pare poder ejecutar el comando apsx2 primero deberemos instalar el paquete “apache2-threaded-dev” mediante la orden:

sudo apt-get install apache2-threaded-dev

Tras la instalación, simplemente ejecutaremos la orden “sudo apxs2 -a -i -c mod_antiloris.c” y el módulo se instalará indicándonos que deberemos reiniciar el servidor Apache para que se active. Esto se realiza mediante el comando:

sudo service apache2 restart

Y ya está!! Si todo ha salido bien, puedes realizar pruebas auto-atacándote con Slowloris y mirando si tu web está realmente caída con páginas tipo DownForEveryoneOrJustMe o IsItDownRightNow.

Espero que este tutorial os ayude a proteger de una forma sencilla vuestro servidor Apache de este ataque tan de moda para denegaciones de servicio.

Muerte a los script-kiddies!

Enlaces de interés: