lunes, 4 de junio de 2018

OrangePi PC

A continuación todo lo que he ido reuniendo sobre la configuración que yo buscaba, como servidor de archivos y gestor de descargas:

  1. Descargar e instalar Armbian. 
  2. Ajustar distribución de teclado español.
  3. Ajustar la zona horaria
  4. Cambiar a una IP fija
  5. Hacer un script que se ejecute al inicio, o bien tras iniciar sesión en la consola.
  6. Personalizar la pantalla de inicio MOTD (Message Of The Day).
  7. Instalar el servidor de archivos SAMBA
  8. Montar un Pendrive de forma fija
  9. MiniDLNA, para ver los archivos compartidos desde un smart TV (probado en Samsung)
  10. Transmission-daemon. Para descargar torrent desde PC o App Android/iOS.
  11. Instalar un servidor VPN
  12. Configurar un servidor DNS (si tu IP es dinámica)
  13. Redirigir puertos en el router
  14. Utilidades y comandos

1. Descargar e instalar Armbian. 

En mi caso, la versión de consola 5.38. Son 244mb de descarga. La he subido a mi Drive, ocupa una tarjeta de 2Gb al 70%, una vez instalado.
También he probado la versión completa, subida a mi Drive por si las moscas. Ocupa una tarjeta de 8Gb al 30%, una vez instalado.
No pierdo demasiado tiempo explicando cómo descargar y grabar la imagen en la microSD, ambas vienen en un archivo comprimido que contiene un .img; hay muchas herramientas para grabarlo a la SD.
Sí hago hincapié en el login inicial: 
nombre de usuario: root
contraseña: 1234
También lo pone en la web de armbian, pero no lo ví en su momento...

Para las siguientes configuraciones iniciales, hay maneras más fáciles de hacerlo en el entorno gráfico, pero como la consola vale para las dos, me centro en ella.

2. Ajustar distribución de teclado español.

sudo dpkg-reconfigure keyboard-configuration
Elegir teclado genérico de 105 teclas.

3. Ajustar la zona horaria

sudo dpkg-reconfigure tzdata


4. Cambiar a una IP fija

Liberar IP:
sudo dhclient -r
Renovar IP (DHCP):
sudo dhclient

Para establecer una IP fija yo lo he hecho con la utilidad de configuración de armbian:
sudo armbian-config

Network/IP/Static/Ajustar IP/Cancel/cancel

Tras reiniciar, se habrá ajustado a la IP seleccionada.
También posible sin reiniciar:
ifconfig (equivalente a ipconfig en windows, muestra información del adaptador (eth0) e ip actual)
sudo ifdown eth0 (desconecta el adaptador eth0)
sudo ifup eth0 (lo vuelve a conectar, esta vez con la IP ajustada).

5. Hacer un script que se ejecute al inicio, o bien tras iniciar sesión en la consola.

Muy útil para cargar programas, etc. Hay dos opciones: que se inicie cuando arrancas la OPi, aunque no hayas encendido la pantalla ni iniciado sesión, o bien cuando inicias sesión en consola, SSH, etc.
La primera la expondré en la sección del VPN
La segunda es la que explico en la sección siguiente:

6. Personalizar la pantalla de inicio MOTD (Message Of The Day).

sudo run-parts /etc/update-motd.d/

















7. Instalar el servidor de archivos SAMBA

sudo apt-get install samba
Nueva carpeta para compartir en la red:
sudo mkdir /shared
Check permisos (por curiosidad):
stat /shared (mostrará 0755)
Le damos permisos:
sudo chmod 777 /shared

Este es un punto que me costó entender cuando empecé con linux: esta carpeta pertenece a la tarjeta SD (es el "disco duro" de la Orange Pi"), con lo cual, podemos poner cosas dentro hasta llenar el disco. Sin embargo, también podemos utilizarla como punto de montaje de un medio extraible (disco duro o pendrive USB). Así, esta carpeta "enlazará" con el medio seleccionado, y todo lo que pongamos, se guardará en el pincho o disco duro externo.
Si ya lo hemos enchufado, podemos identificarlo por su capacidad con el comando:
sudo fdisk -l
En mi caso aparece como /dev/sda1
Para ver tipo de disco:
sudo blkid /dev/sda1
En mi caso, TYPE="vfat"
Otro dato muy importante es "UUID": si utilizamos más de un pendrive y queremos que uno en particular siempre se monte en una ubicación concreta, lo definiremos así al editar la tabla fstab:
sudo nano /etc/fstab
 Y añado la siguiente línea:
/dev/sda1 /shared vfat defaults 0 0
Si quiero montarlo por UUID, igual:
UUID=47FA-4071 /shared vfat defaults 0 0

Ahora editamos el fichero de configuración:
sudo nano /etc/samba/smb.conf

Para añadir al final:

[SAMBA]
comment = Carpeta compartida
path = /shared
browseable = Yes
writeable = Yes
create mask = 0777
directory mask = 0777
Public = yes
Guest ok = yes

Para terminar con la configuración de samba, hay que darle una contraseña para samba a nuestro usuario de linux (o crear uno nuevo en linux para luego darle contraseña y usarlo en samba):
sudo smbpasswd -a miguel

8. Montar un Pendrive de forma fija

Ya visto en el apartado anterior.

9. MiniDLNA, para ver los archivos compartidos desde un smart TV (probado en Samsung)

Empiezo instalando el paquete:
sudo apt-get install minidlna
Ahora configurando las opciones:
sudo nano /etc/minidlna.conf
Modifico la línea:
media_dir=V,/shared
También me gusta descomentar la siguiente y darle un nombre visible desde la TV:
friendly_name=OrangePi

Si hay que hacer algún cambio en la configuración, detener el servicio, hacer el cambio y volver a arrancarlo:
sudo service minidlna stop
sudo service mimidlna (re)start

10. Transmission-daemon. Para descargar torrent desde PC o App Android/iOS.


Primera parte: Instalación y configuración en la OPi.


sudo apt-get install transmission-daemon
sudo service transmission-daemon stop
Editar el fichero de configuración:
sudo nano /etc/transmission-daemon/settings.json
Ahí modificamos las líneas:
"download-dir": "/shared",
"incomplete-dir": "/shared/temp",
"incomplete-dir-enabled": true,
"rpc-password": "mi contraseña",
"rpc-username": "mi usario",
"rpc-whitelist-enabled": false,

Como hicimos en el apartado 7; nueva carpeta para los archivos temporales:
sudo mkdir /shared/temp
Check permisos (por curiosidad):
stat /shared (mostrará 0755)
Le damos permisos:
sudo chmod 777 /shared/temp

sudo service transmission-daemon restart

Ahora, tras reiniciar la OPi, debería estar el servicio corriendo:
sudo reboot now
sudo service transmission-daemon status
Para salir de ahí: Ctrl+C

Segunda parte: Uso desde Android.

Descargar Remote Transmission.
Configurarlo con la dirección, nombre de usuario y contraseña escogidas anteriormente.
Añadir nuevos archivos copiando y pegando el enlace magnet.

También puede hacerse desde el ordenador, entrando en la IP:9091.

Problemas con permisos.

A la carpeta madre (/shared) le hemos dado permisos de escritura (chmod 777), pero las que crea en adelante (cuando añades una descarga, por ejemplo), sólo tienen permisos de lectura (755), cuando accedemos por Samba.
Por lo que para borrar o modificar una carpeta, renombrar un archivo, etc, tengo que entrar por línea de comandos con permiso de root.
Tengo que investigar más en esta cuestión.

11. Instalar un servidor VPN

Este paso nos permitirá conectarnos a nuestra red de casa. O sea, acceder a la impresora, los ordenadores y demás aparatos conectados. Además de la OPi, por supuesto.
Una vez conectados, ya podremos arrancar Putty y controlar la OPi como si estuvieramos con el cable al mismo switch.

Si tenemos IP dinámica, es mejor posponer la instalación del servidor VPN para cuando ya tengamos el paso 12 (servidor VPN). Si ya lo tenemos, instalamos OpenVPN con:
curl -L https://install.pivpn.io | bash
Esto arranca un instalador bastante amigable, por lo que se reduce a pulsar intro de vez en cuando.
En raspberry pi, te pide una dirección IP interna estática. En OPi se salta este menú. Supongo que da por hecho que la IP ajustada es estática. No he tenido problemas con ello.
Sobre la IP externa, hay un menú donde introducir la IP estática ( en caso de haber contratado este servicio con nuestro ISP) o bien la URL de nuestro servidor DNS (ver paso 12).

Cuando termine, tras reiniciar, creamos un nuevo cliente:
pivpn add

Exportamos el fichero de configuración al teléfono, o donde vayamos a poner el cliente.

En el cliente instalamos OpenVPN Client. En windows, android o iOS.
Tras la instalación, importar el fichero de configuración y poner la contraseña.

Otro modo de instalación, que no he probado...
http://domology.es/instalar-openvpn-nuestra-raspberry-pi-orange-pi/

"Conflictos" de IP

No comprendo del todo cómo funciona la VPN: qué tráfico se redirecciona y cuál no; ya que con el cliente conectado a la red remota, sigo teniendo acceso a todos los equipos de la red local. Es decir, que si la red local está en el mismo rango que la red remota (por ejemplo que ambas tengan el rango 192.168.1.xxx), puede darse que dos equipos tengan la misma IP (cada una en su red).
En mi caso, pasa que ambas redes locales tienen la Raspberry / Orange Pi en la 192.168.1.101 y al acceder con Putty, lo hago al dispositivo local, no al remoto.
Bien, como el cliente OpenVPN me da la IP 10.8.0.2, entiendo que el servidor DHCP podría ser la 10.8.0.1.
He probado a conectar así con Putty y ha funcionado. Por mi parte, problema solucionado.

12. No-IP Device configuration assistant (router)




Mitrastar success!!!

Actualizar ip desde raspberry. Instalar según:
https://www.realdroid.es/2016/10/29/configurar-no-ip-para-raspberry-pi-y-de-paso-que-es-no-ip/
Después gestionar inicio automático si hay desktop instalado desde:
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
Añadiendo la línea:
@sudo /usr/local/bin/noip2
Comprobar mediante:
sudo noip2 -S


13. Redirigir puertos en el router

Entramos a la página de configuración desde el navegador. Normalmente desde la IP 192.168.1.1
La contraseña por defecto es admin@admin, 1234@1234 o similar. Aunque en los últimos routers de fibra de telefónica lleva una contraseña impresa en la etiqueta bajo el propio router.
En la sección de puertos (redirección de puertos) deberemos ajustar la IP de la OPi,
El protocolo, que si no hemos cambiado, será UDP.
El puerto externo y el interno, que si no hemos cambiado, será el 1194.

14. Utilidades y comandos

Actualizar:
sudo apt-get update
sudo apt-get upgrade

Ver carga del procesador, ram, procesos, etc:
htop

OPi Monitor:
Igual que la anterior, pero de forma más gráfica y remota. Se instala con:
sudo armbianmonitor -r
Luego accedes desde el navegador, a la IP:8888
*Si accedemos desde VPN, y nos asigna la IP 10.8.0.2, podemos acceder desde el navegador, a través de la IP 10.8.0.1:8888