Kernels nuevos en Debian Buster

Continuando con la serie de posts con versiones estables, en este artículo publico la última versión disponible del kernel de Linux, compilada, empaquetada y fácilmente instalable como .deb sobre cualquier sistema Debian GNU/Linux 10 Buster de 64 bits sin quilombo de dependencias.

En cada directorio encontrarán los paquetes con la imagen del kernel, los encabezados, el changelog y la configuración utilizada en la compilación, que está basada en la publicada de Debian.

Si les interesa saber qué hay de nuevo, les dejo el link al post sobre novedades del kernel en Phoronix y el clásico resumen hecho por la gente de KernelNewbies.

A medida que vayan saliendo nuevas versiones iré actualizando este pequeño “repositorio” para mantenerlo al día.

Kernel with KPTI and full Retpoline for Debian Stretch

Durante enero salieron a la luz –al menos para nosotros, simples mortales– las vulnerabilidades meltdown y spectre, que ya son ampliamente conocidas. Las mitigaciones tardaron en aparecer –y aún están trabajando en ello–, pero teniendo en cuenta que los bugs ya están siendo aprovechados in the wild, conviene tener a mano algunos parches para zafar.

Por ello aquí dejo el último kernel con los parches KPTI y full Retpoline, construido con un compilador compatible con -mindirect-branch, para ser instalado directamente sobre Debian GNU/Linux 9 Stretch:

Kernels nuevos en Debian Stretch

Actualización 2019: Este post ha quedado obsoleto. En Kernels nuevos en Debian Buster encontrarán núcleos compilados para la nueva versión estable de Debian.

Continuando con la serie de posts con versiones estables del kernel de Linux, dejo disponible la última versión que compilé en casa. Todas estas son directamente instalables sobre Debian GNU/Linux 9.0 Stretch de 64 bits sin quilombo de dependencias. Cada directorio contiene los paquetes con la imagen del kernel, los encabezados y la configuración utilizada en la compilación.

Si les interesa saber qué hay de nuevo, les dejo el link al post sobre novedades del kernel en Phoronix y el clásico resumen hecho por la gente de KernelNewbies.


Post instalación Debian GNU/Linux 9 (Stretch)

Más o menos cada dos años (aunque debería decir “when ready“) sale una nueva versión de la rama estable de Debian, y así fue el caso en junio del corriente, pues liberaron Debian 9 “Stretch”.
Para continuar la secuencia de recomendaciones post-instalación que inició con un post de Tomás, es buen momento de llevar mi humilde sugerencia de paquetes para obtener un escritorio usable en esta última versión.

Haciendo un copy-paste del post previo, éste tiene dos destinatarios principales:

  • para el que quiera tener una instalación de debian stretch (estable) usable, vale decir, con algunas aplicaciones más modernas que las que trae por defecto pero tratando de no salir demasiado de los repos oficiales;
  • y para mí, para no perder tiempo haciendo memoria en el caso de tener que reinstalar el sistema.

Y en la constante búsqueda de comodidad digital, cambio nuevamente de entorno de escritorio. Ahora el elegido es Cinnamon (las veces anteriores fueron GNOME y KDE) por tres cuestiones principales:

  • en primer lugar -y fundamentalmente- porque el explorador de archivos Nemo tiene árbol de directorios. Nautilus no lo tiene y eso lo hace inutilizable;
  • en segundo lugar, porque el entorno es estéticamente agradable y razonablemente liviano;
  • y finalmente, porque a diferencia de Mate, está hecho con GTK3 e integra adecuadamente la mayoría de las aplicaciones de escritorio.

Podría haber seguido utilizando KDE, la verdad es que está muy bien armado también, pero me di cuenta que sigo utilizando aplicaciones gtk (gedit, evince, meld) y pareció razonable el cambio.

Bueno, sin mas charla, vamos a lo que nos trae.

Paso 1

Esta instalación ocupará al menos 6 GB, por lo que tengan en cuenta cuanto desean dejar libre para los directorios de usuario y para el crecimiento/mantenimiento del sistema. Para comenzar, partimos de la instalación base de Debian Stretch. Para que se den una idea, hay que seguir la instalación tradicional y cuando presenta el uso que se dará (escritorio, servidor, etc) desmarcar todas las opciones y continuar normalmente.

Paso 2

Una vez instalado y hecho el primer arranque, luego de iniciar sesión lo que suelo hacer al toque es deshabilitar la opción de instalación de paquetes recomendados, puesto que pocas veces son necesarios y además engordan sobremanera el espacio ocupado por el sistema. Para ello basta con ejecutar la línea siguiente para que las próximas instalaciones eviten instalarlos.

echo "APT::Install-Recommends \"false\";" > \
    /etc/apt/apt.conf.d/90-powerup-disable-recommends.conf

Paso 3

Luego, sólo si están detrás de un proxy, hay varias formas de configurarlo: puede ser globalmente mediante las variables de entorno http_proxy y https_proxy o bien mediante la configuración de APT para aquellos casos donde dispongan de un servidor de caché como APT-Cacher. Por ejemplo:

PROXY="http://proxy.miorganizacion.com.ar:8080/"
export http_proxy=$PROXY
export https_proxy=$PROXY
echo "Acquire::http::Proxy \"$PROXY\";" > /etc/apt/apt.conf.d/90-powerup-proxy.conf

Paso 4

Verificar que están configurados los repositorios oficiales de la distribución. Para ello, el archivo /etc/apt/sources.list debería listar, al menos, los siguientes:

deb http://debian.unnoba.edu.ar/debian/ stretch main contrib non-free
deb http://security.debian.org/debian-security/ stretch/updates main contrib non-free
deb http://debian.unnoba.edu.ar/debian/ stretch-updates main contrib non-free
deb http://deb.debian.org/debian/ stretch-backports main contrib non-free

Aquí utilizo el mirror que cordialmente provee la UNNOBA pues gracias a la Asociación Redes de Interconexión Universitaria estamos a pocos saltos de distancia. Traten de no atosigarla de peticiones o utilicen cualquier otro de los mirrors listados oficialmente.

Paso 5

Agregar repositorios externos (no oficiales) que contienen software útil. Este paso es un tanto complejo pues a partir de Stretch es necesario incorporar las claves públicas para poder descargar software adicional. Además, algunas aplicaciones sólo están disponibles para arquitectura de 64 bits. Desde luego, tengan en cuenta que adicionar un repositorio no oficial implica confiar en lo que sus administradores publiquen allí.

Paso 5.1. Paquetes requeridos para las operaciones posteriores

apt install apt-transport-https ca-certificates gnupg wget

Paso 5.2. Instalar las claves públicas de los repositorios

El nombre final indica qué aplicación contiene cada repositorio. Las claves deben alojarse en el directorio siguiente:

cd /etc/apt/trusted.gpg.d/
wget -q https://dl.google.com/linux/linux_signing_key.pub -O- | gpg --dearmor > google-chrome.gpg
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | gpg --dearmor > vscode.gpg
wget -q "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xFC918B335044912E" -O- | gpg --dearmor > dropbox.gpg
wget -q "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xA87FF9DF48BF1C90" -O- | gpg --dearmor > spotify.gpg
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | gpg --dearmor > virtualbox.gpg

Paso 5.3. Definir los repositorios externos

Van todos en el directorio siguiente:

cd /etc/apt/sources.list.d/
# software solo disponible para amd64
echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > google-chrome.list
echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > vscode.list
# software disponible para i386 y amd64
echo "deb [arch=i386,amd64] http://linux.dropbox.com/debian sid main" > dropbox.list
echo "deb http://repository.spotify.com stable non-free" > spotify.list
echo "deb http://download.virtualbox.org/virtualbox/debian stretch contrib" > virtualbox.list

Paso 6

Clásico: actualizar la lista de paquetes. Utilizaremos apt en vez de apt-get sólo por cuestión de gusto. Ustedes utilicen el que prefieran.

apt update

Paso 7

Instalar un entorno gráfico. Para la interfaz gráfica hay varios metapaquetes que se corresponden a cada entorno de escritorio: para Cinnamon instalaremos task-cinnamon-desktop; para KDE, instalen kde-plasma-desktop; para GNOME supongo que gnome-core alcanza (no lo sé con certeza); para XFCE instalen xfce4; para LXQT (lo que antes era LXDE) instalen lxqt; y para Mate el paquete mate-desktop-environment . Si alguno quedó afuera me avisan.

Tengo entendido que para placas GPU AMD/ATI ya no es necesario ningún driver privativo, pues el driver open-source Radeon alcanza, pero eventualmente podría ser necesario para placas GPU nVidia, donde el paquete a instalar es xserver-xorg-video-nvidia o alguno de los drivers que aparecen con el nombre nvidia-legacy. Si tienen un chipset Intel, con lo que viene por defecto suele alcanzar.

Sobre el entorno gráfico, como comentaba al inicio del artículo, mi recomendación esta vez es utilizar Cinnamon, pero instalo Openbox también pues suele ser útil para casos de urgencia. Los demás componentes de nombre extraño son bibliotecas que evitan que Cinnamon arroje advertencias o aplicaciones que se prefieren antes de las que vendrían por defecto.

apt install xorg lightdm mesa-utils openbox xserver-xorg-input-all \
    xserver-xorg-input-synaptics

apt install task-cinnamon-desktop cinnamon-l10n desktop-base \
    gir1.2-gtop-2.0 gir1.2-nmgtk-1.0 network-manager-gnome \
    pulseaudio firefox-esr firefox-esr-l10n-es-ar thunderbird \
    thunderbird-l10n-es-ar

Superpaso 8

Instalar paquetes desde los repositorios oficiales. Como en la línea anterior, cada paquete está enlazado a su descripción en el sitio de Debian.

Paso 8.1. Controladores y servicios útiles

apt install acpi-support amd64-microcode cifs-utils dkms fail2ban \
    intel-microcode ntfs-3g ssh unattended-upgrades uptimed

Paso 8.2. Herramientas útiles de línea de comando

apt install acpi alsa-utils aptitude buku bash-completion clamav \
    curl deborphan dialog ffmpeg file fish flac hexedit htop \
    iotop imagemagick iptraf-ng irqbalance jmtpfs less lftp \
    livestreamer manpages markdown mc mlocate nano \
    netcat-openbsd nethogs nmap p7zip-full pv pxz qemu-kvm \
    screen smbclient sshfs tcpdump trickle tshark unrar unzip \
    vbindiff w3m wavemon wget youtube-dl zip

Paso 8.3. Lenguajes de programación, herramientas y documentación

apt install build-essential git git-doc git-man idle3 ipython3 \
    pylint3 python3 python3-doc sqlite3 sqlite3-doc

Paso 8.4. Programas gráficos para fines variados (editores, reproductores, etc)

apt install default-jre filezilla fslint gufw hardinfo keepassx \
    mpv pavucontrol sound-theme-freedesktop sqlitebrowser \
    synaptic vlc wireshark-gtk xdg-user-dirs-gtk xterm

apt install baobab blueman brasero cheese gnome-font-viewer \
    gnome-system-monitor gnote gvfs-backends gvfs-fuse \
    nemo-fileroller rhythmbox transmission-gtk audacious \
    file-roller gedit-plugins ghex gimp gksu gucharmap leafpad \
    meld sound-juicer 

Paso 8.5. Soporte y drivers para impresoras

apt install cups cups-browsed foomatic-db-compressed-ppds \
    foomatic-db-engine openprinting-ppds printer-driver-cups-pdf \
    system-config-printer system-config-printer-udev

Paso 8.6. Iconos y temas de escritorio

apt install arc-theme breeze-icon-theme clearlooks-phenix-theme \
    faba-icon-theme gnome-colors lxde-icon-theme mate-icon-theme \
    mate-icon-theme-faenza tango-icon-theme

Paso 8.7. Versión más moderna del kernel (4.17) y encabezados

Reemplacen amd64 por i386 si su arquitectura es de 32 bits. La primera línea instala la versión de kernel de Estable. La segunda línea (que dice stretch-backports) instala adicionalmente una versión más moderna.

apt install firmware-linux linux-headers-amd64 linux-image-amd64 \
    linux-doc
apt -t stretch-backports install firmware-linux \
    linux-headers-amd64 linux-image-amd64 linux-doc

Paso 8.8. Versión más moderna de la suite LibreOffice (6.1)

apt -t stretch-backports install libreoffice \
    libreoffice-help-es libreoffice-l10n-es \
    libreoffice-gtk3 hunspell-es \
    libreoffice-style-breeze libreoffice-style-sifr \
    libreoffice-style-tango libreoffice-gnome \
    libreoffice-style-colibre \
    libreoffice-style-elementary

Paso 8.9. Firefox más moderno

Omitido pues la que viene por defecto (ERS 52) es una versión bastante moderna.

Paso 8.10. Tipografías

apt install fonts-cantarell fonts-croscore fonts-crosextra-caladea \
    fonts-crosextra-carlito fonts-dejavu fonts-dkg-handwriting \
    fonts-awesome fonts-humor-sans fonts-liberation fonts-noto \
    fonts-oxygen fonts-roboto

Paso 9

Instalar paquetes desde repositorios externos.

apt install dropbox spotify-client virtualbox-5.2

Las aplicaciones siguientes sólo están disponibles en versión de 64 bits, por lo que si su arquitectura es 32… lo siento…

apt install code google-chrome-stable

Con eso queda listo prácticamente todo lo que proviene por fuera de Debian. Lo único queda pendiente es PyCharm, que como no tiene paquete disponible hay que bajarse el comprimido y alojarlo donde crean conveniente.

Paso 10

Listo, con eso les queda un sistema operativo, a mi juicio, casi perfecto.

El tema de escritorio de las capturas es Arc Darker, el conjunto de iconos es Gnome Wine y fuentes son Noto Sans UI Regular en su mayoría.

Todo lo documentado aquí está disponible en un sencillo script que instala Cinnamon y ejecuta todos estos pasos de un saque. Lo dejo disponible por si les sirve: stretch-powerup.sh (20180802)

Algunos consejos adicionales:

  • Para iniciar un programa rápidamente, usen la tecla Win y escriban parte del nombre. Alt+F2 también funciona, pero no tiene autocompletado.
  • La fuente Noto tiene un montón de variantes para distintos idiomas y por ello los cuadros de dialogo de selección de fuente se hacen eternos. Como usualmente uno sólo utiliza los alfabetos latinos, es posible desactivar aquellas fuentes que no se utilizan y reducir el listado. Para ello, descarguen este archivo 95-powerup-restrict-noto.conf y guardenlo en el directorio /etc/fonts/conf.d/
  • Para tener la tipografía clásica en las terminales Fx, ejecuten dpkg-reconfigure console-setup y en “Tipo de letra para la consola” seleccionen “No cambie la tipografía del arranque”.

Falta un paso adicional (súmamente útil) para mejorar toda la tipografía del sistema, pero eso queda para el post del mes que viene. Mientras tanto, si me olvido de algo, o ven algo que sobra, abajo están los comentarios…

WireGuard, una VPN rápida, moderna y (esperemos) segura

Desde su presentación hace unas semanas atrás le estoy siguiendo el hilo a la nueva implementación de túnel VPN denominada WireGuard que, básicamente, y copypasteando el marketing de su sitio web,

WireGuard es una VPN extremadamente sencilla, aunque rápida y moderna que utiliza técnicas de criptografía avanzadas. Apunta a ser más rápida, más simple, más reducida y más útil que IPSec, evitando a la vez los dolores de cabeza [de su implementación]. Además, busca ser considerablemente más performante que OpenVPN…

Los puntos fuertes de este software son:

  • Sencillez y facilidad de uso: Busca ser tan fácil de configurar y desplegar como SSH. Una conexión VPN requiere el intercambio de claves públicas sencillas -tal como el intercambio de claves SSH- y todo lo demás se maneja en forma transparente por el software.
  • Criptográficamente robusto: Utiliza criptografía moderna: Noise protocol framework y los algoritmos Curve25519, ChaCha20, Poly1305 (estos últimos de la mente de D. J. Bernstein), BLAKE2, SipHash24, HKDF, con decisiones conservadoras y razonables, y ha sido revisado por criptógrafos [aunque no sabemos quienes].
  • Mínima superficie de ataque: Fue diseñado teniendo en mente la sencillez y la facilidad de implementación, siendo implementable fácilmente con pocas líneas de código, y fácilmente auditable por vulnerabilidades de seguridad.
  • De alto rendimiento: Utiliza instrucciones criptográficas disponibles en los procesadores modernos y está implementado en el propio núcleo de Linux, con lo que permite armar una red segura manteniendo altas tasas de transferencia. Puede ser usado tanto en smartphones como en routers de backbone.
  • Bien definido y estudiado: WireGuard es el resultado de un extenso proceso académico detallado y extenso, cuyo resultado es un documento de investigación técnica que define claramente el protocolo y las consideraciones que se tomaron en cuenta en cada decisión.

Más allá de la propaganda del sitio web, además de su pequeño tamaño (en líneas de código) y de estar implementado sobre UDP, lo más relevante de esta implementación es que corre enteramente en el kernel, evitando los cambios de contexto de las implementaciones tradicionales de VPN. WireGuard parece haber sido desarrollado inicialmente por una sola persona: Jason A. Donenfeld, y está licenciado como GPLv2. A él agradecemos, entonces, haberse tomado este tremendo trabajo.

Al dia de hoy es posible probarlo en Debian gracias al trabajo de Daniel Kahn Gillmor (dkg), quien se encargó de empaquetarlo muy responsablemente.

En principio se requiere un kernel Linux igual o mayor a 4.1, pero eso se consigue fácilmente desde backports:

echo "deb http://httpredir.debian.org/debian/ jessie-backports main" \
    > /etc/apt/sources.list.d/jessie-backports.list
apt update
apt -t jessie-backports install linux-image-amd64 linux-headers-amd64

Luego de reiniciar con el kernel nuevo, descargar e instalar los paquetes wireguard-dkms y wireguard-tools desde el repositorio experimental. Esto instalará el código fuente del módulo y la aplicación de configuración. La infraestructura de compilación dkms se encarga de compilar el código a un módulo usable.

echo "deb http://httpredir.debian.org/debian/ experimental main" \
    > /etc/apt/sources.list.d/experimental.list
apt update
apt install dkms
apt -t experimental install wireguard-dkms wireguard-tools

En caso de no disponer de una instalación de Debian a mano, hay otras opciones, como también está el último recurso de compilarlo a la vieja usanza.

Finalmente, una vez que está todo listo,

Quick Start Walkthrough

Para todo lo demás, los remito a la documentación en línea, y al paper que detalla el protocolo.

Vale decir que esto aún está en los principios de su desarrollo. No hay una versión estable y su implementación real aún no ha tenido análisis relevantes desde la comunidad de seguridad en redes, pero vale decir que suena prometedor. Desde luego, si están interesados en participar/desarrollarlo/probarlo/documentarlo, el grupo acepta nueva gente.

Actualización 08/02/2017: Jason ha publicado en el sitio web los videos y slides de sus últimas presentaciones, de las cuales recomiendo particularmente la de FOSDEM 2017: Next Generation Secure Kernel Network Tunnel como visión rápida del proyecto y actualización del estado del mismo.

Renombrando archivos con mc

Este ticket en el bug tracker de Midnight Commander es oro puro.

Tendría que haberlo encontrado muchos años atrás!

PD: Shift+F6, no lo olvides.

Post instalación Debian GNU/Linux 8 (Jessie)

En abril de este año salió una nueva versión de la rama estable de Debian, y para continuar la secuencia de recomendaciones post-instalación que inició con un post de Tomás referido a Ubuntu, es buen momento de llevar mi humilde sugerencia de paquetes para un escritorio usable a esta nueva versión.

Para repasar, al igual que la vez anterior, este post tiene dos objetivos principales:

  • para el que quiera tener una instalación de debian jessie (estable) usable, vale decir, con algunas aplicaciones más modernas que las que trae por defecto pero tratando de no salir demasiado de los repos oficiales;
  • y para mí, para no perder tiempo haciendo memoria en el caso de tener que reinstalar el sistema.

Pero a diferencia de aquel post para Debian Wheezy, en el cual recomendé instalar como escritorio a GNOME Clásico, en esta oportunidad la recomendación de entorno de escritorio será KDE, pues me ha resultado más completo y usable que las últimas versiones de los demás escritorios. Además, mientras antes se requería un equipo bastante potente para aprovecharlo completamente, a la fecha los equipos con suficiente poder de cómputo y memoria ya están masificados. Por otro lado, según comentan en Slashdot, hoy es el cumpleaños del proyecto KDE así que resulta un momento justo para navegar en la nostalgia y volver a recomendarlo.

Paso 1

Para comenzar, partimos de la instalación base de Debian Jessie. Para que se den una idea, hay que seguir la instalación tradicional y cuando presenta el uso que se dará (escritorio, servidor, etc), desmarcar todas las opciones y continuar normalmente.

Paso 2

Una vez instalado y hecho el primer arranque, luego de iniciar sesión lo que suelo hacer al toque es deshabilitar la opción de instalación de paquetes recomendados, puesto que pocas veces son necesarios y además engordan sobremanera el espacio ocupado por el sistema. Para ello basta con ejecutar la línea siguiente para que las próximas instalaciones eviten instalarlos.

echo "APT::Install-Recommends \"false\";" > \
    /etc/apt/apt.conf.d/90-jessie-powerup-disable-recommends.conf

Paso 3

Luego, sólo si están detrás de un proxy, hay varias formas de configurarlo: puede ser globalmente mediante las variables de entorno http_proxy, https_proxy y ftp_proxy, o bien mediante la configuración de APT para aquellos casos donde dispongan de un servidor de caché como APT-Cacher. Por ejemplo:

PROXY="http://proxy.miorganizacion.com.ar:8080/"
export http_proxy=$PROXY
export https_proxy=$PROXY
export ftp_proxy=$PROXY
echo "Acquire::http::Proxy \"$PROXY\";" > /etc/apt/apt.conf.d/90-jessie-powerup-proxy.conf
echo "Acquire::ftp::Proxy \"$PROXY\";" > /etc/apt/apt.conf.d/90-jessie-powerup-proxy.conf

Paso 4

Verificar que están configurados los repositorios oficiales de la distribución, más el repositorio de backports. Para ello, el archivo /etc/apt/sources.list debería listar, al menos, los siguientes:

deb http://httpredir.debian.org/debian/ jessie main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb http://httpredir.debian.org/debian/ jessie-backports main contrib non-free

Paso 5

Agregar algunos repositorios externos (no oficiales) que contienen software útil, por ejemplo mozilla-debian para la última versión de Firefox, el de Dropbox y el de Google Chrome. Se pueden agregar en un archivo denominado /etc/apt/sources.list.d/repos-externos.list

deb http://mozilla.debian.net/ jessie-backports firefox-release
deb [arch=i386,amd64] http://linux.dropbox.com/debian jessie main
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main
deb http://repository.spotify.com testing non-free

Paso 6

Clásico: actualizar la lista de paquetes. Utilizaremos apt en vez de apt-get sólo por cuestión de gusto, y para ir probando qué tal funciona esta nueva interfaz de gestión de paquetes.

apt update

Paso 7

Instalar un entorno gráfico y los controladores de la placa de video. Para la interfaz gráfica hay varios metapaquetes que se corresponden a cada entorno de escritorio, los más conservadores son los siguientes: para Gnome, instalando gnome-core alcanza; para KDE, instalen kde-plasma-desktop; para XFCE instalen xfce4; para LXDE instalen lxde; incluso pueden instalar Mate o Cinnamon mediante los paquetes mate-desktop-environment o cinnamon-desktop-environment.

Eventualmente puede ser necesario instalar un driver privativo, por ejemplo para placas GPU AMD/ATI suele ser necesario el paquete fglrx-driver, mientras que para placas GPU nVidia el paquete a instalar es xserver-xorg-video-nvidia. También hay versiones para chipsets más antiguos (aparecen como paquetes con el nombre legacy). Si tienen un chipset Intel, con lo que viene por defecto suele alcanzar. Sobre el entorno gráfico, como comentaba al inicio del artículo, mi recomendación esta vez es utilizar KDE Plasma Desktop.

apt install xorg lightdm lightdm-kde-greeter kde-plasma-desktop \
    kde-l10n-es pinentry-qt4

Superpaso 8

Instalar paquetes desde los repositorios oficiales. Como en la línea anterior, cada paquete está enlazado a su descripción en el sitio de Debian.

Paso 8.1. Controladores y servicios útiles

apt install amd64-microcode dkms fail2ban intel-microcode ntfs-3g \
    ssh uptimed

Paso 8.2. Herramientas útiles de línea de comando

apt install alsa-utils aptitude bash-completion ccze clamav \
    colordiff colortail curl deborphan dialog file flac hexedit \
    highlight htop iotop imagemagick irqbalance jmtpfs less lftp \
    libav-tools markdown mc mlocate nano netcat-openbsd nethogs \
    nmap os-prober p7zip p7zip-full pv pxz qemu-kvm screen sshfs \
    trickle tshark unattended-upgrades unrar unzip vbindiff w3m \
    wget zip

Paso 8.3. Lenguajes de programación, herramientas y documentación

apt install build-essential git git-doc idle ipython pylint \
    python python-doc sqlite3 sqlite3-doc

Paso 8.4. Programas gráficos para fines variados (editores, reproductores, etc)

apt install chromium chromium-l10n desktop-base filezilla fslint \
    gstreamer1.0-libav hardinfo icedove icedove-l10n-es-ar \
    keepassx mpv openbox owncloud-client owncloud-client-l10n \
    sqlitebrowser synaptic vlc wireshark xdg-user-dirs xterm

apt install audex calligra-l10n-es filelight k3b k3b-i18n \
    kde-standard kdegraphics-thumbnailers kdiff3 kio-audiocd \
    kio-mtp kompare krita okteta plasma-nm soundkonverter \
    transmission-qt

Paso 8.5. Iconos y temas de escritorio

apt install dmz-cursor-theme faenza-icon-theme tango-icon-theme

Paso 8.6. Versión más moderna del kernel (4.3 para 64 bits)

apt -t jessie-backports install firmware-linux linux-headers-amd64 \
    linux-image-amd64 linux-doc

Paso 8.7. Versión más moderna de VirtualBox (5.0.16)

apt -t jessie-backports install virtualbox virtualbox-dkms \
    virtualbox-qt

Paso 8.8. Versión más moderna de LibreOffice (5.1.1)

apt -t jessie-backports install libreoffice libreoffice-kde \
    libreoffice-help-es libreoffice-l10n-es libreoffice-style-sifr \
    libreoffice-style-tango fonts-opensymbol

Paso 8.9. Versión más moderna de Firefox (45)

apt -t jessie-backports install firefox firefox-l10n-es-ar

Paso 8.10. Tipografías

apt install fonts-cantarell fonts-crosextra-caladea \
    fonts-crosextra-carlito fonts-dkg-handwriting fonts-humor-sans \
    fonts-droid fonts-font-awesome fonts-liberation fonts-roboto \
    ttf-dejavu ttf-mscorefonts-installer

Paso 9

Instalar paquetes desde repositorios externos:

apt install dropbox google-chrome-stable

Además de estos paquetes, suelo instalar PyCharm, Netbeans y Skype, para programar cómodamente y hacer alguna videoconferencia cuando es necesario, pero aquí la instalación es particular para cada software.

Paso 10

Listo, con eso les queda un sistema operativo de unos 5 GB, a mi juicio, casi perfecto. Todo lo documentado aquí está disponible en un sencillo script que instala KDE y ejecuta estos pasos de un saque. Lo dejo disponible por si les sirve: jessie-powerup.sh

Algunos consejos adicionales:

  • Para tener la tipografía clásica en las terminales Fx, ejecuten dpkg-reconfigure console-setup y en “Tipo de letra para la consola” seleccionen “No cambie la tipografía del arranque”.

Vuelvo a recomendar que se den una vuelta por el post de Tomás pues el da también una buena lista de software para instalar, y si me olvido de algo, o ven algo que sobra, abajo están los comentarios…

Kernels nuevos en Debian Jessie

Vengo siguiendo bastante de cerca la publicación de versiones estables del kernel de Linux. A fines de diagnóstico suelo compilar la última versión disponible e instalarla en varias de las máquinas sobre las que tengo acceso. Como quizás le sirva a más de uno, acá dejo disponible la última versión que compilé en casa.
Todas estas son directamente instalables sobre Debian GNU/Linux 8.0 Jessie de 64 bits sin quilombo de dependencias. Cada directorio contiene los paquetes con la imagen del kernel, los encabezados, el firmware y la configuración utilizada en la compilación.

Si les interesa saber qué hay de nuevo, les dejo el resumen de Diego Calleja, un post de Phoronix donde se listan algunas de las mejoras e incorporaciones, y el clásico resumen hecho por la gente de KernelNewbies.
A medida que vayan saliendo nuevas versiones iré actualizando este pequeño “repositorio” para mantenerlo al día.

Actualización 2017: en función a la reciente publicación de la nueva versión estable Debian GNU/Linux 9.0 Stretch, y tras haber migrado los equipos que utilizo habitualmente, este repositorio dejará de alojar versiones de kernel pues no podré compilarlos para la versión Jessie. Les recomiendo actualizar la versión del sistema operativo y, en caso de preferir versiones de kernel más modernas, utilizar aquellas disponibles en los repositorios Sid y/o Experimental.

FLISOL 2015 – Festival Latinoamericano de instalación de Software Libre

El FLISoL – Festival Latinoamericano de Instalación de Software Libre es un evento de difusión de Software Libre que se realiza anualmente desde 2005 en ciudades de toda Latinoamerica y España. El Software Libre, como filosofía, asegura que los usuarios puedan usar el programa para cualquier propósito, estudiar como funciona, modificarlo para adaptarlo a sus necesidades y redistribuirlo con o sin modificaciones.

tatica-banner-vertical_flisol2015El próximo Sábado 25 de abril la Universidad Nacional de Luján se unirá a las distintas sedes del festival, siendo una excelente oportunidad para asistir a charlas y talleres relacionados con la temática, así como también llevarse instalado gratuitamente un sistema operativo libre.

El grupo de usuarios de Software Libre de la UNLu (UNLuX) los invita a conocer más sobre el Software Libre en sus múltiples facetas: artística, técnica, cultural y filosófica. Dentro del ámbito académico, los principios propuestos por el Software Libre son especialmente útiles, ya que sus diversos proyectos nos proporcionan una inmensa cantidad de herramientas con las que podemos experimentar y aprender (programas, bibliotecas, lenguajes de programación, etc).

Desde su base, la filosofía pretende que nosotros, los usuarios, controlemos la tecnología y que podamos utilizarla sin restricciones, a diferencia del software no-libre, que está limitado según las restricciones impuestas por su fabricante. El software libre es necesario para una sociedad libre.

Invitamos a estudiantes, profesores, organizaciones culturales y al público en general a participar, ya sea ayudando a difundir el evento, presentando una charla, colaborando con la organización, o simplemente acercándose a disfrutar del festival.

Inscripción

Podes registrarte mediante el siguiente enlace: http://flisol.usla.org.ar/sede/Lujan/registration
Si bien el registro no es obligatorio, nos permitirá brindarte un espacio físico adecuado y nos preparará para realizar las instalaciones que sean necesarias.

En agenda

Analizando logs en 5 minutos con ELK

A partir de una idea de Santiago, y tomando como base algunos componentes que los muchachos de MercadoLibre utilizan para su infraestructura de gestión de logs, se me ocurrió hacer una prueba de concepto de a lo que es posible arribar rápidamente utilizando la tríada ElasticSearch + Logstash + Kibana, más conocida com ELK.

Para dar una mínima introducción, diremos que ElasticSearch es un motor de búsqueda RESTful basado en el archiconocido Lucene, Logstash es una especie de concentrador/manipulador/estandarizador de logs provenientes de múltiples fuentes, y Kibana es un visualizador de eventos que corre enteramente en el navegador. Los tres son componentes que pueden utilizarse en forma separada, pero en conjunto aplican precisamente esto de que el todo es más que la suma de las partes. De hecho yo había estado viendo Logstash aparte para una charla sobre logging que diera algunos años atrás, cuando aún era un proyecto incipiente, y ahora me encuentro con que es un proyecto ampliamente utilizado en un montón de lados.

Pero hoy no quiero detenerme demasiado en la teoría; la idea de este post es analizar registros yendo de 0 a 100 en 5 minutos (o lo que tarde en bajar cada aplicación) y para ello nada mejor que arrancar ahora. Así que…

Analizando logs en 5 minutos con ELK

Prerrequisitos

Como prerequisito es necesario el motor de ejecución java 1.6 o 1.7. En distribuciones basadas en debian alcanza con instalar openjdk-6-jre u openjdk-7-jre. O eso creo, a lo mejor es necesario el jdk también; prueben por las dudas. El resto de los pasos se pueden hacer sin necesidad de ser root, como usuario común.

Paso 0. Ubicarnos en un directorio limpio

mkdir elk
cd elk

Paso 1. Obtener logstash

wget -c https://download.elasticsearch.org/logstash/logstash/logstash-1.4.2.tar.gz
tar zxf logstash-1.4.2.tar.gz

Paso 2. Obtener elasticsearch

wget -c https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.1.1.tar.gz
tar zxf elasticsearch-1.1.1.tar.gz

Paso 3. Obtener un log de apache

… de algún lado. Si tienen un apache a mano, cópiense el archivo al directorio actual y dénle permisos de lectura para su usuario

cp /var/log/apache2/access.log access.log
chmod go+r access.log

O si no tienen ninguno a mano, acá les dejo uno que es un fragmento del log de este mismo sitio. Ustedes pueden hacer lo que les plazca con él, total este es un blog personal. Si quieren optar por otra alternativa, google hacking es su amigo y yo no se los recomendé.

wget -c http://maurom.com/files/access.elk.log -O access.log

Paso 4. Iniciar elasticsearch

echo Iniciando Elasticsearch. Aguarde 15s ...
elasticsearch-1.1.1/bin/elasticsearch &
sleep 15

Paso 5. Crear un archivo de configuración para parsear logs de apache

Para ello, creen un archivo de texto llamado logstash-apache.conf en el directorio actual y copien y peguen el siguiente bloque. Luego editen la ruta al archivo de logs, indicándola en forma absoluta, y configuren el tipo de entradas de log y el lenguaje de los meses según corresponda (sino tira unos errores horribles).

input {
  file {
    # apuntar a donde haga falta, con ruta absoluta!
    path => "/home/usuario/elk/access.log"
    # desde donde leer el log ("end" para tomar datos en vivo)
    start_position => beginning
  }
}
filter {
  if [path] =~ "access" {
    mutate { replace => { "type" => "apache_access" } }
    grok {
      # depende del formato de archivo
      match => { "message" => "%{COMBINEDAPACHELOG}" }
      # match => { "message" => "%{COMMONAPACHELOG}" }
    }
    kv {
      # con esto parsea incluso querystrings
      source => "request"
      target => "params"
      field_split => "?&"
    }
  }
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
    # si los meses estan en ingles, u otro lenguaje en tal caso
    locale => "en"
  }
}
output {
  elasticsearch { host => localhost }
  # salida estandar coloreada, util para debug
  #stdout { codec => rubydebug }
}

Todo este archivo tiene su lógica según la documentación de logstash.

Paso 6. Iniciar logstash+kibana con la configuracion dada

echo Iniciando Logstash. Aguarde 15s ...
logstash-1.4.2/bin/logstash -f logstash-apache.conf -- web &
sleep 15

Paso 7. Levantar un navegador web

xdg-open "http://localhost:9292/index.html#/dashboard/file/logstash.json"

Paso 8. Jueguen con los filtros, los gráficos y deléitense con la visualización.

Fíjense de qué epoca son las entradas del log, pues puede que tengan que modificar algunas cosas para que Kibana les encuentre los eventos para esas fechas. Por ejemplo, el log de apache que les pasé solo tiene entradas para el mes de julio de 2014, así que seleccionen ese rango en el filtro de fechas de Kibana.

Acá les dejo algunas capturas de lo que pueden llegar a hacer, que si bien no son de análisis de apache, dan una idea de las posibilidades:

Paso 9. Terminar la tarea

Para cerrar los procesos, matelos sanamente con kill PID a cada proceso java asociado.

Ah, y una mención antes de terminar: cada vez que logstash procesa un archivo, anota hasta donde leyó para no volver a cargar la información, por lo que si están jugando con la configuración van a tener que borrar unos archivos .sincedb_algo que genera en el directorio $HOME del usuario para que vuelva a recorrer el mismo log.

Por último, en este caso estamos parseando son entradas de accesos a un sitio web, pero el combo ELK puede procesar casi cualquier tipo de flujo de eventos, y si bien java mucho no me atrae, todo este paquete vale la pena; piensen cuanto habrían tardado en programar ustedes una interfaz tan flexible y completa…

Como sé que ustedes son tan haraganes como yo, acá tienen todo en un solo script que lo hace de una.

Si se quedaron manija, acá van algunas demos y algo de documentación:

Eso es todo por hoy. Feliz análisis y Felices fiestas!

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress