lunes, 24 de noviembre de 2014

Servidor Multimedia (DLNA) en Debian Wheezy


Bueno, les comento que mi tlf Android pasó a mejor vida, al menos como teléfono jajajaja. La cosa es que mi flamante Motorola Atrix 4G, el cual fue un equipo extremadamente fiel desde que lo compré hasta ahora, tiene el táctil averiado, por lo que escribir en él se convirtió en algo semejante a una tortura china jejeje.

Pues dado el caso, me pasé a otro tipo de equipo, por ahora, sin embargo, no quería desprenderme de ese trasto, al menos no mientras aún le pueda sacar el jugo al procesador y la ram del equipo, así que me puse a ver de qué podía servirme el equipo y encontré algunas opciones interesantes; sin embargo la que más me llamó la atención fue la de crear en mi computador un servidor multimedia y poder acceder a él desde cualquier parte del sitio donde habito, siempre y cuando esté conectado a la red; es importante recordar que hoy en día, todo va a la wifi jajajajaja. La opción para lograr un servidor multimedia es hacer uso de DLNA, así que es hora de empezar a saber un poco más al respecto, y como ya es costumbre, aquí va la definición.
"DLNA (Digital Living Network Alliance), o "Alianza para el estilo de vida digital en red" en castellano, es una asociación de fabricantes de electrónica e informática sin ánimo de lucro fundada por Sony en junio de 2003. Su objetivo es definir directrices de interoperabilidad que permitan compartir medios digitales entre dispositivos de consumo como ordenadores, impresoras, cámaras, teléfonos móviles y otros dispositivos multimedia. Estas directrices toman como base estándares públicos ya existentes, pero sólo pueden obtenerse previo pago. DLNA especifica la forma de utilizar estos estándares con el fin de que los distintos dispositivos que pueda haber dentro de una misma red se interconecten entre ellos para compartir sus contenidos." http://es.wikipedia.org/wiki/Digital_Living_Network_Alliance Agosto, 2014

Sabiendo esto, procedemos a ver que necesitamos en nuestro equipo para convertirlo en un servidor DLNA; recordemos que aquí usamos Debian y para nuestro GNU/Linux tenemos un paquete llamado minidnla, el cual permite crear un servidor multimedia en el equipo. Buscaremos el paquete en nuestro repositorio y verificaremos la información del mismo; para ello haremos uso de los siguientes comandos.
aptitude search minidnla
Con ese buscamos el paquete para asegurarnos de que lo tenemos en los repositorios y de que aún no está instalado. Recuerda que si al principio de la línea donde aparece el paquete, nos indica una letra "p" significa que no está instalado, y si nos indica una "i" es porque si lo está; de igual manera podremos obtener toda esa información de una forma más explícita si le pedimos a aptitude que nos muestre la información de ese paquete, para ello haremos
aptitude show minidnla
Al hacer uso de ese comando yo recibí la siguiente información:
Package: minidlna                       
New: yes
State: installed
Automatically installed: no
Version: 1.0.24+dfsg-1
Priority: optional
Section: net
Maintainer: Beno??t Knecht
Architecture: i386
Uncompressed Size: 362 k
Depends: adduser, lsb-base, libavformat53 (>= 4:0.8-1~) | libavformat-extra-53
         (>= 4:0.8-1~), libavutil51 (>= 4:0.8-1~) | libavutil-extra-51 (>=
         4:0.8-1~), libc6 (>= 2.3.6-6~), libexif12, libflac8 (>= 1.2.1),
         libid3tag0 (>= 0.15.1b), libjpeg8 (>= 8c), libogg0 (>= 1.0rc3),
         libsqlite3-0 (>= 3.5.9), libvorbis0a (>= 1.1.2)
Description: lightweight DLNA/UPnP-AV server targeted at embedded systems
 MiniDLNA (aka ReadyDLNA) is server software with the aim of being fully
 compliant with DLNA/UPnP-AV clients.

 The minidlna daemon serves media files (music, pictures, and video) to clients
 on your network.  Example clients include applications such as totem and xbmc,
 and devices such as portable media players, smartphones, and televisions.

 MiniDLNA is a simple, lightweight alternative to mediatomb, but has fewer
 features. It does not have a web interface for administration and must be
 configured by editing a text file.
Homepage: http://sourceforge.net/projects/minidlna/
O lo que es lo mismo, se nos indica que minidlna es un software de servidor hecho con el objetivo de ser totalmente compatible con clientes DLNA y UPnP-AV y que el demonio servidor minidlna nos permitirá suministrar multimedia (música, imágenes y videos) a clientes de la red; ejemplo de esos clientes podrían ser totem, xbmx y dispositivos tales como reproductores portátiles, teléfonos y televisores inteligentes, entre otros.

Ahora, ya que sabemos que es DLNA y para qué sirve, así como también el nombre del paquete que nos permite, fácilmente, crear un servidor DLNA en nuestro debian, procederemos a crear nuestro server, muajajaja.
aptitude install minidlna
Eso es todo, ya con eso lo instalamos, pero eso no quiere decir que funcione, debemos configurarlo manualmente ya que el paquete no posee una interface Web para su administración; en este punto vamos a necesitar conocer la IP de nuestro servidor, así que si no se la saben, procedan a hacer uso del siguiente comando
sudo ifconfig
Con el cual obtendrémos toda la información de las configuraciones de red actuales en nuestro equipo.

Ahora abriremos el archivo de configuración de minidlna para editarlo

sudo nano /etc/minidlna.conf
Realmente el archivo es bastante intiutivo, lo único que necesitamos es saber inglés y la configuración se nos hará super fácil; sin embargo les daré unos datos, venga que yo no soy tan cruel, joder jajajajajaja.

Ya tenemos nuestro servidor instalado, y de más está decir que sabemos en qué carpetas de nuestro disco duro tenemos los archivos que deseamos compartir; el parámetro "media_dir" es el que debe contener dicha información.

media_dir=/media/data
Observa que le estoy indicando a minidlna que en la ruta /media/data hay archivos multimedia que deseo compartir; supongamos sin embargo que nosotros deseamos especificarle a DLNA en cual carpeta conseguirá música, en cual conseguirá imágenes y en cuales tendrá videos, para eso debemos añadir un parámetro a la línea anterior.
  • Si el archivo es de Audio debo colocar "A," despues del símbolo de igualdad.
  • Si el archivo es una Imagen debo colocar "P," despues del símbolo de igualdad.
  • Si el archivo es un Video debo colocar "V," despues del símbolo de igualdad.

Ejemplos

  • media_dir=A,/media/data/Music
  • media_dir=V,/media/data/Videos
  • media_dir=P,/media/data/Pictures

Con esto le indico al minidlna que en la ruta /media/data/Music debe buscar sólo archivos de audio, mientras que la imágenes a compartir están en /media/data/Pictures y los videos en /media/data/Videos.

Igualmente debemos configurar friendly_name para reconocer nuestro servidor rápidamente en la red, en mi caso lo llamaré Rait3-DLNA, a continuación muestro como queda la línea.

friendly_name=Rait3-DLNA
Podemos decirle a minidlna que automáticamente añada nuevos archivos a la biblioteca, obviamente, esos archivos serán añadidos una vez los hayamos colocado en las carpetas de música, imágenes o videos, para ello descomentamos la línea del inotify dejándola como sigue
inotify=yes
Igualmente le decimos a nuestro servidor cual es la dirección IP que va a escuchar, o sea, la dirección IP de nuestro equipo, en mi caso particular
listening_ip=192.168.3.15
Les recomiendo observar, y si lo desean, cambiar, el puerto por el cual minidlna está transmitiendo, sólo para saber que debemos desbloquear en los firewalls, en caso de tenerlos; la línea que indica el puerto es
# Port number for HTTP traffic (descriptions, SOAP, media transfer).
port=8200
Guardamos el archivo
Ctrl + o
Y lo cerramos
Ctrl + x
Ahora simplemente reiniciamos el servicio
sudo /etc/init.d/minidlna restart
Y listo, el servidor está funcionando a la perfección. Yo instalé MediaHouse en mi android para hacer uso de mi servidor desde ese equipo, igualmente he estado probando con el DLNA Player, pero no termina de gustarme del todo.

En mi caso el servidor no actualizó los archivos cuando los añadí a mi carpeta multimedia, así que lo que hice fue eliminar el archivo que tiene la base de datos de minidlna y reiniciar el servicio, de tal manera que el servidor genere de nuevo la base de datos; para ello se hace uso de los siguientes comandos

sudo rm -f /var/lib/minidlna/
Y para reiniciar el servidor usamos
sudo /etc/init.d/minidlna restart
Ahora, una imágen que encontré en la Web cuando estudiaba un poco sobre DLNA, me pareció agradable y decidí descargarla, sin embargo, aunque no es mía, no recuerdo de donde la descargué jeje.


A esto más o menos es a lo que hace alución Digital Living Network Alliance.

Bueno linuxeros, estamos a la orden, cualquier cosa, no duden en comentar, incluso para agradecer.

Copyleft 2014 - RAITE

Servidor Web, Correo y DNS -- Parte VIII ISPConfig


Por último, nuestro ISPConfig, que herramienta más útil por Dios...

A ver, descargaremos el tar.gz, lo descomprimiremos y luego entraremos a la carpeta de instalación.
cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/

Acto seguido, corremos el script que lo instala
php -q install.php
Nos pedirá alguna información básica como el idioma a instalar el programa y la clave de root de MySQL, de resto, en mi caso personal, no cambié ningún valor, a todos les dejé por defecto presionando "enter"

Luego de culminado el proceso, puedes ingresar a ISPConfig haciendo uso de

https://TU-IP:8080/ o en su defecto https://Nombre-Equipo:8080/

Como login y clave debes usar admin admin.

Listo muchachos. Gracias por leerme.

Copyleft 2014 - RAITE

Servidor Web, Correo y DNS -- Parte VII SquirrelMail



Primero procederemos a instalar SquirrelMail
aptitude install squirrelmail
Y luego debemos configurarlo
squirrelmail-configure
Debemos decirle a SquirrelMail que estamos usando Dovecot-Imap/Pop3.

Inicialmente, nos aparecerá un menú principal, en el cual la primera opción que seleccionaremos es la de "Definir los valores específicos predeterminados para servidores IMAP, esto lo hacemos con la opción "D"

Luego indicaremos que nuestro servidor IMAP es "dovecot"

Presionaremos cualquier tecla para continuar.

S para guardar
Q para salir

Con esto está funcionando nuestro SquirrelMail, pero aún no podemos ingresar al mismo vía Web, para ello debemos habilitarlo en nuestro PHP.
cd /etc/apache2/conf.d/
ln -s ../../squirrelmail/apache.conf squirrelmail.conf
/etc/init.d/apache2 reload
Con los comandos anteriores creamos el ln de nuestro archivo de configuración Apache del SquirrelMail y reiniciamos apache.

Ahora abrimos nuestro archivo de configuración
nano /etc/apache2/conf.d/squirrelmail.conf
Y procedemos a añadir unas cuantas líneas al  "" quedando la sección como se muestra a continuación

  Options FollowSymLinks
 
    AddType application/x-httpd-php .php
    php_flag magic_quotes_gpc Off
    php_flag track_vars On
    php_admin_flag allow_url_fopen Off
    php_value include_path .
    php_admin_value upload_tmp_dir /var/lib/squirrelmail/tmp
    php_admin_value open_basedir /usr/share/squirrelmail:/etc/squirrelmail:/var/lib/squirrelmail:/etc/hostname:/etc/mailname
    php_flag register_globals off
 
Crearemos un directorio temporal para el uso de nuestro SquirrelMail
mkdir /var/lib/squirrelmail/tmp
Y definiremos que www-data sea su usuario, para que pueda jugar con el a su antojo, recordemos que este es el usuario Web.
chown www-data /var/lib/squirrelmail/tmp
Reiniciamos apache
/etc/init.d/apache2 reload
Para ingresar a nuestro correo utilizaremos
http://TU-IP/squirrelmail

Copyleft 2014 - RAITE

Servidor Web, Correo y DNS -- Parte VI FTP, Quotas y DNS



Ya sabemos bien que es un FTP (para cualquier duda, lea el post http://ojedareinaldo.blogspot.com/2014/03/ftp-desde-consola.html en el cual se define FTP y se habla de como ingresar a un servidor FTP desde cónsola de comandos). Ahora bien, debemos instalar en nuestro equipo el servicio FTP también, para ello procederemos a hacer uso del pure-FTP.

Pure-FTP es un servidor FTP libre (bajo licencia BSD), seguro, cumple los estándares y provee una calidad asegurada para sistemas de producción. Para mayor información puede referirse a su página oficial.
http://www.pureftpd.org/project/pure-ftpd (Inglés) Noviembre, 2014
aptitude install pure-ftpd-common pure-ftpd-mysql
Debemos asegurarnos de que el FTP está configurado para iniciar como standalone y con el chroot virtual activado, para esto debemos abrir el archivo pure-ftpd-common con nuestro editor favorito
nano /etc/default/pure-ftpd-common
El archivo debe tener estas dos líneas, tal como se indica
STANDALONE_OR_INETD=standalone

VIRTUALCHROOT=true
Debemos configurar también Pure-FTP para que permita sesiones TLS, esto con el fin de añadir mayor seguridad a nuestro servidor, para ello ejecutaremos el siguiente comando.
echo 1 > /etc/pure-ftpd/conf/TLS
Y crearemos igualmente los certificados SSL, primero creamos su carpeta.
mkdir -p /etc/ssl/private/
Y luego el certificado como tal.
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Se le solicitará cierta información, la cual debe llenar con la mayor exactitud posible ya que de ella dependerá la fiabilidad de su certificado SSL.

Luego procederemos a cambiarle la permisología al certificado SSL

chmod 600 /etc/ssl/private/pure-ftpd.pem

QUOTES

Ahora bien, ¿qué es una Quota?

Wikipedia nos permite saber que "...Una quota es un límite indicado por el administrador de sistema con el fin de restringir ciertos aspectos del uso del sistema de archvios, su objetivo principal como tal es indicar el máximo de espacio (mb) que un usuario puede llegar a poseer en un sistema determinado." http://en.wikipedia.org/wiki/Disk_quota (Inglés) Noviembre, 2014

Procederemos entonces a instalar las herramientas necesarias para el Quota
aptitude install quota quotatool
Y deberemos reiniciar nuestro demonio de Pure-FTP para que tome las configuraciones
/etc/init.d/pure-ftpd-mysql restart
Se debe ahora editar el fstab para que monte los quotes
nano  /etc/fstab
Y se añade la siguiente línea
/dev/mapper/server1-root /               ext4    errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0       1
Activamos los quotes
mount -o remount /
quotacheck -avugm
quotaon -avug
Instalaremos el servidor BIND DNS.
aptitude install bind9 dnsutils
Y ahora unas cuantas herramientas de administración y estadísticas Web.
aptitude install vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl
Evitaremos que awstats nos envíe correos editando su configuración y comentando todas las líneas que generan reportes, para ello usaremos nuestro editor favorito.
nano /etc/cron.d/awstats
Quedando nuestro archivo de la siguiente manera
#MAILTO=root

#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Generate static reports:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

Copyleft 2014 - RAITE

Servidor Web, Correo y DNS -- Parte V Opcache y Estadísticas




PHP es un lenguaje interpretado, por lo tanto, con cada ejecución, el servidor tiene que compilar el código. Un sistema opcode cache se encarga de almacenar en memoria los códigos php compilados para evitar tener que compilarlos nuevamente.

Xcache es un opcode cacher veloz y estable totalmente testeado en sistema GNU/Linux. Para mayor información puede visitar su página oficial.

http://xcache.lighttpd.net/ (Inglés) Noviembre, 2014

Procederemos a instalar Xcache

aptitude install php5-xcache

Luego de instalarlo, deberemos reiniciar apache para que opere con nuestro opcode cacher

/etc/init.d/apache2 restart

PHP-FPM

Un manejador de procesos que entre sus funciones principales incluye

  • Estadísticas básicas de apache
  • Manejo avanzado de procesos con posibilidad de iniciarlos y finalizarlos
  • Habilidad de iniciar usuarios con diferentes uid/gid/chroot/ambiente
  • Reinicio de emergencia en caso de una destrución accidental por el opcode cacher

Procederemos entonces a instalar PHP-FPM

aptitude install libapache2-mod-fastcgi php5-fpm

Ahora deberemos activar el módulo y reiniciar apache


a2enmod actions fastcgi alias
/etc/init.d/apache2 restart
Copyleft 2014 - RAITE