Servidor de escritorio remoto XRDP en raspberry 2

Instalación de servidor de escritorio remoto en raspberry pi 2 con xrdp

$ sudo apt-get install xrdp

Revisamos si el servicio esta corriendo:

$ sudo service xrdp status
 ● xrdp.service - LSB: Start xrdp and sesman daemons
 Loaded: loaded (/etc/init.d/xrdp)
 Active: active (running) since mar 2016-03-08 21:50:51 CST; 10h ago
 CGroup: /system.slice/xrdp.service
 ├─17141 /usr/sbin/xrdp
 └─17143 /usr/sbin/xrdp-sesman

En windows buscamos el mstsc.exe y especificamos la dirección de nuestra raspberry y el usuario:

 

remotedesktop2

Ingresamos nuestra clave :

remotedesktop3.png

Nota particular: la configuración del teclado cambia en el escritorio remoto, por mas que ingresaba mi contraseña tenia error.

 

Si todo sale correctamente entraremos al escritorio. 🙂

remotedesktop4.png

Facil, facil, facil.

Basado en esta pagina http://www.deacosta.com/como-configurar-una-conexion-de-escritorio-remoto-rdp-en-una-raspberry-pi/

Anuncios

Error en bloque

Acabo de adquirir un conector usb  IDE/Sata para poder usar un disco duro antiguo que tenia guardado por ahí, y conectarlo a mi servidor Debian casero. La sorpresa fue que al tratar de montar una partición del disco este me mandaba el siguiente error:

root@observer:~#mount -t ext4 /dev/sdb7 /media/datos
mount: wrong fs type, bad option, bad superblock on /dev/sdb7,
missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
dmesg | tail or so

Ok me dice que pruebe dmesg  así que lo hago:

root@observer:~# dmesg | tail

[25753.014324] sdb: p7  size 84174848 extends beyond EOD, truncated

[25753.164262] usb 2-1: reset high-speed USB device numbre 3 using ehci-pci

[26263.329327] fuse init (API version 7.23)

[26406.970128] EXT-fs (sdb7): bad geometry: block count 10521856 exceeds size o f device (10521805 blocks)

Bueno aqui hay una clave dice que la numeración del bloque rebasa la del dispositivo 10521856 > 10521805, se comprueba con el comando fsck
root@observer:~# fsck.ext4 /dev/sdb7
e2fsck 1.42.12 (29-aug-2014)
El tamaño del sistema de ficheros (de acuerdo con el superbloque) es de 10521856 bloques.
El tamaño físico del dispositivo es de 10521805 boques.
¡Es probable que el superbloque o la tabla de particiones estén corruptos!
Interrumpir? no
/home contiene un sistema de ficheros con errores, se fuerza revisión.
Paso 1: Verificando nodos-i, bloques y tamaños
Paso 2: Verificando la estructura del directorio
Paso 3: Revisando la conectividad de directorios
Paso 4: Revisando la cuenta de referencia
Paso 5: Revisando el resumen de información de grupos
/home: 3718/2632672 ficheros (0.4% no contiguos), 231804/10521856 bloques

Bueno, esto no resolvio el problema, seguia apareciondome el mismo error, asi que preguntando a Google encontre que con el comando resize2fs incrementa o reduce el tamaño de la particion, pero tambien sirve para definir el tamaño de los bloque. En su pagina de manual comenta que si no se define ningun tamaño tomará el tamaño del sistema, asi que aplicamos el comando de esta forma y…

root@observer:~# resize2fs /dev/sdb7
resize2fs 1.42.12 (29-aug-2014)
Cambiando el tamaño del sistema de ficheros en /dev/sdb7 a 10521805 (4k) bloques.
The filesystem on /dev/sdb7 is now 10521805 (4k) blocks long.

Y con esto pude montar la partición sin problema.

root@observer:~# mount -t ext4 /dev/sdb7 /media/usb/
root@observer:~#

Lo mejor es extraer toda la información, y hacer un formato del disco, o checar el systema con algún programa.
 

 

De wma a mp3 o ogg

Instalamos el paquete ffmpeg:

$ sudo apt-get install ffmpeg

La sintaxis general es

$ ffmpeg [[opciones archivo de entrada][`-i’ archivo de entrada]]… {[opciones archivo de salida] archivo de salida}…

Para convertir archivos en formato wma a ogg:

$ ffmpeg -i *.wma -acodec libvorbis -aq 100 *.ogg

Para converti archivos en formato wma a mp3:

$ ffmpeg -i *wma -acodec mp3 -aq 100 *.mp3

Si tenemos varios archivos a convertir podemos correr estos comandos en la misma carpeta donde estan los archivos;

$ for i in *.wma; do ffmpeg -i $i -acodec libvorbis -aq 100 ${i%.wma}.ogg; done

Si el nombre del archivo contiene espacios en blanco se tendria que tildar de la siguiente manera, para que tome en cuenta los nombres de los archivos:

$for i in *.wma; do ffmpeg -i “$i” -acodec libvorbis -aq 100 “${i%.wma}.ogg”; done

 

 

Instalando Transmission-deamon

transmission

Transmission en un programa para descargar archivos torrent, cuenta con otro programa sin la clasica interfaz de usuario Transmission-deamon que puedes manejar desde diferentes computadoras conectadas a la misma red o con apps de Android.

Procedemos con el clasico:

#apt-get update
#apt-get ugrade
#apt-get dist-upgrade

Instalamos  Transmission-deamon:
#apt-get install transmission-deamon

Creamos dos carpetas para albergar los torrents completos y en proceso:

$ mkdir /home/miusuario/completo

$ mkdir /home/miusuario/incompleto

Necesitamos añadir “miusuario” al grupo debian-transmission y cambiar el grupo de las carpetas creadas en el anterior punto.

# usermod -a -G debian-transmission miusuario
# chgrp debian-transmission /home/miusuario/completo
# chgrp debian-transmission /home/miusuario/incompleto
# chmod 770 /home/miusuario/completo
# chmod 770 /home/miusuario/incompleto

Luego pasamos a parar el demonio:
# /etc/init.d/transmission-deamon stop
Ahora cambiamos el archivo de configuración:
# nano /etc/transmission-daemon/settings.json
Detectamos y Cambiamos:
"blocklist-enabled": true,

"blocklist-url": "http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz",

Esto es una lista para bloquear  direcciones que se sospechan que puedan contener malware.

Detectamos “download-dir”  y escribimos las carpetas que especificamos previamente para descargar

 "download-dir": "/home/miusuario/completo"

 "incomplete-dir": "/home/miusuario/incompleto"

Detectamos “rpc-password”: y “rpc-username”:

"rpc-password": "PASSWORD",
"rpc-username": "miusuario",

Ingresamos un usuario y el password.

 

Salvamos el archivo y reiniciamos el servicio.

# service transmission-daemon reload
Si cambias la password ejecuta # service transmission-daemon reload  seguido de # service transmission-daemon restart

En otra computadora dentro de la red abre el navegador de internet y ingresa esta direccion:

http://miipdelservidor:9091/transmission/web/
Donde miipdelservidor es la ip fija donde esta instalado el servidor de transmission, ingresa el usuario y password que especificaste, te encontraras con una imagen mas o menos así:

transmission-web Aquí se presentan los torrents que estan en proceso o ya descargados, tambien puedes añadir o borrar torrents, modificar la velocidad de descarga, entre otras cosas.  Y si  configuras las carpetas para que se comparta con un servidor DLNA , pues  tendras a tu disposición los archivos multimedia que descargues para verlos en directamente en el servidor DLNA.

Instalando y configurando un servidor DNLA

index

DLNA que sus siglas en ingles significan Digital Living Network Alliance , es una manera de compartir archivos multimedia de forma facil y comoda entre distintos aparatos tales como telefonos moviles, televisiones de ultima generación, tabletas, etc.

Claro que linux no nos priva de este software, específicamente en Debian existe un servidor de DLNA en el paquete minidlna. Resulta altamente comodo instalar un servidor de este tipo ya que tienes todos tus archivos centralizados y lo puedes compartir a cualquier cliente en tu hogar.

Vamos a los pasos :

Instalar el servidor en Debian Linux. Sin olvidar el comando previo de apt-get update, apt-get upgrade.

#apt-get install minidlna

Esto instalará el servidor DLNA, el archivo de configuración es este /etc/minidlna.conf, procedemos a modificarlos con tu editor de texto preferido

#nano /etc/minidlna.conf

Dentro de este archivo es necesario configuarar algunas cosas, primero configurar las carpetas que contendran los archivos a compartir, localiza esta parte en el archivo media_dir=  y la configuras a tus requerimientos.

media_dir=/carpeta_dlna/mis_imagenes
media_dir=/carpeta_dlna/mi_musica
media_dir=/carpeta_dlna/mis_videos

Si quieres restringir  una carpeta a un  tipo de archivo en especifico tendrias que señalarlo de esta manera. Se pueden agregar tantas carpetas como se requiera.

media_dir=P,/carpeta_dlna/mis_imagenes             "P"  para imagenes
media_dir=A,/carpeta_dlna/mi_musica                "A" para audio
media_dir=V,/carpeta_dlna/mis_videos               "V" para videos 

Si tenemos varios adaptadores de red, se puede configurar el adaptador por default.

network_interface=eth0

Se puede cambiar el puerto, yo deje el prestablecido.

port=8200

Indicamos un nombre mas amigable para presentarse a los clientes.

friendly_name=miservidorDLNA

Guardamos los cambios y reiniciamos el servidor

#/etc/init.d/minidlna start

Arrancar el servicio al inicio.

Para arrancar el servicio al inicio del sistema es necesario realizar este comando:

# update-rc.d minidlna defaults

Para reiniciar, parar o conocer el status del servidor los comandos son estos:

# service minidlna start 
# service minidlna stop
# service minidlna status

Si agregas mas archivos multimedia a tus carpetas pero no aparecen en el servidor, deberás forzar la recarga.

# service minidlna force-reload

Cliente DNLA

Pues si todo sale bien , tu servidor esta en condiciones de compartir los archivos en las carpetas que configuraste para ello.  En los sistemas windows el reconocimiento no tiene mayor problema, en el explorador de carpetas en el apartado dispositivos multimedia aparecerá el nuevo servidor.

Para los sistemas Android existen varios clientes-servidores es cuestion de explorar cual se adapta a tus necesidades , en mi caso encontre Skitifa y funciona muy bien. Aqui una imagen.

skifta-update

 

Instalando Servidor de Impresion CUPS

¿No es engorroso llevar tu lap hasta el lugar de la impresora, luego conectar el cable, imprimir, desconectarlo , regresar la lap a su lugar ? Esto si no ocurre algun otro problema.  ¿No seria mejor dejar la impresora conectada a  un servidor para que puedas imprimir desde cualquier cuarto en tu casa? Para esto existe CUPS que es un sistema de impresion en red open source , que utiliza el protocolo IPP ( Internet Printing Protocol), para imprimir de manera local o en red.

  LA INSTALACION

Para instalar CUPS tienes que dirigirte a tu terminal e ingresar el siguiente comando:

# apt-get -y install cups

Despues de terminar la instalación,  el programa CUPS añade el grupo lpadmin, este es el grupo que administra las impresoras, asi que hay que agregarse dentro de ese grupo para poder administrar los dispositivos (impresoras).

# usermod -a -G lpadmin miusuario

Para poder acceder a la impresora antes de configurar el servidor, tenemos que modificar el siguiente archivo. Respaldando el archivo por cualquier problema futuro.

# cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf_back
# nano /etc/cups/cupsd.conf

Dentro del archivo localizamos la siguiente linea,

Listen localhost:631

y la descomentamos o borramos  y ponemos esto:

Port 631

Para difundir el servidor de red por toda la red añadimos esto, tomando en cuenta las direcciones de red particulares.

BrowseAddress 192.168.0.255:631

Esto es para recibir peticiones de cualquier interfaz de red que se dirija a este puerto. Localiza mas abajo en el archivo los apartados location, las palabras en este color son las que hay que añadir.

En el primero permite desplegar la pagina de CUPS en tu navegador.

< Location / >
Order allow,deny
Allow @local
< /Location >

En este te permite, entrar en el apartado de admin en la pagina de CUPS

< Location /admin >
Order allow,deny
Allow @local
< /Location >

Y en este te permite modificar los archivos de configuración.

< Location /admin/conf >
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow @local
< /Location >

Salva y cierra el archivo.

Cada que se modifique el archivo hay que reiniciar el servidor CUPS. Para esto ejecuta el siguiente comando

# service cups restart

Despues de reiniciar el servidor CUPS, sera posible administrar las impresoras desde cualquier computadora conectada a la red local, yendo a la direccion del servidor en cualquier navegador ,  http://ipdelservidor:631, si no sabes que direccion ejecuta este comando:

# ifconfig 

LA CONFIGURACIÓN DE CUPS

Desde ahora puedes administrar el servidor CUPS desde el navegador de cualquier computadora conectada a tu red. Solo tienes que dirigirte a http://ip.direcciondeCUPS:631, donde ip.direcciondeCUPS  es la dirección de tu servidor en la red. Si esta todo bien configurado te saldra una pagina mas o menos así:

pagCUPS

En donde existe una pestaña con la palabra Administración, eliges la pestaña , te preguntara por usuario y contraseña que es el usuario o usuarios que agregaste al grupo lpadmin,  una vez dentro podras agregar, borrar y administrar impresoras y sus trabajos de impresión.

La primero es añadir una impresora, en las opciones podras dar nombre a la impresora, descripcion asi como marcar la opción si deseas compartir la impresora.

Despues se te presentara la opción de elegir los controladores para tu impresora. Busca el controlador  que corresponda al modelo y marca de tu  impresora. Si no funciona puedes probar con otro que sea similar.

Si no llegas a encontrar el modelo de tu impresora puedes buscar los controladores PPD en la pagina de la marca de la impresora. Una ves descargado existe la opción de cargar otros controladores.

Si todo va bien, ya tenemos configurada nuestra impresora, solo falta ajustar las configuraciones como tamaño de papel, calidad de la impresion, opciones incorporadas a la impresora, etc. En el último paso puedes mandar una página de prueba y ver que todo funciona correctamente.

Usando linea de comandos para imprimir.

Si no estas en un entorno de escritorio, aqui hay unos comandos muy utiles para imprimir:

Checar si  la impresora esta corriendo:

$ lpstat -r

Checar la impresora predeterminada:

$ lpstat -d

Imprimir un archivo:

$ lp filename

INSTALANDO LA IMPRESORA EN SISTEMAS WINDOWS

Desde ahora la impresora puede ser descubierta por los demas clientes en la red, en el caso de windows los pasos son los siguientes, dirigirte a Panel de control > Agregar una impresora de red o conectada a otro equipo , en la siguiente ventana debemos elegir ” La impresora no esta en la lista”

500px-Win3En la opcion seleccionar una impresora compartida por nombre añadimos la dirección de la impresora, algo así:

https:// direccionip:631/printers/<nombredelaimpresora>

por ejemplo en mi caso quite https y lo deje http, ya que no me reconocia de esa manera:

http://192.168.0.100:631/printers/HP_Deskjet_F4200_series

El resto es agregar el controlador adecuado para tu impresora por marca y modelo.Win5

Despues para comprobar su funcionamiento se imprime una “pagina de prueba”, y se cerciora que la impresora trabaje.

Instalando el cliente No-ip

El cliente no-ip sirve para actualizar tu dirección de ip en los servidores DNS  y no tener que averiguar diariamente si mi dirección de ip a cambiado.  Esto tiene mucha utilidad   por ejemplo si estas corriendo un servidor ssh.

Lo primero que hay que hacer es bajar el cliente, extraerlo y

$ cd /usr/local/src/
# wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
# tar xvf noip-duc-linux.tar.gz
# cd noip-2.1.7/
# make

Si el comando make no funciona es que no tienes instalado el compilador GCC, para esto previamente tienes que instalar “built-essential”

Para configurar el cliente.

Otra vez como root ejecuta este comando

/usr/local/bin/noip2 -C

Te pedira el usuario y password de la cuenta de No-ip, tendras que registrarte previamente en la pagina, tambien te pregunta  cuales host quieres actualizar y el tiempo de acualización del host en  minutos, 30 min es el tiempo que tiene por default.

Ahora el cliente esta corriendo, para comprobarlo y listar los host que tienes configurados basta correr el siguiente comando:

/usr/local/bin/noip2 -S
Account fulanito
configured for:
        host  midireccion.no-ip.org
Updating every 30 minutes via /dev/eth0 with NAT enabled.

Arrancar  noip2 cuando se encienda la compu.

Para correr el demonio automáticamente cada vez que se encienda la compu hay que copiar el siguiente script en el archivo:

/etc/init.d/noip2

### BEGIN INIT INFO
# Provides:          noip2
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Simple script to start a program at boot
# Description:       A simple script from www.stuffaboutcode.com which will start / stop a program a boot / shutdown.
### END INIT INFO

# If you want a command to always run, put it here

# Carry out specific functions when asked to by the system
case "$1" in
 start)
  echo "Starting noip2"
  # run application you want to start
  /usr/local/bin/noip2
  ;;
 stop)
  echo "Stopping noip2"
  # kill application you want to stop
  killall noip2
  ;;
 *)
  echo "Usage: /etc/init.d/noip2 {start|stop}"
  exit 1
  ;;
esac

exit 0

Tenemos que asegurarnos que sea ejecutable.

# chmod 755 /etc/init.d/noip2

Probar el arranque del programa

# /etc/init.d/noip2 start

Parar el programa

# /etc/init.d/noip2 stop

Registrar el script para que arranque al encender el sistema

Para registrar el script para que arranque al encender el sistema, se ejecuta el siguiente comando:

# update-rc.d noip2 defaults

Nota: La cabecera al inicio del script provee detalles acerca de su arranque de acuerdo a la LSB (Linux Standard Base), y puede ser usado en otros scripts. Si quieres saber mas acerca de crear LSB scripts para manejar servicios, aqui hay mas informacion http://wiki.debian.org/LSBInitScripts

Si alguna vez necesitas remover el script del arranque, el siguiente comando te puede ayudar:

# update-rc.d -f  nombredelscript remove

Tomado de aqui:
http://www.stuffaboutcode.com/2012/06/raspberry-pi-run-program-at-start-up.html

http://www.noip.com/support/knowledgebase/installing-the-linux-dynamic-update-client/

Instalar servidor ssh y configuración basica.

Llegué a este programa tratando de saltarme el proxy del trabajo, y después de varios intentos tengo funcionando un servidor ssh casero, y con el, ademas de saltarme el proxy de la oficina, puedo realizar conexiones remotas hacia mi compu desde cualquier lugar con conexión a internet.

Tambien decir que la conexión ssh, por lo que he leido, es mas seguro si solo conectas por protocolos mas sencillos.

Lo primero que hay que hacer es instalar el servidor ssh en linux, en mi caso estoy usando la distribucion de Linux Mint derivada de Ubuntu, así:

Instalando el servidor y cliente ssh

 $ sudo aptitude install openssh-server openssh-client

Esto instala el servidor y el cliente.

Configurando el servidor ssh

Hay que configurar el archivo con tu editor de texto favorito. En mi caso con nano

sudo nano /etc/ssh/sshd_config

Ya que aquí es donde se ajustan los parametros de seguridad y acceso. Los parametros mas importantes para una configuración casera y estandar son:

Port 22

Tener en cuenta que algunos proxys de oficina solo admiten el puerto 443 , lo conveniente no es dejar el puerto tal cual, ya que  muchos ataques se dirigen a este puerto.

MaxAuthTries 3

Número maximo de intentos para ingresar

LoginGraceTime 30

Tiempo máximo en segundos para ingresar.

PermitRootLogin no

No permitir ingresar con root, por obvias razones.

AllowUsers  fulano, mengano

Permite el acceso solo a los usuarios aqui nombrados separados por coma, en este caso da acceso al usuario “fulano” y “mengano”

PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

Indica que la autentificación sea por llave pública y el archivo donde se registran los llaves publicas de los clientes a los que les damos acceso.

PermitEmptyPasswords no

No permitir passwords vacios.

MaxStartups 4

Numero maximo de conexiones.

PasswordAuthentication no

No permitir autenticación con Password, restringe el acceso a llaves públicas.

Reiniciar el servidor ssh

Se  necesita reiniciar el servidor para que los cambios surtan efecto.

# /etc/init.d/ssh restart

Estos son las modificaciones al archivo para tener un servidor ssh mas o menos seguro, en el siguiente post voy a generar las llaves publicas y privadas para acceder al servidor.

Comodines en SHELL

COMODINES               RESULTADO

*                                     Coincide cualquier caracteres

?                                     Coincide un caracter

[caracter]                      Señala cualquier caracter especificado en el                                                     conjunto

[!caracter]                    Señala cualquier caracter fuera de este conjunto

[[:clase:]]                      Señala cualquier caracter dentro de las distintas                                            clases

CLASES:

[:alnum:]        Cualquier valor alfanumerico

[:alpha:]              Cualquier valor alfabetico

[:digit:]              Cualquier valor numerico

[:lower:]           Cualquier letra minuscula

[:upper:]           Cualquier letra en mayuscula