Cerrar todos PIDs de Chromium desde terminal

BASH
BASH

 

motivación

En ocasiones el navegador chromium (sobre Elementary OS) no funciona todo lo bien que debiera y se queda un poco bastante tostado. En estos momentos y teniendo una sesión de terminal abierta, no es necesario abrir ningún otro programa para matar todos los procesos relacionados. Leer más Cerrar todos PIDs de Chromium desde terminal

Filtrado Web en EdgeMAX de Ubiquiti. squid + squidGuard

EdgeMAX
EdgeMAX de UBIQUITI

Uno de los servicios que nos ofrece la gama de dispositivos EdgeMAX de Ubiquiti, es el de filtrado web. Se utiliza un servidor proxy (Squid) más un “URL redirector” (squidGuard) que trabaja junto a éste.

Hasta la fecha no es posible usar la GUI y hay que ponerse manos a la obra desde la línea de comandos.

Primero es necesario activar el servicio webproxy.

ubnt@edge:~$ configure
ubnt@edge# set service webproxy

A continuación, es necesario configurar la dirección IP por la que el router escucha las peticiones de la red local.

ubnt@edge# set service webproxy listen-address 192.168.1.254

Para pasar a los siguientes pasos es necesario activar y guardar.

ubnt@edge# commit
ubnt@edge# save

Una vez activado el servicio y con la configuración básica, se pasa a descargar las listas negras que puede usar el servicio. Para bajar las listas se tiene que salir de configuración y ejecutar el siguiente comando.

ubnt@edge:~$ update webproxy blacklists
Would you like to re-download the blacklist? [confirm][y]
######################################################################## 100.0%
Uncompressing blacklist...
Checking permissions...
Skip link for   [ads] -> [publicite]
Building DB for [adult/domains] - 1053611 entries

.... ojo que tarda un buen rato.

Leer más Filtrado Web en EdgeMAX de Ubiquiti. squid + squidGuard

Instalación de UniFi Controller for Linux desde un .deb

ubiquiti uap

 

 

 

 

La familia wifi UniFi de Ubiquiti permite desplegar una infraestructura wifi de una forma sencilla y relativamente económica. Lo consigue en parte al carecer de un hardware dedicado para la administración y en su lugar utilizan software. El software se puede instalar en distintas plataformas entre las cuales está linux.

Para la instalación de linux es necesario utilizar un .deb que está disponible en la web de Ubiquiti. Leer más Instalación de UniFi Controller for Linux desde un .deb

Encendido apagado de disco duro externo con Raspberry Pi II

openelec
openelec

 

 

Encendido apagado de disco duro externo con Raspberry Pi I

Una vez que la parte física está finalizada y probada con unos sencillos comandos, es el momento de hacer el uso del disco lo más sencillo posible.

El disco duro está conectado a un Raspberry Pi que tiene OpenElec instalado. OpenElec monta el sistema en “Read Only”, de manera que se hace complicada la modificación de la configuración. Para solucionar este contratiempo, utilizo otro Raspberry Pi, desde el cual le mandaré los comandos básicos ya explicados. Este Raspberry Pi (en adelante DomoPi) tiene instalado https://www.raspbian.org/.

En primer lugar voy a intentar gestionar el funcionamiento del sistema desde una pequeña web alojada en DomoPi. La idea es que desde la web se lance con un exec las ordenes a través de ssh. Para ello, es necesario mandar órdenes vía ssh y que no se solicite contraseña por parte del Raspberry Pi con OpenElec.

Para que no se pida la contraseña se deben realizar varios pasos:

  1. Generación de una llave RSA. Hay que tener en cuenta que el login se hace desde el usuario de nginx y por tanto este y los siguientes comandos tienen que lanzarse con esta identidad.
  2. Copiado de la llave pública en la máquina destino.
  3. A partir de este momento ya no se solicita contraseña.

Leer más Encendido apagado de disco duro externo con Raspberry Pi II

Encendido apagado de disco duro externo con Raspberry Pi I

openelec
OpenElec

Como ya va siendo hora de actualizar la fantástica smart tv, he aprovechado las entradas / salidas que proporciona Raspberry Pi para poder gestionar el encendido del disco duro que tiene asociado.

La idea es poder encender de manera remota el disco duro y ahorrar en consumo eléctrico y en desgaste de disco. Claro está, también es posible apagarlo después de su uso.

Para conseguir esta utilidad he extraído la fuente de alimentación original de la caja externa y la he colocado en otra caja más grande donde también he ubicado una pequeña placa que incluye un relé. La placa además del relé incluye ciertos elementos electrónicos que le dotan de las oportunas protecciones. Lo podéis encontrar en múltiples tiendas online, por ejemplo. Para los que no tengan mucha idea de electrónica (como es mi caso), con esta placa se puede abrir o cerrar un circuito dependiendo del estado de unas entradas.

A continuación unas imágenes para explicar mejor el proceso. En las tres primeras, se puede ver la nueva caja para el trasformador donde queda un hueco para poner el relé. También se aprecian las conexiones del la placa del relé.

Resumiendo, la fuente de alimentación proporciona 3 hilos, uno con una tensión de +5v, otro de +12v y uno común de 0v. Tanto el de +5v como el de +12v se conecta a una ficha que a su vez conecta con la caja del disco. Pero en el caso del cable de 0v (negro) lo llevo al relé al borne com. En el relé existen 2 conexiones más en este lado; una etiquetada como NO y otra NC. Hay que elegir una de estas dos para conectarla ya al disco duro. Si se escoge NO (normalmente abierto) el circuito permanece abierto de manera predeterminada y escogiendo NC el circuito estará cerrado.

En la otra parte del relé, se encuentra la alimentación de la placa y la entrada para gestionar el relé. En concreto, el borne VCC con una tensión de +5v, el de 0v y el contacto “in” donde yo he conectado el gpio23 que se encuentra en el pin16. Leer más Encendido apagado de disco duro externo con Raspberry Pi I

Cómo reemplazar cadenas en vi o vim

vi vim
Vim – the editor

 

vi – vim genera controvertidas opiniones, pero el caso es que al final siempre se acaba usando en alguna máquina y algunas cosas tan sencillas como una sustitución se acaban empleando en numerosas ocasiones.

Como siempre en vi – vim existen muchos caminos para llegar a un mismo destino. Yo en particular para sustituir una cadena por otra siempre empleo:

:%s/texto_a_sustituir/texto_nuevo/g

Sencillo, no?

Proteger wordpress con Latch

LATCH

 

 

Latch es un servicio de ElevenPaths que te permite implementar un pestillo de seguridad en tus servicios online. Funciona de manera que aunque alguien conozca tu contraseña para un servicio, si tienes el pestillo cerrado no le permitirá el acceso.

La puesta en marcha no supone excesivo esfuerzo aunque es necesario seguir unos pasos. Esta información está descrita en la propia web de ElevenPaths. Resumiendo:

  1. Darse de alta en la web como desarrollador y logarse.
  2. Elegir una subscripción. Existe una gratuita con limitaciones en el número de aplicaciones a proteger.
  3. Descargarse el plugin para wordpress e instalarlo.
  4. Configurar el plugin en el panel administrativo de wordpress.

 

También es posible instalar el plugin desde el propio panel de administración.

Descargando el archivo de instalación de https://downloads.wordpress.org/plugin/latch.2.1.zip…

Descomprimiendo…

Instalando el plugin…

El plugin latch 2.1 se ha instalado correctamente.

Activar plugin | Volver al instalador de plugins

Asegúrate de dejar activado el plugin y una vez activo es necesario configurarlo:

Ajustes Latch

Ajustes globales

Introduzca los datos generados al registrar la aplicación en Latch:
ID de aplicación	El Id configurado en la web de latch
Secreto	El secreto
API URL	La URL

Guardar cambios

Ahora es necesario ir a la configuración del usuario y añadir el token que se genera en el móvil. A partir de ese momento el móvil está pareado con la aplicación de latch, y es posible bloquear / desbloquear el acceso.

 

Autenticación ldap / AD de windows para nagios

Nagios

En el caso de que nagios se encuentre en una red que disponga de un directorio, es muy recomendable hacer uso de éste para utilizar los usuarios que contiene. Es muy común que el directorio existente sea un Active Directory (AD) de windows, por lo que os describo la configuración de apache2 para que se realice la autenticación ldap.

Es necesario tener instalados y activos los siguientes módulos relacionados con ldap:

authnz_external.load
authnz_ldap.load
ldap.conf
ldap.load

En mi caso me faltaba tener instalado el módulo libapache2-mod-authnz-external.

apt-get install libapache2-mod-authnz-external

Y la configuración es:

<VirtualHost tu_ip:80>
ServerName tu_web.com
ServerAlias tu_web.com
Redirect permanent / https://tu_web.com/
</VirtualHost>

<VirtualHost tu_ip:443>

SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl.crt
SSLCertificateKeyFile /etc/ssl/certs/ssl.key

DocumentRoot "/usr/local/nagios/share"

ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin
ScriptAlias /cgi-bin/nagios /usr/local/nagios/sbin

Alias /nagios "/usr/local/nagios/share"
Alias /wol "/var/www/wol"

<DirectoryMatch (/usr/local/nagios/share|/usr/local/nagios/sbin)>
AuthType Basic
AuthName "Nagios Access"
AuthBasicProvider ldap
# Incluir usuario con permisos en el directorio
AuthLDAPBindDN "CN=usuario,OU=Usuarios,DC=tu_dominio,DC=com"
AuthLDAPBindPassword "pass_usuario"
# URL ldap
AuthLDAPURL "ldap://ip_del_controlador_de_dominio:389/OU=Usuarios,DC=tu_dominio,DC=com?sAMAccountName?sub?(objectClass=user)"
AuthUserFile "/dev/null"

SSLRequireSSL
require valid-user

Options FollowSymLinks
DirectoryIndex index.php
AllowOverride AuthConfig
Order Allow,Deny
Allow From All
</DirectoryMatch>

CustomLog /var/log/apache2/nagios.log combined
ErrorLog /var/log/apache2/nagios.error.log

</VirtualHost>

Consigue una smart tv con tu raspberry pi y openelec

openelec

Ya comenté que raspberry pi puede comportarse como un reproductor multimedia gracias a diferentes distribuciones. Yo en mi caso utilizo la distribución openelec que funciona aceptablemente además de actualizarse con bastante asiduidad.

Si además aprovechamos el discreto tamaño de raspberry pi podemos conseguir un magnifico smart tv, a partir de un televisor convencional. Y si no quieres gastarte más dinero del que cuesta el propio raspberry pi pues puedes hacer algo como lo que puedes ver en la siguiente imagen.  Atención al soporte – 2 tornillos junto a unos alambres – !!!

smart tv con raspberry pi
smart tv con raspberry pi

 

Error al editar las relaciones de los módulos de SugarCRM

Es curioso como se encuentran problemas en productos tan maduros como SugarCRM. El caso es que por lo menos en la versión 6.5.21 recién instalada no es posible visualizar o modificar las relaciones de varios módulos.

 

Por suerte está disponible el log de la aplicación, donde se puede incluso hacer un tail para ver los errores según se generen.

tail -f sugarcrm.log

Failed to load original or custom subpanel data for kbdocuments in modules/KBDocuments/metadata/subpanels/default.php

Buscando por el módulo y afinando las búsquedas …

fgrep -r "'kbdocuments' => array" *

Que devuelve entre otras ocurrencias una al fichero subpaneldefs.php del modulo “Cases”. Es necesario editarlo y comentar la relación.

vi modules/Cases/metadata/subpaneldefs.php

#'kbdocuments' => array(
# 'order' => 20,
# 'module' => 'KBDocuments',
# 'subpanel_name' => 'default',
# 'sort_order' => 'desc',
# 'sort_by' => 'name',
# 'title_key' => 'LBL_KBDOCUMENTS_SUBPANEL_TITLE',
# 'get_subpanel_data' => 'kbdocuments',
# 'top_buttons' => array(
# array('widget_class' => 'SubPanelTopCreateButton'),
# array('widget_class' => 'SubPanelTopSelectButton'),
# ),
#),

Realizar una “Reparación y Reconstrucción Rápida” y ya es posible realizar las modificaciones en el Studio.