Liberar espacio en /boot para instalar actualizaciones en Ubuntu 14.04

Hoy mi Ubuntu (14.04 LTS) me pedía una actualización, pero al intentar descargarla me avisaba de que no había espacio en /boot para descargarlas. No era la primera vez la verdad, ocurre cuando se acumulan viejas versiones del Kernel que se descargan para las actualizaciones y que ya no son necesarias. Si alguna vez os pasa podéis recurrir al terminal para «ahuecar» un poco de espacio, no es complicado para nada, basta con copiar las instrucciones que os dejo:

#Lo primero es coseguir permisos para ejecutar como root las instrucciones
sudo -i

#ahora toca ejecutar todo este churro
#básicamente creará un documento con todos los archivos de imagen viejos
#y luego lo recorrerá borrándolos
dpkg --get-selections|grep 'linux-image*'|awk '{print $1}'|egrep -v "linux-image-$(uname -r)|linux-image-generic" |while read n;do apt-get -y remove $n;done 

#y finalmente aplicamos el autolimpiado de apt-get
#para dejar bien limpia la caché
sudo apt-get autoclean

Cifrar nuestro tráfico con DNSCrypt

El cifrado del tráfico entre nuestro equipo y el ISP es una medida de seguridad que nos permitirá protegernos de ataques Man in the Middle, de intentos de espiar nuestras comunicaciones y dificultará al ISP la posibilidad de aplicarnos algunas restricciones (ahora que la neutralidad de la red está en peligro).

Nuestra solución segura será usar DNSCrypt, un software disponible para Windows, Linux, BSD, Android, iOS y OSX. Aquí nos ocuparemos de la instalación en Linux. Como no existe ningún paquete .deb, .rpm o repositorio que podamos utilizar para instalarlo nos tocará compilar el código fuente. Como paso previo, pues, tendremos que tener en el equipo los paquetes necesarios para instalar. En los linux de la familia Debian lo amañamos con un

sudo apt-get install build-essential

Luego tocará descargar la librería libsodium, una librería necesaria para la compilación:

tar -xvzf libsodium-0.5.0.tar.gz
cd libsodium-0.5.0
./configure
make

make check  ##esto verificará si está todo en orden

sudo make install

El siguiente paso es descargar ya el código de DNSCrypt, descomprimirlo y compilarlo

sudo ldconfig #necesitamos lanzar esta configuración primero

tar -xvzf dnscrypt-proxy-1.4.0.tar.gz
cd dnscrypt-proxy-1.4.0
./configure
make

sudo make install

Muy bien, DNSCrypt está instalado, lo siguiente es configurarlo. Nos vamos a editar nuestra conexión de red y en la configuración de IPv4 elegimos en el campo Método la opción Sólo direcciones automáticas (DHCP) y en el campo Servidores DNS ponemos la dirección 127.0.0.1 (si os da problemas al probarlo cambiad por, por ejemplo, 127.0.0.2). Después desde el terminal ejecutamos restart network-manager. Tras hacer esto nos quedaremos sin conexión a internet ya que hemos desconfigurado las DNS y hasta que no se ejecute DNSCrypt no volverán a estar funcionales. Por tanto, lo ejecutamos:

/usr/local/sbin/dnscrypt-proxy --daemonize --pidfile=/run/dnscrypt-proxy.pid --edns-payload-size=4096

Para comprobar que todo funciona prueba a entrar en http://www.opendns.com/welcome/ para ver que la conexión ha vuelto. Como ya dije arriba es posible que usando 127.0.0.1 falle, así que si os pasa matáis el proceso de DNSCrypt, cambiáis la IP por, por ejemplo, 127.0.0.2 y volvéis a lanzar DNSCrypt añadiendo esa dirección como parámetro tal que así:

/usr/local/sbin/dnscrypt-proxy --daemonize --pidfile=/run/dnscrypt-proxy.pid --edns-payload-size=4096 --local-address=127.0.0.2

Ahora vamos con un último paso ¿quieres que DNSCrypt se ejecute cada vez que iniciamos el sistema? Si estás en un sistema basado en Debian toca modificar el archivo /etc/rc.local y pegamos, justo antes de la instrucción exit 0 una de las siguientes líneas:

#en caso de que utilicéis la ip 127.0.0.1
exec /usr/local/sbin/dnscrypt-proxy --daemonize --pidfile=/run/dnscrypt-proxy.pid --edns-payload-size=4096

#en caso de la 127.0.0.2
exec /usr/local/sbin/dnscrypt-proxy --daemonize --pidfile=/run/dnscrypt-proxy.pid --edns-payload-size=4096 --local-address=127.0.0.2

En la documentación de DNSCrypt podéis leer más opciones sobre parámetros, resolución de problemas, cambiar OpenDNS por un DNS alternativo…

Ralentizando el acceso a determinadas páginas mediante Squid

Cuando uno administra una red corporativa se topa con algunos usuarios que hacen un uso inadecuado de la misma. No pasa nada porque de vez en cuando algún usuario entre a revisar si tiene un mail en su cuenta personal, un mensaje en facebook o a twittear una cosa, pero otros se tiran la mañana. Me se de alguno que usaba la red corporativa del hospital en el que trabajaba para descargarse gigas de discos de metalcore. Cuando la gente se pone a tirar de youtube, u otros servicios de vídeos o música, además puede consumirte bastante ancho de banda que podría ser necesario para otros menesteres.

Cortar completamente el acceso a estas webs es una solución, pero ¿es la mejor solución? Lo primero es que generará malestar en los trabajadores y mal rollo entre estos y el administrador, y sembrar discordias en un centro de trabajo nunca es una buena idea. Además ¿por qué castigar por igual al que mientras se toma el café de media mañana entra a colgar una foto de un gato jugando con un iPad que al que se ha tirado dos horas leyéndose de pe a pa la web de Marca? Hoy vamos a ver como usar las Delay Pools de Squid para solucionar esto.

Delay Pools nos permite ralentizar la velocidad de navegación de ciertos usuarios o hacia ciertos sitios (o ambas a la vez). Esto hará que el procastinador desista de su idea.

Como es obvio para poder hacer esto necesitamos que los usuarios naveguen por medio de un proxy, donde tendremos instalado Squid para controlar el tráfico y acceso a según qué páginas. Si has instalado Squid desde repositorio ya vendrá con soporte para Delay Pools, si ha sido una compilación propia entonces asegúrate de que lo tenga.

Con la instalación comprobada vamos al siguiente paso: en la carpeta /etc/squid/ (o /etc/squid3 si usas esa versión) creamos un archivo con la lista de todas las ip’s que queremos ralentizar, para el ejemplo el archivo se llamará «vaiamodo» (en gallego «ve despacio»).

Cuando tengamos el archivo con la lista de las ip a ralentizar tocará editar el archivo squid.conf, que te encontrarás dentro de /etc/squid/ (o /etc/squid3, repito, si usas esa versión) para hacer varias cosas:

Lo primero, crear una lista de control de acceso (acl) con el contenido de la lista de ip que hemos bautizado como vaiamodo, acl que llamaremos ralentizar. Luego establecemos el ancho de banda para el Delay Pools, que será de 1, que es el mínimo posible. Tras eso creamos una regla llamada capar que hará que las Delay Pools actúen sobre las url que coincidan con una expresión regular concreta (en este caso frenaremos varias webs populares y además todas las url que tengan la palabra «watch» ya que suele ir ligada a sitios donde ver vídeos). Finalmente ordenaremos que los usuarios de la primera regla vayan más lentos en la páginas definidas en la segunda. El ejemplo para Squid2 escrito es así:

acl ralentizar src "/etc/squid/vaiamodo"
delay_pools 1
delay_class 1 1
delay_parameters 1 1000/100
acl capar url_regex -i vimeo
acl capar url_regex -i watch?
acl capar url_regex -i youtube
acl capar url_regex -i youtu
acl capar url_regex -i facebook
acl capar url_regex -i twitter
acl capar url_regex -i marca

delay_access 1 allow capar ralentizar

Con esto haremos que su velocidad de conexión sea tan lenta que las páginas en cuestión sean innavegables para ellos porque cargarán a 1kbps.

Hay que tener en cuenta que podrías tener que cambiar algo en la configuración si ya estás usado control de navegación por listas blancas o si los usuarios en vez de por la ip acceden por LDAP o algún otro sistema de autentificación.

Rotar la pantalla en Windows

Un tip rápido ¿necesitas rotar tu pantalla en Windows?, puede que quieras colocar el monitor en una posición diferente a la normal y necesites que la pantalla se te vea bien. Tienes dos opciones simples para esto:

  1. Pulsas Ctrl+Alt+F12 a la vez y te abrirá el menú de configuración de la tarjeta gráfica. Ahí tienes una opción que se llama Rotación que te permitirá modificarla.
  2. Pulsando Ctrl+Alt+una de las flechas de navegación (la cruceta que tienes en el teclado con cuatro teclas en forma de flecha) la pantalla se gira. Si pulsas Ctrl+Alt+Flecha Abajo esta se pondrá bocajabo (180º), con Ctrl+Alt+Cursor Izquierda se rotará 90º, con Ctrl+Alt+Cursor Derecha 270º y con Ctrl+Alt+Cursor Arriba vuelve a la posición normal.

Script para automatizar backups de MySQL en servidores Windows

Aunque en servidores Windows lo más habitual es trabajar con el SQL-Server de Microsoft como SGBD a veces puede tocarnos instalar un MySQL. Entonces nos asalta la duda ¿cómo automatizo un backup de la base de datos? Una de las tareas más habituales de todo administrador.

En la instalación de la base de datos se os instalará el programa mysqldump.exe para la gestión de copias de seguridad. Este programa nos permite, por medio de la línea de comandos, realizar un backup de la base de datos. Con la siguiente sintaxis, a grosso modo, haréis la copia de seguridad:

mysqldump –u (TuUsuario) –p(password) (nombre_base_datos) > (nombreArchivo).sql

Dato importante: entre -u y el nombre de vuestro usuario hay un espacio, entre -p y el password NO. Para más información sobre este comando, podéis visitar el artículo pertinente en el manual de MySQL.

Podéis abrir con CMD un terminal de comandos, situaroes en vuestra carpeta de MySQL y, situándoos allí en la carpeta bin, ejecutar el comando con los parámetros que correspondan para comprobar su funcionamiento. Una vez visto que mysqldump funciona el siguiente paso es crear un script de batch (con la extensión .bat) que ejecute el comando incluyendo la fecha. Los backups los guardaremos en una carpeta llamada C:\backups, y a la hora de escribir el script os vale cualquier editor, mismo el Notepad (aunque yo suelo usar en Windows Notepad++):

echo off                                        
set FECHA= %date%
set FECHA=%FECHA:/=%
mysqldump -e -u root –p7j91lt0y articulos > C:\backups\backuparticulos%FECHA%.sql

NOTA:Edito porque esta semana me he topado con que en el PowerShell de Windows 2k12 no me estaba funcionado esa instrucción, y también me han comentado hoy que el script no funcionaba. Lo mejor es que probéis primero en el intérprete de comandos si funciona, y si os falla la de arriba podéis cambiar la sintaxis por esta:

mysqldump --user=root --password=7j91lt0y articulos > C:\backups\backuparticulos%FECHA%.sql

Con la primera instrucción desactivamos la salida por pantalla de la consola, luego recogemos la fecha actual, la formateamos y finalmente creamos el backup anexando a su nombre la fecha de la copia. En este ejemplo he usado el usario root, recordad siempre que el usuario que utilicéis debe tener permisos en la base de datos para realizar la copia de seguridad. Guardad este script en la carpeta bin de vuestra instalación de MySQL.

Pues ya tenemos el script listo, ejecutadlo con permisos de administrador para ver que funciona. Si os crea un archivo vacío es que algo falla, repasadlo (la sintaxis, la contraseña, el nombre, los permisos tanto en la bd como en el sistema operativo…). Ahora lo que nos queda es automatizar la ejecución del script para programar, por ejemplo, una copia diaria de la base de datos. Para eso os váis al menú de administración del servidor y creáis una tarea básica que ejecute el batch a diario a una hora predeterminada (a poder ser una hora con poca actividad para la base de datos). Para más ayuda con el tema de la automatización podéis visitar la web de Microsoft.

Aumentando el tiempo del timeout de FastCGI en IIS

El otro día comentaba que tuve que instalar GD (y un par de librerías más) en un servidor Windows con IIS para una instalación de PrestaShop. No fue la única modificación que tuve que hacer, a decir verdad. Al comenzar la instalación de PrestaShop se paraba en el 12% y daba un error creando las tablas. Ya había visto ese tipo de errores antes también en entornos Apache/Linux con alguna instalación de CMS: el proceso lleva demasiado tiempo y el servidor, por seguridad y optimizacion del rendimiento, cierra la conexión.

En el caso de PHP sobre IIS es la actividad fastCGI la que nos está fastidiando la instalación, así que debemos aumentar el tiempo de tiemout para poder acabar la instalación (luego ya lo volveremos a cambiar para asegurarnos el rendimiento del servidor).

Lo primero es lanzar el terminal de línea de comandos e ir a la carpeta c:\Windows\System32\inetsrv . Una vez allí si ejecutamos C:\Windows\System32\inetsrv>appcmd list config -section:system.webServer/fastCgi veremos los datos con la configuración de fastCGI.

Basta un solo comando para cambiar esa configuración, y vamos a poner una hora para ir sobrados de tiempo. Para este ejemplo vamos a suponer que nuestra instalación de php está en la carpeta C:\Program Files\PHP\v5.3\, como era en mi caso. En el vuestro cambiad esta ruta por la que corresponda.

C:\Windows\System32\inetsrv>appcmd set config -section:system.webServer/fastCgi "-[fullPath='C:\Program Files\PHP\v5.3\php-cgi.exe'].activityTimeout:3600"

Si todo va bien recibirás un mensaje tipo:

Applied configuration changes to section «system.webServer/fastCgi» for «MACHINE/WEBROOT/APPHOST» at configuration commit path «MACHINE/WEBROOT/APPHOST»

Tras eso basta con reiniciar el servicio y ya podrás seguir. Al acabar con la tarea que requiere tiempo extra lo recomendable sería volver a reducir el timeout de fastCGI.

Ubuntu Studio 14.04: Grabación y edición con software libre

No es la primera vez que Ubuntu Studio llega a estas páginas, ya hablamos en su día de la anterior versión LTS, y la pasada semana nos llegó la última revisión de esta distribución orientada a la grabación, edición de audio, vídeo, fotografía o maquetación.

Una de las cosas buenas del software libre es que permite la proliferación de sistemas operativos específicos para una actividad, como es el caso de este Ubuntu Studio. Y no sólo por venir con una serie de drivers y software específico para esos trabajos (cosa que podríamos instalar en cualquier otro equipo con un Ubuntu normal)  sino por peculiaridades propias como el kernel de baja latencia (si no sabes lo que es, desde Usemos Linux te lo explican muy bien) o su ligero pero elegante escritorio inspirado en XFCE.

Pero vamos con el software ¿Qué nos trae «de serie» esta nueva versión de Ubuntu Studio?

Pues en el terreno el servidor de audio de baja latencia Jack, la estación de trabajo con audio digital Ardour, el editor Audacity (con el que grabo mi podcast), el sintetizador Yoshimi, la caja de ritmos Hydrogen, el secuenciador MIDI/estación de trabajo Qtractor o el previo de guitarra Rakarrack.

Para temas de diseño trae el software de modelado 3D Blender, el editor de gráficos vectoriales Inkscape,  el sofware de manipulación de imágenes y fotografías GIMP y la herramienta de dibujo orientada a tabletas táctiles MyPaint. Y en temas de fotografía nos encontramos con el cuarto de revelado virtual Darktable, para trabajar con archivos en formato RAW, y el software Shotwell para gestionar y organizar tus colecciones.

Para el tema del vídeo nos encontramos el sencillo editor OpenShot, el programa DVDStyler para crear menús, subtítulos, audios múltiples y demás opciones típicas del formato DVD y el framework FFMPEG.

Y terminamos con el tema de edición y maquetación, donde vienen los populares Calibre, Scribus y, como no, la suite ofimática Libre Office.

Ubuntu Studio sigue presentándose como una gran opción para hacerte un estudio casero totalmente basado en software libre, sin olvidar que podemos complementarlo con mucho más software que pudiéramos necesitar y que tiene unos requisitos de hardware relativamente bajos para el trabajo que vamos a desempeñar.

 

Instalando la librería GD de php en IIS

Esta mañana preparaba una instalación de Prestashop en un servidor Windows. Ya había hecho varias en el pasado, pero siempre en entornos Apache-Linux, jamás en Windows con IIS. Supuse que no podría ser muy distinto.

La primera en la frente: PrestaShop me pide la librería de funciones de imágenes GD en el servidor, (y un par más, pero el procedimiento es el mismo) que no está instalada. ¿Qué toca?

Lo primero, abrir el php.ini, buscar la línea ;extension=php_gd2.dll y quitarle el ; para descomentarla. Si por lo que fuera esa línea no existe simplemente la metéis a mano. Luego o hacéis una copia del php.ini en la carpeta C:\Windows o creáis un enlace simbólico desde allí al archivo, cualquiera de las dos opciones vale.

Siguiente paso: dentro de la carpeta PHP buscáis la carpeta ext y allí mirad si está el archivo php_gd2.dll y, en caso afirmativo, lo copiáis al mismo directorio en el que tenéis el php.ini. En caso de que no esté allí (mirad bien, debería estar) debéis descargarla.

Tras estos sencillos pasos ya tenéis GD instalada en vuestro servidor PHP Windows con IIS.

Instalando Google Web Designer en Linux

Hará cosa de un año Google nos sorprendió con una herramienta de diseño web en fase beta: Google Web Designer. Un editor WYSIWYG muy potente, gratuito (al menos de momento), orientado hacia diseñadores, pensado para sacar todo el jugo de HTML5 y CSS3 (diseño responsivo, animaciones, aceleración 3D) y a su vez ser sencillo. Y, al igual que hicieron con Google Drive, se olvidaron de los usuarios de Linux.

Google-Web-Designer

Lo curioso es que se preguntó al director de proyecto alguna vez que qué pasaba con los Linuxeros y la respuesta fue más sorprendente: sí existía una versión para linux que además se usaba internamente en la empresa, pero tenía diferencias respecto a la que salió para Mac y Windows, por lo que no la sacaban. Al final, tras mucha presión por la comunidad, anunciaron que sí sacarían la versión para Linux.

Y ya la tenemos.

¿Cómo la instalamos? Sencillo: Vamos a la web del proyecto y desde allí descargamos el archivo .deb que mejor vaya con la distribución de Linux con la que trabajemos, lo ejecutamos con nuestro instalador de paquetes y… listo. Ya está, todo muy fácil… ¿o no?

Pues voy a ser jodón, pero no. Si fuera tan fácil no haría una entrada en el blog. Resulta que de momento hay un bug con la carga del idioma, si vuestro sistema no está en inglés Google Web Designer sólo muestra una ventana negra y no carga, no funciona. Por suerte por los foros oficiales ya existe una solución, que os obligará a tirar de consola (hasta que no salga una actualización/parche al menos)

#Lo primero es cargarnos la configuración por defecto tecleando:
sudo rm -r .local/share/google-web-designer

#y ya podemos lanzar web designer desde la consola, forzando que lo haga en inglés, con el siguiente comando
LANGUAGE=en_US google-webdesigner

Ahora sí, con esto ya tenéis funcionando Google Web Designer en vuestro equipo con Linux. Esperemos que dentro de poco la gente de Mountain View se apure a sacar o traducciones o al menos un parche que evite este molesto bug.

Solucionar fallo MsMpEng.exe en Windows

No estoy seguro de si tiene que ver con el abandono de soporte de Windows XP, pero esta mañana ya han llamado tres clientes que usan ese sistema operativo con el mismo fallo. Les aparece un error que dice:

MsMpEng.exe – Error de aplicación

La instrucción en “0x5a4d684d” hace referencia a la memoria “0×00000000″. La memoria no se puede “read”.

Tras esto el equipo se les queda bloqueado y no pueden continuar. Tranquilos, tiene solución.

Lo primero es reiniciar el equipo y pulsar F8 durante el arranque para entrar en el modo seguro (o modo a prueba de fallos). Una vez arrancado en este modo no saldrá el error, que es provocado por el Microsoft Security Essentials. En el menú de inicio pulsáis Ejecutar y lanzáis services.msc, para desde esa aplicación desactivar Microsoft Antimalware Service. Con esto desactivado reiniciáis el equipo.

En este reinicio no debería saliros ya ningún mensaje de error, así que os vais al Panel de Control, a la sección de Agregar/Quitar programas, buscáis Microsoft Security Essentials y lo desinstaláis. Esto os dejará sin antivirus, así que buscad alguno que todavía tenga soporte para Windows XP, mismamente el Avira.