Archivos de la categoría: Debian

Servidor VPN con Raspberry Pi

En septiembre del año pasado hice la compra de un Raspberry Pi en una conocida página de gadgets

chinos. Fue una teleserie de varios meses, ya que en marzo terminé mi pelea con DHL por el problema con el envío. Es una historia que no viene al caso contar, pero lo importante es que es algo que solo a  mi me puede ocurrir 🙂

Para el que no sepa, el Raspberry Pi es una placa que cabe en la palma de la mano que es un computador. Sus características son:

  • Memoria RAM: 512 MB
  • CPU: ARM de 700 MHz
  • Almacenamiento: No tiene, pero trae una ranura para una tarjeta SD
  • 2 puertos USB
  • Salida HDMI
  • Jack de audio de 3.5 mm
  • Salida de video RCA
  • Puerto de expansión
  • Interfaz de red.
El tamaño es realmente conveniente. Para que logres hacerte una idea de como es mira la imagen:

Fuente: bbc.co.uk
Como ves, el tamaño y las características hacen que las cosas que puedes llegar a hacer con un Rpi tiendan al infinito.
Cuando la compré pensé en levantar el blog, pero necesitaría de tiempo para administrarla y los recursos no iban soportar para tener el sitio en buenas condiciones y Movistar usa el puerto 80 para administrar los enrutadores de los clientes de forma remota.

Después de ponerla como un servidor ftp y de archivos y darme cuenta que Onedrive y Google Drive lo hacen mejor e intentar hacer un smart tv (o un media center) y usar las características de AirPlay de mis dispositivos Apple y que todo fracasara, decidí que una mejor idea sería tener un servidor VPN privado y que usara el enrutador de mi casa como gateway y así navegar por internet de una forma más segura cuando no esté en mi casa y navegar por sitios bloqueados cuando estoy en el instituto haciendo clases. 

Para hacer la configuración usé una release antigua de Raspbian y los motivos son:

  1. Me gustan las distribuciones basadas en Debian. Encuentro que son las mejores distribuciones y no hay nada mejor que APT para la administración de paquetes.
  2. Las nuevas releases de Raspbian no vienen  con el módulo de iptables dentro del núcleo, cosa que tendrías que hacer un cross-compiling, porque no creo que quieras compilar el núcleo en esa cosa.
Teniendo el sistema instalado (no es un punto que discutiremos ahora) realiza la instalación de lo necesario:
sudo apt-get install pptp

Luego habilita un modulo

sudo modprobe ppp-compress-18

Configura el servidor de VPN. Entramos al fichero /etc/pptpd.conf y configuramos los parámetros:

  • localip es la dirección ip local del servidor de VPN. La forma es: localip 192.168.1.189
  • remoteip es el juego de direcciones disponible. La forma es: remoteip 192.168.1.200-210
Ahora es tiempo de que configures algunos parámetros secundarios. Tienes que entrar al fichero /etc/ppp/pptpd-options

ms-dns DIRECCION.DE.TU.GATEWAY.LOCAL
noipx
mtu 1490
mru 1490


Es necesario contar con nombres de usuario y contraseña para que puedan autenticarse con tu sistema. Tienes que entrar a /etc/ppp/chap-secrets y agregar usuarios de la siguiente forma:

usuario[TAB]*[TAB]password[TAB]*
Agregas todos los que necesites. Guardas y cierras. Reinicia el servicio: 
sudo service pptpd restart 

Si es necesario puedes habilitar tu servidor VPN para que permita el acceso a toda la red. La idea es interactuar con la red, así que en el fichero /etc/systctl.conf  buscas la línea net.ipv4.ip_forward=0 y cambiarla por net.ipv4.ip_forward=1 Guardas, cierras y actualizas el sistema con:

sudo sysctl -p

El penúltimo paso es configurar las reglas del firewall y que éstas se apliquen cada vez que el sistema se levante. Agrega las siguientes líneas al archivo /etc/rc.local justo antes de la linea exit 0

sudo iptables -t nat -A POSTROUTING -s 192.168.1.200/24 -o eth0 -j SNAT --to LA IP DEL RASPBERRY

Para finalizar, en el router abre el puerto UDP 1723 e intenta ingresar de forma externa. Lo bueno es que todos los clientes VPN incluidos en todos los sistemas operativos servirán para tu servidor.

Como extra, le puedes comprar un case y quedará así:

Ah! Lo otro extra es que puedes usar un servicio como No-Ip o alguno otro y será de lujo.
Chau!

LTSP en Debian

Hola Mundo:

 Es complicado ser profe. Se los digo, porque tienes que inventar actividades para hacer que los alumnos se
entusiasmen, se diviertan y aprendan. Encuentro que no hay nada mejor que aprender metiendo las manos.

Uno de mis cursos es un taller de hardware, donde se les enseña a los alumnos las partes del computador, como armar y desarmar y otras clases de dispositivos. El problema está en que ellos ya conocen del tema (y bastante)  y resulta difícil enseñarles algo que ellos dominan bastante bien.

Materiales no teníamos mucho en la sala de clases. Teníamos un puñado de computadores antiguos, en los que no teníamos la certera de que funcionaran. No sabíamos en qué estado estaban, ni mucho menos si encendían o no.

Realizaron pruebas y de todos, lograron hacer funcionar unos cuantos. Durante el armado de los computadores, nos dimos cuenta que todos los discos duros estaban malos o se los habían llevado otros alumnos.

No fue dificil revolver la cabeza y acordarse del píngüino. Les conté que existía una solución llamaba LTSP y que consistía levantar un sistema, escritorio, funcional con una administración centralizada y todo se hacía a través de la red, inclusive el booteo.

Mi distribución favorita es Debian, asi que decidí instalar el sistemita ahí.

Creación de la máquina virtual
Para el propósito usé una máquina virtual sobre Virtualbox con los siguientes recursos:

  • Memoria: 1024 MB
  • Disco Duro: 10 GB
  • Procesador: 1
  • Interfaces de red: 1
Lo importante está en que la interfaz de red estaba conectado a la red interna. La red interna funciona como un switch virtual. Es donde pueden conversar las máquinas virtuales de forma aislada de la red física. Se pueden crear distintas “redes internas” con la herramienta.
Para hacer pruebas, creé una máquina virtual que simulaba ser un cliente tontorrón:
  • Memoria: 512 MB
  • Procesador: 1
  • Interfaces de red: 1
Es imperante que esta máquina tenga el arranque por red habilitado y que sea prioridad,
Instalación del sistema
No hablaré sobre la instalación de Debian. Hay muchos artículos que hablan en internet sobre eso. En todo caso, la instalación es super intuitiva y no requiere de mucho trabajo. Nada más deben asegurarse que están instalando el entorno gráfico.
Una vez que el sistema está instalado, tienen que abrir una consola y como root ejecutar
apt-get install ltsp-server-standalone

Descargará una serie de paquetes. Este proceso toma poco tiempo.

Construcción del cliente
Lo importante es construir una imagen que es que le copiará por TFTP a los clientes que se conecten.
Existen diversos parámetros que los pueden revisar en esta página.
Lo más sencillo es ejecutar:


ltsp-build-client

Y santo remedio. Comenzará a construir y empaquetar una imagen para cliente. La imagen la cream a partir de la configuración que tengan en su computador. Es posible personalizarla, pero escapa de este tutorial.

Configuración servidor DHCP
La configuracion que viene por defecto no funciona. De hecho, se podrán dar cuenta que al arrancar el servicio da un mensaje de error en rojo.
En una rápida configuración, editaremos el archivo /etc/dhcpd/dhcpd.conf  y agregaremos al final del archivo la siguiente linea:

include "/etc/ltsp/dhcpd.conf"

Este cambio agregará la configuración que debiera tener el servidor DHCP para permitir que los clientes reciban una imagen por TFTP. El archivo incluye la dirección del servidor TFTP.
Si no quieres realizar muchos cambios a los archivos de configuración, te recomiendo que configures tu tarjeta de red con la dirección 192.168.67.1 /24.

Retoques en la configuración
Es necesario realizar pequeñas ediciones en la configuración de algunos componentes para asegurarnos que el servicio funcionará como reloj. Lo primero es agregar la siguiente línea al archivo /etc/exports

/opt/ltsp *(ro,no_root_squash,async,no_subtree_check)

Luego, asegúrense que el servicio de TFTP inicia por si solo. Para esto tienen que editar el archivo /etc/default/tftpd-hpa y agregar la línea:

RUN_DAEMON="yes"

Después que ya realizaron el cambio, tienen que comentar,  en el archivo /etc/inetd.conf, la línea:

#tftp           dgram   udp     wait    root  /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot

y reinician los servicios:

invoke-rc.d openbsd-inetd restart
invoke-rc.d tftpd-hpa restart

Final
Teniendo todo listo, ya están en condiciones de hacer funcionar el sistema. Tienen que conectar a la red a un computador que soporte arranque por red.
Al final de la implementación debieran llegar a algo así:

El curso completo con los que hicimos la implementación real:

Eso. Chau

Instalando Oracle Express en Debian

Hola! Despues de mas de un mes de inactividad intensa en el blog, he vuelto con un articulo muy sencillo sobre  la instalacion de Oracle en Debian Linux.  Pero eso si, no le vayan a decir al resto del equipo de Microsoft Student Partners que ando escribiendo cosas de Linux jijiji. Compromiso?

Ok, vamos.

Antes que todo, tenemos que tener  instalado Debian (obvio) y agregar estas lineas al final del archivo /etc/apt/sources.list 

## Oracle
deb http://oss.oracle.com/debian unstable main non-free

Guardamos, cerramos y hacemos un

apt-get update

Es normal que nos de un error como este:

W: GPG error: http://oss.oracle.com unstable Release: Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY 2E2BCDBCB38A8516
W: Tal vez quiera ejecutar ‘apt-get update’ para corregir estos problemas

Y luego, instalamos el paquete de Oracle con:

apt-get install oracle-xe-universal

Es recomendable tener mas de 1 GB en Swap, aunque hay gente que asegura haberlo instalado con menos, pero a mi me dio error.  Luego que ya instalo, hay que configurar escribiendo lo siguiente:

/etc/init.d/oracle-xe configure

La primera parte de la configuracion corresponde a los puertos sobre los cuales Oracle trabajara. Se recomienda dejar los valores por defecto. Despues de eso nos consultara por la password para el usuario SYS y el usuario SYSTEM. Oracle recomienda cambiarlas despues, pero por el momento, va a ser una password para las dos. Al final, nos preguntara si queremos que Oracle arranque al inicio. Le ponemos y .

Al final de la instalacion, podemos acceder a http://127.0.0.1:8080/apex y veremos una ventana como esta:

 Otras configuraciones y bla bla bla vendran en otros posts!

Buenas noches

Como tener una radio por internet

Hace varios años, cuando ustream.tv ni twitcam.com existían, las radios por internet estuvieron muy de moda en el mundo underground (año 2005 aprox.).
Esa moda se fue extinguiendo, ya que los medios de streaming fueron evolucionando y cada vez es más fácil transmitir contenido más rico en multimedia al alcance de un par de clicks.
Las conexiones a internet han mejorado desde aquel entonces y dije “¿Por qué no compartir mi música?”.
Hay numerosas formas de hacerlo. Existe mucho software disponible en internet para realizar esta tarea. Yo me inclino por el software Shoutcast, porque tiene una versión para cada plataforma y AIMP2, porque es bien nice y aún no engorda tanto como winamp. (servidor y cliente que “transmite” , respectivamente).
Partamos por el servidor. Hay dos formas de hacerlo. Una es usando el mismo pc y la otra es usando un pc aparte.
En esta ocasión, usaremos un pc aparte que funciona bajo Linux Debian (El computador no reune ninguna característica en especial. Solo debe estar conectado a nuestra red).
Desde la máquina con Linux (que debemos estar logueados como root) debemos escribir lo siguiente:

$ cd /opt
$ mkdir radio
$ cd radio
$wget -c http://www.shoutcast2.com/download/sc_serv_1.9.8_Linux.tar.gz
$ apt-get install gunzip
$ gunzip -d sc_serv_1.9.8_Linux.tar.gz

Perfecto! Con eso tenemos lista la aplicacion por el lado del servidor. Solo tenemos que configurarla. Para esto:

$ nano sc_serv.conf

Tenemos varias opciones que configurar, pero las mas relevantes son:

  • Password -> Es la password para transmitir
  • AdminPassword -> Password para el panel de administracion via web.

Ahora vamos a nuestro pc. Yo usaré el AIMP2, así que asumo que ustedes igual lo tienen. Si no lo tienen, descarguenlo desde http://www.aimp.ru. Primero que todo, hay que descargar la pila de plugins para que aimp2 se pueda conectar con nuestro servidor shoutcast.

Los plugins los descargan desde aca: http://www.4shared.com/file/0HAxhh8S/PluginsAimp.html
(Son los que yo uso) y hay que descomprimirlo en C:Archivos de ProgramaAIMP2PlugIns.
Es importante tener cerrada la aplicacion antes de hacer los pasos mencionados anteriormente.
Ahora abrimos el AIMP2 y en el menú de la aplicación, vamos a DSP Manager y se nos abrirá otra ventana.
En esa ventana, en WinAmp DSP-PlugIns seleccionamos “Nullsoft….”

Y si apretamos options, nos debe salir una ventana como esta:

Como se ve en la imagen, hay tres pestañas: Main, Output, Encoder e Input.

  • Main: Te informa de todos los streamings del momento. Por lo general muestra uno (si solo si se esta transmitiendo)
  • Output: Aqui hay que llenar la informacion de la conexion. En Address tienen que poner el nombre del host ede su maquina Linux en donde esta configurado el servidor. En Port hay que dejarlo en 8000 y Password, hay que ponerle la password definida en el sc_serv.conf y Encoder, dejarlo en 1.
  • Encoder:  Dejar Encoder Type en MP3 Encoder y en Encoder Settings, dejarlo en 32kbps para no consumir tanto ancho de banda.
  • Input: Si queremos musica, dejarlo en WinAmp. Si queremos hablar por el microfono, dejarlo en SoundCard Input.

Volvamos al servidor. Estamos en el directorio /opt/radio/ y logueados como root. Solo falta ejecutar la aplicacion de servidor:

$ ./sc_serv

y no mover nada mas.

Volvemos al cliente. Desde la pestaña Output, debemos apretar “Connect” y debe salir esto:

Hay un boton que se llama “Yellopages” y si lo apretan veran algo asi, que es para cambiar la informacion de la radio:

Yo lo tengo así. Ustedes lo pueden dejar como quieran.

La parte final es entregarle la direccion a tus amigos. Esta seria:

http://tuip:8000/listen.pls

Es importante tener abierto el puerto 80, 8000 y 8001

Un saludo.