Algo de Linux: septiembre 2015

martes, 29 de septiembre de 2015

youtube-dl: Descargar vídeos de YouTube y otros sitios desde la línea de comandos

youtube-dl es una herramienta muy interesante para descargar vídeos de YouTube y otros sitios desde la línea de comandos.

Como siempre que hablamos de herramientas de línea de comandos, insisto es que es muy útil porque podemos programar descargas, lanzarlas desde un script y realizarlas en un servidor que no tendrá entorno gráfico.

La sintaxis básica de youtube-dl es:
youtube-dl [OPCIONES] URL [URL...]
Es decir que no tenemos más que indicar una lista de URL's de vídeos que queramos descargar y youtube-dl se encargará de bajarlos.

Pero, además, si en lugar de pasar como parámetro las direcciones de los vídeos que queremos descargar, le damos una lista de reproducción, youtube-dl descargará todos los vídeos de dicha lista uno por uno.

Y si en lugar de descargar todos los vídeos de una playlist, queremos comenzar a descargarlos a partir de uno determinado, no tenemos más que usar el parámetro: 
--playlist-start NUMBER

Por otra parte, si queremos terminar de descargar los vídeos de una playlist en uno determinado, en lugar de descargarlos todos, podemos usar el parámetro:
--playlist-end NUMBER

Como podéis deducir, para descargar un intervalo de vídeo, podemos combinar los dos parámetros anteriores:
--playlist-start NUMBER --playlist-end NUMBER

Y si queremos descargar tan sólo determinados vídeos, podemos especificar una lista con el parámetro:
--playlist-items ITEM_SPEC

En este caso:
  • Podemos especificar vídeos separando los números de vídeos por comas: 1,2,5,8
  • Podemos definir intervalos: 3-7 
  • E incluso combinarlos: 1,3-7,9
Para más información, os recomiendo consultar el manual.
Publicado por primera vez en http://enavas.blogspot.com.es

Instalar Opera Web browser en Debian

Opera es un navegador rápido y seguro que podemos instalar fácilmente en Debian desde el repositorio particular de Opera.

Para instalarlo, primero añadimos el repositorio a un fichero de fuentes:
# echo "deb http://deb.opera.com/opera stable non-free" > /etc/apt/sources.list.d/opera.list
Segundo, añadimos la clave pública del repositorio de Opera a nuestro repositorio de claves:
# wget -O - http://deb.opera.com/archive.key | apt-key add -
Tercero, actualizamos los índices de los repositorios:
# aptitude update
Cuarto y último, instalamos el paquete:
# aptitude install opera
Publicado por primera vez en http://enavas.blogspot.com.es

domingo, 27 de septiembre de 2015

CUPS Cloud Print: Utilizar impresoras de Google Cloud Print como locales

Google Cloud Print es un servicio de Google que nos permite conectar nuestras impresoras a la web y compartirlas para poder imprimir desde nuestro ordenador o dispositivo móvil a través de internet.

Es posible imprimir a través de Google Cloud Print directamente desde el navegador Chrome, desde aplicaciones de Google que tengan la opción de imprimir como por ejemplo Gmail, Google Docs, o aplicaciones compatibles. 

Y si utilizáis otro navegador, como por ejemplo Firefox, podréis imprimir, entrando en vuestra cuenta de Google y accediendo a la siguiente dirección:

Ésto está muy bien, pero en la práctica, es incómodo tener que realizar todas nuestras impresiones desde el navegador, sobre todo cuando tratamos de imprimir desde una aplicación local instalada en el mismo; lo que nos obliga a subir previamente el archivo a imprimir. 

Para solucionar este problema, podemos instalar Cups Cloud Print, una herramienta que nos va a permitir configurar las impresoras de Google Cloud Print como impresoras locales de nuestro sistema.

Como mi sistema operativo es Debian, descargaré el paquete deb:
# wget https://niftyrepo.niftiestsoftware.com/cups-cloud-print/packages/cupscloudprint_20140814.2-1_all.deb
Una vez descargado, lo instalamos:
# dpkg -i cupscloudprint_20140814.2-1_all.deb
Y hacemos que se instalen las dependencias necesarias:
# apt-get -f install
Una vez instalado, en el directorio /usr/share/cloudprint-cups/ encontraréis una serie de scripts python, entre ellos setupcloudprint.py, que os permitirá añadir a vuestro servidor de impresión cups impresoras de Google Cloud Print.
# /usr/share/cloudprint-cups/setupcloudprint.py
Tan sólo tenemos que ejecutar el script desde un terminal e ir respondiendo a las preguntas para configurar las impresoras.

Una última cosa que me  gustaría destacar es que es es posible añadir impresoras de varias cuentas de Google.

Publicado por primera vez en http://enavas.blogspot.com.es

jueves, 24 de septiembre de 2015

Cuidado al configurar nscd (Name Service Cache Daemon)

Actualmente, en Debian tenemos dos alternativas para configurar un cliente con el fin de que éste pueda realizar búsquedas en ldap para la autentificación de usuarios:
  • libnss-ldap
  • libnss-ldapd
libnss-ldap es más maduro y más complejo. En cambio, libnss-ldapd es más reciente pero soluciona ciertas deficiencias de libnss-ldap. Para más información, ver la página de libnss-ldapd: 

El demonio nslcd es quien se encarga de conectar con el servidor ldap cuando el usuario realiza sus peticiones. La configuración de este demonio se encuentra en el fichero /etc/nslcd.conf, donde tendremos que especificar dos datos fundamentales:
  • La uri del servidor ldap. 
    • Ejemplo: uri ldap://ldap
  • La base de nuestro directorio ldap.
    • Ejemplo: base dc=instituto,dc=extremadura,dc=es
Es posible indicar varias uri para utilizar varios servidores ldap, uno por línea. Por ejemplo:
uri ldap://ldap
uri ldap://servidor 

Siempre se utilizará el primero, excepto cuando falle, en cuyo caso, se utilizará el siguiente.

Si habéis configurado vuestro cliente para hacer consultas en el servidor ldap, podéis comprobar que funciona, ejecutando:
# getent passwd
Y obtendréis la lista de todos los usuarios, tanto los locales como los del servidor ldap.

O:
# getent group
Y obtendréis la lista de todos los grupos.

Pues bien, para reducir el número de consultas al servidor ldap, podemos utilizar nscd (Name Service Cache Daemon), un demonio que se va a encargar de cachear la información de passwd, group y hosts. Nosotros lo utilizamos concretamente para cachear usuarios y grupos, pero no para nombres de hosts.

El fichero de configuración de nscd es /etc/nscd.conf

Para activar el cacheo de usuarios en este fichero, entre otros parámetros tendremos una línea así:

        enable-cache            passwd          yes

Y para activar el cacheo de grupos:

        enable-cache            group          yes

Un parámetro muy importante de este fichero es positive-time-to-live, Su sintaxis es la siguiente:

        positive-time-to-live            servicio          segundos


Este parámetro nos permite indicar el número de segundos que deberán transcurrir para que una entrada sea borrada de la caché. Cuando queremos que la información permanezca cacheada mucho tiempo (como por ejemplo, en un portátil) especificaremos un valor muy alto. Y aquí es donde debemos de tener cuidado porque los cambios producidos en la base de datos del servidor ldap no serán conocidos por el sistema debido a que estará usando la información cacheada.

Si en algún momento, queréis borrar la caché de usuarios manualmente, no tenéis más que ejecutar:
# nscd -i passwd
Y si queréis borrar la caché de grupos:
# nscd -i group
Por último, tan sólo recalcar una cosilla más: Si en algún momento estáis comprobando si se obtienen respuestas por parte del servidor ldap, parad antes el servicio nscd porque de otro modo, podría daros falsos resultados ofreciéndoos información de la caché.

Publicado por primera vez en http://enavas.blogspot.com.es

miércoles, 23 de septiembre de 2015

HandBrakeCLI: Convertir un DVD a mp4 desde la línea de comandos

Como ya sabéis, a los administradores nos gusta mucho la línea de comandos; entre otras cosas porque podemos automatizar tareas fácilmente y éstas pueden ser ejecutadas en servidores sin entorno gráfico. 

En este post vamos a ver lo sencillo que es convertir un DVD en un archivo mp4 desde la línea de comandos utilizando HandBrakeCLI.

Lo primero de todo, instalamos el paquete handbrake-cli:
# apt-get install handbrake-cli

Una vez instalado, ya podemos ejecutar el comando HandBrakeCLI.

Esta herramienta dispone de muchos parámetros que permiten afinar el proceso de conversión. Si queréis realizar una conversión sencilla sin modificar parámetros, tan sólo tendréis que ejecutar el comando HandBrakeCLI de la siguiente manera:
$ HandBrakeCLI -i origen -o destino
Si ejecutáis el comando de este modo, se codificará el vídeo con los siguientes valores por defecto en un contenedor mp4:
  • Video MPEG-4 1000 Kbps.
  • Audio AAC-LC 160 Kbps.
El procedimiento para convertir un DVD sería más o menos así:

Primero.- Introducimos el disco en la unidad.

Segundo.- Nos desplazamos al directorio donde se ha montado el DVD. Si por ejemplo el dvd se os ha montado en /media/dvd:
$ cd /media/dvd
Tercero.- Ejecutamos el comando con los parámetros que más nos interesen:
$ HandBrakeCLI -i VIDEO_TS -o ~/Videos/dvd.mp4 -e x264 -q 20 -B 160
Con ésto le estaríamos diciendo a HandBrakeCLI que convierta el DVD de la carpeta VIDEO_TS y lo guarde en ~/Videos/dvd.mp4 usando el encoder x264 con una calidad constante para el video de 20 y el audio a 160 Kbps AAC. Así de fácil.

En cualquier caso, si queréis utilizar HandBrake en vuestro equipo desde el entorno gráfico, no tenéis más que instalar el paquete handbrake-gtk:
# apt-get install handbrake-gtk 


Publicado por primera vez en http://enavas.blogspot.com.es

lunes, 21 de septiembre de 2015

Procesar archivos xml con xmlstarlet

Hoy en día resulta bastante común encontrar aplicaciones que guardan información en ficheros xml.

xmlstarlet es una interesante herramienta de línea de comandos que nos va a permitir obtener datos de un fichero xml, modificarlo o validarlo.

En nuestro caso, a principios de curso, creamos las cuentas de los usuarios a partir de ficheros .xml generados mediante Rayuela. Pues bien, podemos utilizar xmlstarlet para procesar estos ficheros y obtener la información que necesitamos para convertirla a otro formato, como por ejemplo .csv

Supongamos que el fichero de exportación de alumnos almacena la información de cada alumno de la siguiente manera:
<alumno>
   <nie>9496969</nie>
   <nombre>Pedro</nombre>
   <primer-apellido>Aguilar</primer-apellido>
   <segundo-apellido>Cobo</segundo-apellido>
   <fecha-nacimiento>20/10/2002</fecha-nacimiento>
   <datos-usuario-rayuela>
      <es-usuario>true</es-usuario>
      <login>paguilarc01</login>
      <id-usuario>597450</id-usuario>
   </datos-usuario-rayuela>
   <grupo>E1A</grupo>
   <foto>
      <con-foto>true</con-foto>
      <formato>jpg</formato>
      <nombre-fichero>9496969.jpg</nombre-fichero>
   </foto>
</alumno>
Podemos extraer los datos de nie, nombre, primer-apellido, segundo-apellido y login de todos los alumnos y almacenarlos en un fichero csv con la siguiente estructura: 
9496969,Pedro,Aguilar Cobo,paguilarc01

Con tan sólo ejecutar el comando:
$ xmlstarlet sel -t -m //alumnado-centro/alumno -v nie -o "," -v nombre -o "," -v primer-apellido -o " " -v segundo-apellido -o "," -m datos-usuario-rayuela -v login -n Alumnos.xml
Si analizáis la sintaxis anterior veréis que es muy sencilla:
  • Utilizando la opción de selección (sel), aplicamos la plantilla (-t) que le indicamos a continuación al comando.
  • Procesamos cada entidad alumno (//alumnado-centro/alumno) y extraemos su nie (-v nie).
  • Insertamos una coma (-o ",") en la salida.
  • Extraemos el nombre (-v nombre).
  • Insertamos una coma (-o ",") en la salida.
  • Extraemos el primer-apellido (-v primer-apellido). 
  • Insertamos una coma (-o ",") en la salida.
  • Extraemos el segundo-apellido (-v segundo-apellido). 
  • Y de la entidad datos-usuario-rayuela del alumno (-m datos-usuario-rayuela -v login) extraemos su login.
  • E insertamos un salto de línea (-n) en la salida.
Del mismo modo, podemos extraer datos del fichero de exportación de datos de profesores puesto que la estructura es similar:
$ xmlstarlet sel -t -m //profesorado-centro/profesor -v dni -o "," -v nombre -o "," -v primer-apellido -o " " -v segundo-apellido -o "," -m datos-usuario-rayuela -v login -o "@iesvalledeljerteplasencia.es" -n ExportacionDatosProfesorado.xml
Publicado por primera vez en http://enavas.blogspot.com.es

sábado, 19 de septiembre de 2015

Servidores DNS públicos

Para resolver nombres de nuestra organización utilizamos nuestro propio servidor DNS local. Ahora bien, cuando hay que resolver direcciones de internet, utilizamos los DNS de nuestro proveedor de internet u otros DNS públicos.

Algunos de los proveedores de DNS y servidores que solemos utilizar habitualmente son éstos:
  • OpenDNS:
    • DNS Primario: 208.67.222.222 
    • DNS Secundario: 208.67.222.220
  • Google Public DNS:
    • DNS Primario: 8.8.8.8
    • DNS Secundario: 8.8.4.4
Existen también servidores con filtrado de virus, como por ejemplo:
  • Comodo Secure DNS:
    • DNS Primario:  8.26.56.26
    • DNS Secundario:8.20.247.20
  • Norton Connect Safe:
    • DNS Primario:198.153.192
    • DNS Secundario:198.153.194.50
Además existen servidores que ofrecen una versión para IPv6:
  • OpenDNS:
    • DNS Primario: 2620:0:ccc::2 
    • DNS Secundario: 2620:0:ccd::2
  • Google Public DNS:
    • DNS Primario: 2001:4860:4860::8888 
    • DNS Secundario: 2001:4860:4860::8844 
  • Censurfridns.dk:
    • DNS Primario: 2002:d596:2a92:1:71:53
    • DNS Secundario:2002:5968:c28e::53::
Publicado por primera vez en http://enavas.blogspot.com.es

martes, 15 de septiembre de 2015

Firmware OpenWRT Chaos Calmer 15.05 para routers A4001N y A4001N1

Utilizando el script seguridadwireless.sh, he compilado el firmware OpenWRT Chaos Calmer 15.05 para los routers A4001N y A4001N1. A continuación dejo los enlaces de descarga:

Para más información, os recomiendo visitar el siguiente hilo del foro de seguridadwireless.net:
http://foro.seguridadwireless.net/openwrt/%28release%29-chaos-calmer-15-05/15/
 Publicado por primera vez en http://enavas.blogspot.com.es

OpenWRT Chaos Calmer: Poner el interfaz luci en español

Para poner el interfaz luci de OpenWrt Chaos Calmer en español, tan sólo tenemos que instalar el paquete luci-i18n-base-es:


Una vez instalado, la interfaz del sistema ya se encontrará en español:



También hay traducciones para los diferentes paquetes.

Publicado por primera vez en http://enavas.blogspot.com.es

viernes, 11 de septiembre de 2015

Resetear router con OpenWrt

A veces realizamos configuraciones en nuestro router OpenWrt que lo dejan inutilizado y tenemos que resetearlo. En este post os voy a explicar paso a paso como realizar esta operación:

Primero.- Conectamos el router a la corriente y lo dejamos apagado.

Segundo.- Pulsamos con un clip el botón de reset que hay al lado de la antena, lo mantemos pulsado mientras encendemos el router y lo dejamos pulsado durante unos 20 segundos. El router entrará en modo failsafe. Lo sabremos porque el indicador de "Power" parpadeará muy rápido.

Tercero.- Conectamos el router a nuestra red.

Cuarto.- Puesto que la dirección IP del router en modo failsafe es 192.168.1.1, asignamos una segunda ip del rango 192.168.1.X a la interfaz de red ethernet de nuestro ordenador.
# ip addr add 192.168.1.100/24 dev eth0


Quinto.- Nos conectamos al router mediante telnet:
# telnet 192.168.1.1

En este modo, el router no pedirá password y entrará directamente, como podéis comprobar en la siguiente imagen:


Sexto.- Ejecutamos el comando "firstboot" para resetear el router al estado de fábrica con OpenWrt.


Respondemos "y" y comenzará a resetearlo. Cuando termine, ejecutamos el comando "reboot" para reiniciar el router y listo. Ya podremos entrar en él con la IP por defecto (192.168.1.1) y volver a configurarlo de nuevo:


Publicado por primera vez en http://enavas.blogspot.com.es

Instalar controlador UniFi en Debian Jessie

En mi centro tengo montado puntos de acceso Ubiquiti y de otras marcas con un firewall PfSense que mantiene un portal cautivo.

Los equipos UniFi son gestionados a través de un software controlador (que se instala en un equipo), no de forma independiente a través de una GUI como la mayoría de los puntos de acceso del mercado. De este modo, con una única aplicación tendremos acceso a la configuración de todos nuestros puntos de acceso Ubiquiti.

En este post vamos a ver cómo instalar el controlador UniFi en Debian Jessie.

Para instalarlo, tenemos dos opciones:

1) Descargar el controlador UniFi desde la web del fabricante e instalarlo con dpkg: https://www.ubnt.com/download/unifi/unifi-ap

2) Configurar el repositorio desde donde descargar el paquete. 

Elegiremos la segunda opción, que nos permitirá mantener el controlador actualizado más fácilmente.

Así que lo primero que haremos será añadir el repositorio de ubiquiti:
# echo "deb http://www.ubnt.com/downloads/unifi/debian stable ubiquiti" > /etc/apt/sources.list.d/ubiquiti.list
A continuación añadimos la clave del repositorio:
# apt-key adv --keyserver keyserver.ubuntu.com --recv C0A52C50
Actualizamos los índices de los repositorios:
# apt-get update
E instalamos el paquete unifi:
# apt-get install unifi
Al instalar el paquete, se iniciará el servicio unifi. Así que comprobaremos si está corriendo:
# service unifi status
Si véis una salida como la siguiente, es que está corriendo:
# service unifi status
● unifi.service - unifi
   Loaded: loaded (/lib/systemd/system/unifi.service; enabled)
   Active: active (running) since vie 2015-09-11 07:59:46 CEST; 1s ago
  Process: 2937 ExecStop=/usr/lib/unifi/bin/unifi.init stop (code=exited, status=0/SUCCESS)
  Process: 3002 ExecStart=/usr/lib/unifi/bin/unifi.init start (code=exited, status=0/SUCCESS)
 Main PID: 3025 (jsvc)
   CGroup: /system.slice/unifi.service
           ├─3025 unifi -home /usr/lib/jvm/java-7-openjdk-amd64 -cp /usr/shar...
           ├─3026 unifi -home /usr/lib/jvm/java-7-openjdk-amd64 -cp /usr/shar...
           ├─3027 unifi -home /usr/lib/jvm/java-7-openjdk-amd64 -cp /usr/shar...
           └─3041 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java -Xmx1024M -D...

sep 11 07:59:46 conector unifi.init[3002]: Starting Ubiquiti UniFi Controlle....
Hint: Some lines were ellipsized, use -l to show in full.
Bien, pues ahora que ya está instalado y corriendo, abrimos el navegador en cualquier equipo de nuestra red y accedemos al controlador mediante https en la IP del equipo y el puerto 8443. 
Por ejemplo, si el equipo donde hemos instalado el software tiene la dirección IP 192.168.0.5, para acceder al controlador tendremos que escribir esta dirección en la barra de direcciones del navegador:
https://192.168.0.5:8443
La primera vez que entremos nos aparecerá el típico mensaje que dice que la conexión no está verificada:


Añadimos la excepción y listo.

Además, la primera vez también se iniciará un asistente de configuración en 5 pasos donde configuraremos unos ajustes básicos:


Cuando terminemos con el asistente, veremos la pantalla de login:


Y eso es todo. A partir de ahí, ya podremos gestionar todos nuestros puntos de acceso Ubiquiti desde un único lugar: el controlador.
Publicado por primera vez en http://enavas.blogspot.com.es

viernes, 4 de septiembre de 2015

Instalación fácil de impresoras HP en Debian utilizando hp-setup

Es muy sencillo instalar impresoras HP en Debian si utilizamos la herramienta hp-setup, que viene en el paquete hplip

Si no habéis instalado anteriormente en vuestro sistema el paquete hplip, no tenéis más que instalarlo desde los repositorios:
# apt-get install hplip

Una vez instalado, ejecutáis la herramienta:


Y se os abrirá la aplicación:


Como podéis observar, esta herramienta nos va a permitir instalar impresoras USB, inalámbricas y de puerto paralelo simplemente siguiendo el asistente.

A modo de ejemplo, vamos a ver cómo instalar una impresora de puerto paralelo. Así que seleccionamos la última opción (Parallel Port (LPT)):

A continuación pulsamos el botón "Next". Como podéis ver en la siguiente imagen, he conectado una impresora HP LaserJet 6L al puerto paralelo de mi ordenador y me la ha detectado:


Si no la detectara, comprobamos las conexiones y pulsamos el botón "Refresh". Una vez detectada, hacemos clic el botón "Next". El asistente nos mostrará el nombre que le da a la impresora. Si queréis, podéis cambiarlo y rellenar los campos Descripción y Localización. Además, podéis cambiar el driver a utilizar:


Una vez completada la configuración, hacemos clic en el botón "Add Printer" y habremos terminado de configura nuestra impresora.

Si queréis ver si vuestra impresora está soportada por HPLIP, no tenéis más que consultar la siguiente página:
http://hplipopensource.com/hplip-web/supported_devices/index.html



Publicado por primera vez en http://enavas.blogspot.com.es