Está en la página 1de 28

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

Radxa Rock Pro: Linaro Server
Manual casero de instalación de un servidor Linaro en Radxa Rock Pro
Por Daniel Expósito Mateo​
. Última actualización: ​
10/06/2015 03:46:20 

Índice de contenido 
0. Introducción 
1. Instalación de Ubuntu Server en tarjeta Micro SD. 
2. Acceso SSH 
3. Configurar una dirección IP estática a la conexión ethernet 
4. Habilitar conexión Wifi 
5. Actualizar el sistema operativo 
6. Cambiar la hora del sistema 
7. Establecer contraseña del usuario root 
8. Crear un usuario nuevo y borrar el usuario por defecto 
8.1. Crear el nuevo usuario 
8.2. Borrar el usuario por defecto 
9. Hacer un backup del sistema (a lo bruto) 
10. Ver programas instalados 
11. Instalar MySQL 
11.1. Cambiar contraseña de “root” de MySQL 
11.2. Crear usuario de MySQL 
11.3. Habilitar MySQL para uso remoto 
11.4. Cambiar el puerto de MySQL 
11.5. MySQL Workbench: Cliente de MySQL 
12. Instalar Apache2 
12.1. Deshabilitar el listado de directorios web 
1 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

12.2. Permisos óptimos para /var/www. 
12.3 Configurando Apache 
13. Instalar SFTP 
13.1. Crear usuario SFTP 
13.2. Instalar el servidor SFTP 
13.3. Enjaular usuario SFTP 
13.4. Enjaular usuario SFTP para acceder a /var/www 
14. Instalar PHP. 
14.1. Configurando PHP. 
15. Instalar cliente de DNS dinámico (ddclient) 
16. Usar múltiples dominios en el servidor 
17. Instalar firewall UFW 
17.1. Uso del firewall 
18. Redimensionar partición de la tarjeta SD 
19. Hacer backups de datos usando cron 
19.1. Usando crontab 
 

0. Introducción
Este  documento  está   basado  en  mi  experiencia instalando y configurando en  la Radxa Pro. Me 
considero   un  novato  en  Linux, y todo lo  escrito aquí ha  sido fruto de muchas horas consultando 
en  internet.  Por  tanto,  seguramente  la  información  contenida  es  muy  mejorable,  pero  me  sirve 
como  punto   de  partida  y referencia para futuras instalaciones en la Radxa Pro. Por favor, si ves 
errores  o  conoces  un  método  mejor  para  hacer  algo  contenido  aquí,  no  dudes  en  contactar 
conmigo y haré los cambios en beneficio de todos los que consultemos este documento.  

1. Instalación de Ubuntu Server en tarjeta Micro SD.
Instalaremos  el  sistema  operativo  en  una  tarjeta  Micro  SD  para  conservar  en  NAND  (memoria 
interna  de  la   tarjeta)  el   sistema  Android  que  viene  por  defecto.  Esto  puede ser una buena idea 
2 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

porque  nos  permite  hacer  copias  de  las  tarjetas  y  usarlo  como  un  sistema de backup bastante 
sencillo. 
El  primer  paso  consiste  en  descargar  la  imagen  más  reciente  del  sistema  operativo.  Hay  que 
tener  cuidado  de  elegir  bien  la  imagen,  teniendo  presente  el tipo de tarjeta Radxa Rock que se 
posea  (las   imágenes  no  son  iguales  para  Rock  Lite  y  Rock   Pro,  por  ejemplo),  y  que  sea  para 
instalar en SD y no en NAND. Las imágenes se encuentran en el siguiente enlace: 
http://radxa.com/Rock/prebuilt_images 
En  el  momento  de  redactar  este  documento,  está  disponible  la  versión  Ubuntu  (Linaro)  14.04 
Server (141030) como la más reciente. 
Ahora,  necesitaremos  una  tarjeta  Micro   SD  disponible,  un  lector  de  tarjetas  para  el  PC   y  el 
programa  necesario  para  añadir  la  imagen  a  la  tarjeta.  El  programa  se  llama  ​
Win32  Disk 
Imager​
 (para Windows), y puede descargarse aquí: 
http://sourceforge.net/projects/win32diskimager/ 
La  instalación es sencilla, en el campo ​
Image File seleccionamos el archivo con  extensión ​
.img 
de la imagen y pulsamos el botón ​
Write​
. Esto copiará la imagen en la tarjeta Micro SD. 
Una  vez  terminado,  insertamos  la  tarjeta  en  la  Radxa  Rock.  Nos  aseguramos  de  que  tiene   el 
cable HDMI y el de red conectados y la encendemos. 
Nota:  Si  por  un  casual  sigue  cargando  el  sistema  operativo  desde  NAND  y  no desde la tarjeta 
Micro  SD,  entonces  habrá  que configurar la Radxa Rock para ello. Esto se sale de este manual 
en este momento, la documentación oficial está aquí: ​
http://radxa.com/Rock​

Como  es  la  versión  Server  del  sistema  operativo,  sólo  obtendremos  el  prompt  (línea  de 
comandos) y estará listo para usarse. 
Recordemos  que   usuario/contraseña  por  defecto  son  ​
rock/rock  respectivamente,  aunque  se 
identifica automáticamente como usuario root, que no tiene asignada ninguna contraseña. 

2. Acceso SSH
Si  nuestro  router  tiene  habilitado  el  protocolo  DHCP,  al  estar  conectada  la  Radxa  Rock  con  el 
cable  de  red,  conseguirá  automáticamente  una  dirección  IP  que  le   asigna  el  router.  Con  ello, 
conseguirá  acceso  a  nuestra  red  interna,  y  por  tanto,  a  internet.   Esto  nos  posibilita   establecer 
una  conexión  SSH  con  nuestra  Radxa  Rock,  que  no  es  otra  cosa  que  poder manejar la Radxa 
Rock  desde  otro  ordenador  a   través  de  un  terminal  que  nos  muestra  el  prompt,  como  si 
estuviéramos  trabajando  directamente  en  ella.  Esto  es  muy  recomendable  porque  al  contar 
únicamente  con  la  línea  de comando en la Radxa Rock, es más cómodo trabajar con ella como 

3 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

si  fuera  una  ventana  en  un  entorno  de  trabajo  con  ratón,  navegador  web,  etc,  sobretodo  para  
seguir este manual para copiar y pegar todas las instrucciones que vendrán a continuación. 
En  primer  lugar,  desde  la  Radxa  Rock  necesitaremos   saber  qué  dirección  IP  le  ha asignado el 
router. Para ello, en la línea de comando escribiremos lo siguiente: 

ifconfig
Esto  nos  mostrará  las   interfaces  de  redes  configuradas  en  ese  momento.  Nos  interesa  la  que 
se  llama   ​
eth0​
,  que  corresponde  a  la  conexión  por  cable  ethernet.  Nos  dará  un  parámetro 
llamado  ​
Link  encap  con  cuatro  números  separados  entre  puntos  parecido  a  esto: 
“​
192.168.0.50​
”.  Esa  será  la  dirección  IP  asignada  a  la  Radxa  Pro,  que  al  ser  obtenida 
dinámicamente  mediante  DHCP,  podría  cambiar  si   reiniciamos  la  Radxa  Pro,  por  ejemplo,  así 
que más tarde le asignaremos una IP fija que no varíe. 
Para  establecer una conexión DHCP, lo mejor es contar con una aplicación cliente para  nuestro 
PC,  siendo  el  más  conocido  (en  Windows)  uno  llamado  ​
PuTTY​
,  que  podemos  descargarlo  de 
manera  gratuita  aquí:  ​
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html​
.  Ni 
siquiera  hay  que  instalarlo,  lo   ejecutamos  y listo, añadimos  la dirección IP que obtuvimos antes  
(el  puerto  por  defecto  es  22)  y  pulsamos  en  ​
Open​
.  Se  nos  abrirá una ventana y, si todo ha ido 
bien,  nos  pedirá  login  y  contraseña,  que  recordemos  que en la Radxa Pro, por defecto  es ​
rock 
para  ambos.  Ahora   podemos  trabajar  con  la   Radxa  Pro  desde  nuestro   PC,  incluso  podríamos 
retirar el cable HDMI y el teclado porque no lo usaremos mucho. 
Para  acceder  a  través  de  otro  entorno  linux,  podemos  usar  el  siguiente   comando  (asumiendo 
que la IP es, por ejemplo, 192.168.0.50): 

ssh -p 22 192.168.0.150 -l rock

3. Configurar una dirección IP estática a la conexión ethernet
Al  usar   la  Radxa  Pro  como  servidor,  no  nos  conviene  que  utilizar  una  dirección  IP   dinámica, 
porque  si  instalamos,  por   ejemplo,  un  servidor web para ver desde cualquier parte del mundo y 
se  nos  cambia  la  IP,  dejará  de  tener  acceso  al  exterior.  Por  lo  tanto,  es  muy  recomendable 
asignarle  a  la  Radxa  Pro  una  IP  estática  que  no  varía  con los cortes de luz o entre en  conflicto 
con otros dispositivos que obtengan por error la misma IP. 
Lo  que  haremos  será editar el archivo de configuración del acceso a internet por cable con este 
comando: 

sudo pico /etc/network/interfaces.d/eth0
Por defecto, contendrá algo así: 

4 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

auto eth0 
iface eth0 inet dhcp 
Y  necesitamos  que  sea  algo  así (los datos son de ejemplo, habría que sustituirlos por los datos 
que utilice nuestra red): 
auto eth0 
iface eth0 inet static 
address 192.168.0.100 
netmask 255.255.255.0 
gateway 192.168.0.1 
dns­nameservers 8.8.8.8 8.8.4.4 
El  editor  de  texto  ​
pico  ​
que hemos usado utiliza ​
Control + x  para salir, y como hemos realizado 
cambios,  nos  pedirá  confirmar  que   deseamos  guardarlos,  y  el  nombre  del  archivo  que  lo 
dejaremos como está. 
En  la  teoría,  para  que los cambios surtan efecto, necesitamos reiniciar la interface de conexión, 
sería algo así (no hacer): 

sudo ifdown eth0
sudo ifup eth0
Esto  iría  bien  trabajando  directamente desde la Radxa Pro, pero como seguramente estaremos 
trabajando  desde  SSH,  nos  desconectaría  en  el  primer  comando  y  no  podríamos   ejecutar  el 
segundo.  Para  no  estar  cambiando  a  la  Radxa  Pro,  podemos  probar  un  comando  para 
reiniciarla: 

sudo shutdown -r now
Si  todo  ha  ido  bien,  la  Radxa  Pro  se  reiniciará,  pero recordemos  que la IP la hemos cambiado, 
así que deberemos usar la nueva IP para acceder desde SSH. 

4. Habilitar conexión Wifi
Confieso  que  le  he  dedicado  muchas  horas  a  esto  y no he conseguido mantener una conexión 
Wifi  que  me  funcione  bien.  Como   voy  a  usar  el  servidor   con  una  conexión  ethernet,  dejo  este  
punto  para  estudiarlo  más  adelante.   Mientras,  remito   a  la  documentación   oficial: 
http://radxa.com/Rock/Wireless​

5. Actualizar el sistema operativo
Para  empezar  bien a trabajar  con la Radxa Rock, lo más recomendable es actualizar el sistema 
operativo para asegurarnos de que está al día. El comando para ello es el siguiente: 

5 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

sudo apt-get update
sudo apt-get upgrade

6. Cambiar la hora del sistema
La  hora  del  sistema  tiene  tela,  porque  muestra  la  hora  según  la  franja horaria universal (UTC), 
así   que  quizás  tengamos  la  hora  correcta,  pero  el  sistema  muestra  una  que  no  corresponde 
(porque   la franja horaria es diferente). Un ejemplo, si vives en Canarias y son las 22:00 horas, y 
usamos el siguiente comando: 

date
El resultado que daría es este: 
Sat Jul 19 21:00:00 UTC 2014 
No  sale  correcto  porque  está  dándonos  la  hora  en  otra  franja  horaria.  Para  cambiar  la  franja 
horaria, el método más fiable y rápido es usar el siguiente comando: 

sudo dpkg-reconfigure tzdata
Aparecerá  un  programa  parecido  a los de MS­DOS y nos hará elegir la ubicación en la que nos 
encontramos. En el ejemplo de Canarias, habría que elegir: 
Atlantic Ocean 
Canary 
Si volviéramos a pedir la hora, saldría algo así: 
Sat Jul 19 22:00:00 WEST 2014 
Quizás  tengamos  la  zona  horaria  bien  pero  la  hora  sea  incorrecta.  Para  cambiar  la  hora  sería 
así: 

date --set "2015-04-29 1:24"
Las fuentes que seguí son las siguientes: 

Web Servidor Debian​

Debian administrator​

7. Establecer contraseña del usuario root
El  usuario  ​
root  ​
es  el  superusuario  del  servidor, el que puede hacer cualquier cosa en él. Ahora 
mismo  no  tiene  contraseña  y  eso  es  un  fallo  grave  de  seguridad,  cualquier  otro   usuario  del 

6 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

servidor  podría  cambiar  cosas  en  él,  y  no  conviene. Así que vamos a asignarle una contraseña 
con el siguiente comando: 

sudo passwd root
Nos  pedirá  que  confirmemos  la   contraseña.  Y  para  ser  precavidos,  lo  mejor  es  apuntar  la 
contraseña   en  un  papel  y  guardarlo.  A  lo  largo  del  documento  vamos  a  tener  que  establecer 
diversas  contraseñas,  y  conviene  por  seguridad  que  sean  diferentes,  así  que  apuntarlas  es  lo 
más aconsejable de cara al futuro. 

8. Crear un usuario nuevo y borrar el usuario por defecto
Usar  el  usuario  que  viene  por  defecto  tampoco  es  una  buena  idea  de  cara  a  la  seguridad.  Lo 
normal  es  que  cada   uno  utilice  su  propio  usuario,  y  es  recomendable  eliminar  el  usuario  por 
defecto. 

8.1. Crear el nuevo usuario
Como  primer  paso  nos  vamos  a  identificar  como  usuario ​
root ​
para hacer los cambios sin  tener 
problemas de permisos. Se hace simplemente escribiendo: 

su
Ahora,  podríamos  crear  el  usuario  en  un  solo  paso,  pero  es  mejor  hacerlo  primero  por  partes 
para  entender  lo  que  hacemos.  Lo  primero,  creamos  el  usuario.  Para  este  ejemplo  usaré  mi  
nombre, aunque es mejor usar algo un poco más complejo o diferente: 

useradd daniel
Luego le asignamos una contraseña: 

passwd daniel
Todo usuario tiene una carpeta en /home, la creamos así: 

mkdir /home/daniel
Y a esa carpeta le asignamos dueño y grupo: 

chown daniel:daniel -R /home/daniel
Luego le asignamos permisos: 

chmod 755 -R /home/daniel
Y asignamos la carpeta al nuevo usuario: 

7 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

usermod -d /home/daniel daniel
El  método  para  hacerlo  todo  en  un  solo  paso  es  el  siguiente  (el  grupo  debe  existir 
previamente): 

useradd -g daniel -d /home/daniel -m -s /bin/bash daniel
Donde ​
­g especifica el grupo, ​
­d la carpeta home, ​
­m crea la carpeta home si no existe, y con ​
­s 
establecemos  el  shell  del   usuario,  que  suele  ser   ​
/bin/bash  y  básicamente  viene  a  decir que le 
permitiremos usar la consola. 
Ahora  entraremos  en   el  archivo  ​
/etc/passwd  para  asegurarnos  de que el usuario se ha creado 
terminando la línea en /bin/bash en vez de /bin/sh: 

pico /etc/passwd
Buscamos el usuario nuevo, y si termina con /bin/sh, lo sustituimos. 
Por  último,  añadiremos  el  usuario  en  todos  los  grupos  al  que  pertenece  el usuario “rock”. Para 
ello, abrimos el archivo ​
/etc/group​

pico /etc/group
Buscaremos  las  siguientes  líneas y añadiremos el usuario. Si el usuario rock está en la línea, lo 
separamos con una coma. Son las siguientes: 
dialout:x:20:rock,daniel 
cdrom:x:1000:rock,daniel 
sudo:x:27:daniel 
audio:x:29:rock,daniel 
dip:x:1000:rock,daniel 
video:x:44:rock,daniel 
plugdev:x:1000:rock,daniel 
Guardamos con Control + x. 
Fuente seguida:  


Habilitar root​

Administración de usuarios y grupos​

Crear un usuario nuevo y todo lo que ello implica​

8.2. Borrar el usuario por defecto
Si  todo  ha  ido  bien,  podremos  hacer  login  con  el  nuevo  usuario  y  eliminar  el  usuario  ​
rock​

Seguramente,  si  lo  hacemos   a  continuación  de  crear  nuestro  usuario,  nos  dará  problemas  al 

8 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

borrar  ​
rock  porque  lo  hemos  estado  usando  y  tiene  procesos  abiertos,  así   que lo más sencillo 
es reiniciar la Radxa Rock: 

sudo shutdown -r now
Una  vez  reinicie  la   Radxa  Rock,  nos  identificamos   con  el  usuario  nuevo.  Si  nos  deja,  es  que 
todo ha ido bien. Ahora queda borrar el usuario ​
rock​
 de esta manera: 

sudo userdel -r rock
Fuente que he seguido: ​
Eliminar usuario y su home en Debian/Ubuntu​

9. Hacer un backup del sistema (a lo bruto)
Llegados  a  este  punto,  no  estaría  de  más  hacer  un  backup  del servidor en el estado actual, ya 
que  empezaremos  a  instalar  programas  y  si  falla  algo,  puede  que  resulte   complicado 
solucionarlo  y   tengamos  que  empezar  de  cero.  Hay  varios  métodos  para  hacer  backups,  pero 
para  hacerlo  fácil  nos  aprovecharemos  de  que  tenemos  el sistema en una tarjeta Micro SD. En 
un punto posterior veremos cómo hacer backups de los datos de un modo más sofisticado. 
Primero, apagaremos el servidor para poder sacar la Micro SD: 

sudo shutdown -h now
Insertaremos   la  Micro  SD  en  el  lector  del  PC  y  volveremos  a  abrir  el  programa  ​
Win32  Disk 
Imager​
.  Esta  vez,  en  ​
Image  File  pondremos  la ruta y el nombre que le  daremos  al archivo, por 
ejemplo este: 
C:\radxa.img 
Y  para  guardar  la  imagen  usaremos  el  botón   ​
Read​
.  Tardará  un  poco,  y  el  archivo  ocupará  el 
tamaño que tenga la tarjeta Micro SD. 

10. Ver programas instalados
Ahora  estaríamos  listos  para  instalar  programas,  como   el  servidor  de  Apache,  Php,  etc.  Pero 
puede  que  la  distribución  de  Linux  que   tenemos  ya  traigan  esos  programas  instalados.  Para 
comprobar la lista de programas instalados usaremos este comando: 

dpkg --get-selections
También  podemos  ver  los  paquetes  conocidos  por  el  sistema,  que  suelen   coincidir  con  los 
programas  instalados,  además  da  una  corta  descripción  de  los  mismos  para  hacernos  una 
idea. Se consigue de esta manera: 

dpkg -l
9 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

El  comando  anterior  lo  podemos  usar  para  buscar   un  programa  específico  y  saber  si  está 
instalado. Por ejemplo, si queremos saber si Apache 2 está instalado sería así: 

dpkg -l | grep apache2
Si devuelve algo es que sí está instalado. 
La fuente que he seguido: 

Cómo saber si un paquete se encuentra instalado o no de manera fácil y rápida​

11. Instalar MySQL
MySQL es un servidor de base de datos muy conocido y extendido. 
La  imagen de Linux que instalé  en la Radxa Rock ya tiene instalado el MySQL, de todas formas 
no viene mal saber cómo se instala manualmente. Sería así: 

sudo apt-get install mysql-server mysql-client
A  mitad  de  la  instalación  nos  pedirá  una  contraseña  para  el  usuario  “root”  de  MySQL  (no 
confundir  con  el  usuario  “root”  del  sistema).  Conviene  no  poner  siempre  la  misma  contraseña 
para todo, por seguridad. 
Para probar que funciona correctamente, usaremos este comando: 

mysql -u root -p
Nos  pedirá  la  contraseña  de  root,  y  si  consigue  identificarse,  el  prompt  habitual  cambiará  a 
“​
mysql>​
”  y  podremos  escribir  comandos  de  MySQL.  Por  ejemplo,  para  mostrar  las  bases  de 
datos existentes, hay que escribir esto: 

show databases;
Para salir de MySQL y volver al prompt del sistema, escribimos esto: 

exit;

11.1. Cambiar contraseña de “root” de MySQL
Si  MySQL  viene  instalado  en  el  sistema,  el  usuario  root  no  tendrá  contraseña,  o  es  probable 
que  con  el  paso  del  tiempo,  si  no  la  hemos  apuntado,  se  nos  haya  olvidado.  La  forma  más 
sencilla de restablecerla es escribiendo lo siguiente: 

sudo dpkg-reconfigure mysql-server-5.5

10 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

Hay  que   tener  en  cuenta  que  sirve  para  la  versión  5.5  de  MySQL,  si  queremos  saber  qué 
versión de MySQL tenemos instalado, podemos usar el comando del punto anterior: 

dpkg -l | grep mysql
Y luego, en el comando de arriba, cambiar el número de versión. 

11.2. Crear usuario de MySQL
Como  no  es  recomendable  usar  el  usuario  “root”  para  trabajar  (desde  fuera  de  la  Radxa  Rock 
ni se nos  permitirá), crearemos un usuario nuevo que podamos usar. Como ejemplo, crearemos 
un  usuario  ‘​
lola​
’  con  la  contraseña  ‘​
flores​
’.  Dentro  de  mysql  debemos  ejecutar  ​
por  separado 
las siguientes tres líneas: 

CREATE USER 'lola'@'%' IDENTIFIED BY 'flores';
GRANT ALL PRIVILEGES ON *.* TO 'lola'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Para  comprobar  que  se  ha  creado  bien,  saldremos  de  mysql  (“​
exit;​
”)  y  volveremos  a  entrar 
usando el nuevo usuario. 

mysql -u lola -p 

11.3. Habilitar MySQL para uso remoto
Es  posible   que  podamos  trabajar  localmente,  pero  no  se  nos  permita   acceder  desde  otra 
máquina.  Eso   lo  arreglamos  editando  el  archivo  ​
/etc/mysql/my.cnf  y  comentando  algunas 
líneas. Para editar el archivo usamos esta línea: 

sudo pico /etc/mysql/my.cnf
Las líneas que hay que comentar son las siguientes (si estuvieran): 
skip­external­locking 
skip­networking (a veces no sale) 
bind­address = 127.0.0.1 
Recordemos que para comentar hay que poner una almohadilla “​
#”​
 al principio de la línea. 
Para  que  surta  efecto,  hay  que  parar  el  MySQL  y  volver a iniciarlo. Estos  dos comandos harán 
eso: 

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
O simplemente usar: 

11 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

sudo /etc/init.d/mysql restart
Por  último,  es  conveniente  terminar probando la conexión desde otra máquina para asegurarse 
de que queda funcionando. 

11.4. Cambiar el puerto de MySQL
Las  peticiones  al  servidor  MySQL  se  hacen,  por  defecto,  a  través del puerto 3306. Para añadir 
un  poco  de  seguridad  al  servidor  vamos  a  cambiar  el  puerto  de  las  peticiones.  Primero 
debemos  asegurarnos  del  puerto  actual  y  elegir  uno  que  no  se  esté  usando.  Esto  podemos 
averiguarlo con esta línea: 

sudo netstat -napt
Vamos  a  usar  como  ejemplo  el  puerto  ​
3307​
,  aunque  sea  demasiado  obvio.  Tendremos   que 
acceder  al   archivo  de  configuración  de  MySQL  y  hacer  los  cambios.  Podemos  acceder  al 
archivo así: 

sudo pico /etc/mysql/my.cnf
Debemos buscar y cambiar las líneas que contengan lo siguiente: 
port = 3350 
Suele estar un par de veces, en la sección ​
[client]​
 y ​
[mysqld]​

Para finalizar tendremos que reiniciar el servidor: 

sudo /etc/init.d/mysql restart 
A  partir  de  ahora,  no  debería  dejar  acceder  a  través  del  puerto  3306,  sino  a  través  del  puerto 
3307. 

11.5. MySQL Workbench: Cliente de MySQL
Como  nota  adicional,   recomiendo  usar  el  programa  MySQL  Workbench  para  trabajar 
remotamente  con  MySQL,  no  sólo  porque  nos  facilitará  la  gestión  y  es  gratuito,  sino  también 
porque  es  de  la  misma  compañía  de  MySQL.  Se   puede  descargar  aquí: 
http://www.mysql.com/products/workbench/​

12. Instalar Apache2
Apache es uno de los servidores web HTTP más utilizados. 
También  viene  instalada  en  la  imagen   de  Linux  que  elegí  para  la  Radxa  Rock,  pero  si 
tuviéramos que instalarla de nuevo, sería así: 
12 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

sudo apt-get install apache2
Y  listo,  para  probarlo,  únicamente  tendremos  que  ir  a  un  navegador  web  y  copiar   la  IP  que  le 
hayamos asignado a la Radxa Pro. Por ejemplo; 
http://192.168.0.100/ 
Si no da error y aparece una página con el texto “​
It works!​
”, es que la instalación ha ido bien. 
Las  páginas  se  guardan  en   ​
/var/www  por  defecto.  El  archivo  de  configuración  lo  podemos 
encontrar  en  ​
/etc/apache2/apache2.conf  y  ​
/etc/apache2/conf.d  para  configuración  adicional. 
Hay más archivos de configuración extra (para módulos y demás) en la misma carpeta. 

12.1. Deshabilitar el listado de directorios web
Si  añadimos  en  ​
/var/www  unas  cuantas  páginas  y  carpetas,  nos  daremos  cuenta  enseguida 
que,   desde  el  navegador  web,  podemos  ver  el  listado   de  subcarpetas  y  archivos  que  contiene 
una  carpeta.  Esto  nos  supone  un  problema  serio  de  seguridad,  así  que  lo  mejor  es 
deshabilitarlo  para  que  no  se  vea  el  contenido   de  las  carpetas.  Lo  más  rápido  es  hacer  lo 
siguiente: 

sudo a2dismod autoindex
Y reiniciar el Apache. Podemos usar esta línea: 

sudo /etc/init.d/apache2 restart 

12.2. Permisos óptimos para /var/www.
Cuando  se  instala  Apache  2,  se  crea  la   carpeta  ​
/var/www​
,  que  posiblemente  pertenezca  y 
forme  parte  del grupo de “​
root​
”.  Normalmente  trabajaremos en esa carpeta con un usuario FTP  
y  habrá  que  asegurarse  de  que  pertenezca  al  mismo  grupo  para  que  no  haya  problemas  de  
permisos. 
Tendremos  que  cambiar  el  grupo de la carpeta ​
/var/www  para que sea “​
www­data​
”, si no lo es 
ya: 

sudo chgrp www-data -R /var/www
Luego, daremos los permisos correctos a la carpeta ​
/var/www​

sudo chmod 664 -R /var/www/*
Entramos en la carpeta: 

cd /var/www

13 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

Y terminamos de establecer permisos: 

sudo find ./ -type d -exec chmod 775 {} \;
sudo find ./ -type d -exec chmod g+s {} \;
Básicamente,  lo  que  hemos  conseguido  es  que   el  propietario  de   los  archivos,  y  los  que 
pertenezcan  al  mismo  grupo que los archivos,  puedan leer, escribir y  ejecutar lo que  hay dentro 
de ​
/var/www​
, y el resto sólo pueda mirar pero no tocar. 
Me he guiado de esta fuente: ​
Permisos óptimos para archivos de apache en Debian​

12.3 Configurando Apache
Es  probable  que  tengamos  que  cambiar   la  configuración  de  Apache  en  algún  momento.  Los 
ficheros  de  configuración  los   podemos  encontrar  en  ​
/etc/apache2/​
.  El  archivo  principal  puede 
variar,  normalmente  está  en  ​
/etc/apache2/apache2.conf​
,  si  no,  lo  mejor  es   mirar  si   hay  un 
archivo “readme” que especifique dónde se configurar el servidor. 
Una  de  las  modificaciones  frecuentes,  es  habilitar  el  uso  de   archivos  ​
.htaccess​
,  que  permite 
realizar  configuraciones  especiales  para  cada  directorio,  sin  necesidad  de  modificar  la 
configuración establecida de Apache. Para ello tenemos que usar esta línea: 

sudo pico /etc/apache2/apache2.conf
Buscaremos un trozo de texto que ponga lo siguiente: 
<Directory /var/www/> 
        Options Indexes FollowSymLinks 
        AllowOverride None 
        Require all granted 
</Directory> 
Puede  que  no  tenga  la  línea  “​
Options  Indexes  FollowSymLinks​
”,  esa  línea  es  lo  que  evita 
que se vean los archivos de los directorios, visto en el punto anterior. 
Cambiaremos la opción ​
AllowOverride​
 por lo siguiente: 
AllowOverride All 
Luego, basta con reiniciar Apache2, esta vez usaremos un método más directo: 

sudo /etc/init.d/apache2 restart
Es  posible   que  también  queramos  activar  el  módulo  ​
mod_rewrite  de  Apache2,  que  dos  da 
acceso a modificar más cosas dentro del ​
.htacess​
. Activarlo es tan fácil como esto: 

sudo a2enmod rewrite
14 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

Y de nuevo, reiniciar el Apache2: 

sudo /etc/init.d/apache2 restart

13. Instalar SFTP
El  programa  SFTP  es  un  servidor  FTP  para  intercambio  de  archivos  de  forma   segura,  ya  que 
usa el protocolo SSH. 

13.1. Crear usuario SFTP
Antes  de  instalar  el  programa,  vamos  a   crear  el  usuario  que  usaremos  para  conectarnos  por 
SFTP. Tendrá estas características: 

Por  seguridad,  no   le  dejaremos  acceder   al  sistema  mediante  consola,  sólo servirá para  
el intercambio de archivos. 

Será su carpeta en /home la que usaremos para compartir por SFTP. 

Sabiendo  de  antemano  que  vamos  a  necesitar  permisos  de  administrador  y   es  una  lata  poner 
la contraseña cada vez, nos ponemos en modo “sudo” para el resto de comandos: 

sudo -i
El  primer  paso  es  crear  el  usuario,  usaremos  como  ejemplo  “lola”.  El  parámetro  “­s  /bin/bash” 
es el que hará que pueda acceder vía SSH: 

useradd -d /home/lola -s /bin/bash lola
Ahora  lo  asignaremos al grupo “www­data”, pues luego añadiremos  ​
/var/www a ese grupo para 
que el usuario SFTP pueda manipular archivos y carpetas: 

adduser lola www-data
También hace falta que el usuario tenga una contraseña: 

passwd lola
Antes mencionamos que el usuario compartiría su carpeta en /home por  FTP, pero realmente lo 
que  nos  interesa  es  que  comparta  ​
/var/www/html​
,  que  por temas de  permisos y seguridad, no 
es  posible.  Lo  solucionamos  creando  un enlace simbólico (​
symlink​
) como su carpeta en /home, 
que ya especificamos al crear el usuario que la llamaríamos “lola”: 

ln -s /var/www /home/lola
Cuidado​
,  si  ya  existe  una  carpeta  con  ese  nombre,  lo  que  hará  este  comando  es  crear  un 
enlace  simbólico  llamado  “www”  dentro,  y  no  nos  vale.  Hay  que  asegurarse  de  que  la  carpeta 
15 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

no  existe  antes  de  usar  el  comando.  Sabremos  que  “lola”  es  un  enlace  simbólico,  si  al  listar 
ejecutar “​
ls ­l /home​
” sale la carpeta así: 
lola ­> /var/www 
Si es así, lo hemos hecho bien. 

13.2. Instalar el servidor SFTP
En  primer  lugar,  es  bueno  asegurarse  de  que  no  está  ya  instalado  el  programa.  En  la  imagen 
que  elegí,  ya  viene  instalado.  El  paquete  del  programa  se  llama  ​
openssh­server​
,  para 
comprobar si está instalado recordemos este comando: 

dpkg -l | grep openssh-server
Si  nos  lista  el  paquete,  es  que  ya  está  instalado.  Si  no,  la  instalación  es  sencilla  usando   el 
siguiente comando: 

sudo aptitude install openssh-server
Ahora toca configurar un poco el SFTP: 

sudo pico /etc/ssh/sshd_config
Aquí buscaremos la siguiente línea: 
UsePrivilegeSeparation yes 
Y debajo escribiremos lo siguiente: 
AllowUsers daniel lola 
Donde  ​
lola  ​
es  el  usuario  que  creamos  anteriormente  para  SFTP.  Es  importante  comentar  que 
añadimos   el  usuario  que  estamos  usando  para conectar vía SSH (daniel) o dejará de funcionar  
y no podremos acceder al servidor remotamente. 
Por  último,  podemos  cambiar  el  puerto  que  usará  el  SFTP,  que  por  defecto  es  22.  Más  tarde 
vendrá  bien   para  añadir  seguridad  cuando  instalemos  el  firewall.  Para  cambiarlo  buscamos  la 
siguiente línea y le cambiamos el número: 
Port 22 
Recordemos  que   para  asegurarmos  de  no  elegir  un  puerto  ya  usado,  podemos  listar  los  que 
están en uso así: 

sudo netstat -napt
Por último, tendremos que reiniciar el servidor: 
16 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

sudo /etc/init.d/ssh restart
Es posible  que nos desconecte la conexión SSH y tengamos que cambiar el puerto en el cliente 
SSH  para  volver  a  conectar,  o  quizás   pase  como  me  ha  pasado  a  mí  y  aún  podamos acceder  
por  el  puerto  22.   No  soy  un  experto  en   linux  y  desconozco por qué, quizás porque detecta que 
hay  una  conexión  SSH  abierta  (la  nuestra),  así  que  lo  más  fácil  es  usar  el  método  Windows: 
reiniciar el servidor. Recordemos: 

sudo shutdown -r now
Hay  que   tener  en  cuenta  que  habrá  que  usar  un  cliente  SFTP  en  vez  de  FTP  para  la 
transferencia de archivos. Por ejemplo, el Dreamweaver tiene la opción de conexiones SFTP. 
La fuente que he seguido: 

Instalar un servidor SFTP en Debian GNU/Linux​

13.3. Enjaular usuario SFTP
Si  nos  conectamos  al  servidor  a  través  de  algún  programa  de  transferencia  de  archivos  SFTP  
nos  daremos  cuenta  de  que  podemos  ver  todas  las  carpetas  del  servidor,  y  esto  puede  ser 
peligroso  si  creamos  un  usuario  SFTP  para  terceras  personas.  Lo  que  debe  hacerse  es 
“enjaular”  al  usuario  en  una  carpeta  (su  carpeta home, por ejemplo), para que no pueda salirse 
de  ahí  y  así   limitamos  su  acceso.  Vamos  a  intentar  enjaular  al  usuario  ​
lola  que  ya  hemos 
creado. 
Antes  de  nada, lo que haremos será borrar la carpeta ​
/home/lola​
, porque cuando  la creamos lo  
hicimos como un enlace simbólico y no nos sirve. Vamos a crearla como una carpeta normal: 

rm -r /home/lola
mkdir /home/lola
Vamos  a  hacer  que  el  usuario  ​
lola  no  pueda  salir   de  su  carpeta  home  que  es  ​
/home/lola​
.  Es 
esencial  que  quede  claro  que  todas las carpetas que se incluyen en la ruta del directorio  “jaula” 
tienen  que  tener  como  propietario  al  usuario  ​
root​
, si  no, no funcionará. En la carpeta ​
/home es 
más que probable que sea así si no la hemos tocado, comprobemos la carpeta ​
/lola​

ls -l /home
Si  el  propietario  de  ​
/lola  no  es root lo cambiamos (recordemos que el usuario lola pertenecía al 
grupo ​
www­data​

chown root:www-data /home/lola
El  segundo  punto  a  tener  en  cuenta,  es  que  los   permisos  tienen  que  ser  los  correctos  o  no 
funcionará, en este caso: 
17 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

chmod 755 /home/lola
Con  esos  permisos,  el  usuario  lola  tiene  una  carpeta  home  que  puede  consultar,  pero   sin 
permisos  para  añadir   o  borrar  archivos.  Dentro  de  la  carpeta,  vamos  a  crear  otra  que  pueda 
manipular: 

mkdir /home/lola/archivos
chown lola:www-data /home/lola/archivos
Ahora toca modificar la configuración del SSH: 

pico /etc/ssh/sshd_config
Tenemos  que   buscar   la  línea  que  ponga  “​
Subsystem  sftp  /usr/lib/openssh/sftp­server​
”  y 
cambiarlo por esto: 
#Subsystem sftp /usr/lib/openssh/sftp­server 
Subsystem sftp internal­sftp 
Y al final del documento, añadimos lo siguiente: 
Match group www­data 
ChrootDirectory /home/%u 
X11Forwarding no 
AllowTcpForwarding no 
ForceCommand internal­sftp 
Con  esto  le  decimos  al  SSH  que  a  todo  usuario  que  sea  del  grupo  ​
www­data  ​
lo  enjaule  en  la 
carpeta con su nombre de usuario que esté dentro de la carpeta ​
/home​

Finalmente, bastaría con reiniciar el servicio SSH: 

/etc/init.d/ssh restart
Pero  como,  sin  razón  aparente,  a  veces  no  me  ha  funcionado  y  me  lo  puedo  permitir,  prefiero 
reiniciar todo el servidor: 

shutdown -r now
Si  todo  ha  ido  bien,  deberíamos  poder  acceder  a  través  de  SSH  y  manipular  archivos  en  la 
carpeta  ​
/home/lola/archivos​
.  Ojo  con  qué  programa  lo  probamos,  por  alguna  razón,  en 
Dreamweaver me fue perfecto, pero en Aptana me daba errores. 
Por  cierto,  recordemos  que   el  usuario  ​
lola  ​
tenía  acceso  a  consola,  si  con  un  usuario  solo  
vamos a usar programas de transferencia de archivos y no necesitamos la consola, es mejor no 
permitir que se use. Podemos hacerlo si modificamos el archivo ​
/etc/passwd​
 o así: 

18 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

chsh -s /bin/false lola
Fuente seguida: ​
Enjaulado SFTP​

13.4. Enjaular usuario SFTP para acceder a /var/www
Cuando  encerramos  a  un  usuario  en   una  carpeta  de  esta  manera,  hay  que tener en cuenta un 
par  de  cosas:  la  primera  es  que  no  podrá  salirse  de  ella,  no  podremos  acceder  a  nada  más  a 
menos  que  lo  configuremos;  la  segunda   es  que  debido  a  ello  los  enlaces  simbólicos  no 
funcionarán, por eso lo borramos antes. 
La  solución  más  simple  para  permitir  al  usuario  acceder  a  ​
/var/www  es  usar  la  propia  carpeta 
/var/www  para  enjaular  al  usuario,  y  que  tenga  acceso  a  ​
/var/www/html​
,  o  enjaularlo  en 
/var/www/html  y  que  tenga  su  propia  de  acceso  en  ​
/var/www/html/lola​
.  Como  ejemplo, 
hagamos  lo  primero,  simplemente   tendríamos  que volver a  configurar lo último que añadimos a 
la configuración del SSH de esta manera: 
Match group www­data 
ChrootDirectory /var/www 
X11Forwarding no 
AllowTcpForwarding no 
ForceCommand internal­sftp 
Así  le  decimos  que  todos  los  usuarios  del  grupo  www­data  pueden  acceder  a  ​
/var/www​
.  Para 
el  segundo  ejemplo,  crearíamos  la  carpeta  ​
/var/www/html/lola  con  propietario  ​
lola:www­data  
y configuraríamos SSH de esta manera: 
Match user lola 
ChrootDirectory /var/www/html 
X11Forwarding no 
AllowTcpForwarding no 
ForceCommand internal­sftp 
Con  esto  le  decimos  que  el  usuario  lola  puede  acceder a ​
/var/www/html​
. Ojo, podría ver otras 
carpetas dentro de ​
/var/www/html​
,  a parte de la suya propia,  a no ser que controlemos bien los 
permisos. 
Reiniciamos el servidor SSH o todo el servidor y debería funcionar. 
Fuente seguida: ​
Enjaulado SFTP​

19 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

14. Instalar PHP.
PHP  es  un  módulo  de  Apache2  que  nos  permite  mostrar  y  trabajar  con  el  lenguaje  de 
programación  PHP.  Conviene  asegurarse  de  que  si  ya  está  instalado  el  paquete 
libapache2­mod­php5​
, si no, sólo necesitamos ejecutar esta línea de comando: 

sudo apt-get install php5 libapache2-mod-php5
Tras eso, sólo queda reiniciar el Apache2: 

sudo /etc/init.d/apache2 restart
Además,  PHP  también  tiene  otros  módulos  útiles,  podemos  ver  una  lista  de  los  disponibles 
tecleando lo siguiente: 

apt-cache search php5
Comprobamos  si  tenemos  ya  instalado  los  que  nos  interesa.  Para  instalar  módulos  nuevos, 
sería algo así (en caso de querer instalar los módulos para mysql y GD): 

apt-get install php5-mysql php5-gd
Y volvemos a reiniciar el Apache2: 

/etc/init.d/apache2 restart

14.1. Configurando PHP.
Para  configurar  PHP  hay  que  localizar  el   archivo  php.ini  que  está  en 
/etc/php5/apache2/php.ini​
,  aunque  no  viene  mal  asegurarse,  ya  que  no  es  difícil  terminar 
modificando  el  archivo  erróneo  (a mí  me ha pasado). Para saber la ubicación exacta, basta con 
crear  un  archivo  php  con  la  instrucción  “​
<?php  phpinfo();  ?>​
”  y  verla  desde   el  navegador; 
saldrá  una  tabla con un montón de información sobre el servidor, y en el primer bloque nos  sale 
la ubicación en el parámetro “​
Loaded Configuration File​
”. 
Para modificar el archivo pondremos: 

sudo pico /etc/php5/apache2/php.ini
Un  cambio  útil  podría  ser  habilitar  las  etiquetas  cortas  de  código  PHP, es decir, poder usar ‘<? 
?>’  en  vez  de  ‘<?php  ?>’.  Lo  conseguimos  buscando  el  parámetro  ​
short_open_tag  y  
modificando su valor a ​
On​

short_open_tag = On 
Otro   de  los   cambios  útiles  consiste  en  modificar  el  parámetro  ​
display_errors  para  permitir 
mostrar  los  errores  que  surjan  en  PHP,  nos  ayudará  mucho  si  estamos  programando  en  PHP 
20 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

(ojo,   no  es  recomendable  tenerlo  activo  en  páginas  ya  visibles  al  público,  mostrar  los  errores 
puede ser un gran agujero de seguridad). La variable debería quedar así: 
display_errors = On 
Recordemos  que   también  se  pueden  ver  los  errores  (muy  recomendable)  mirando  el  log  de 
errores, que está en ​
/var/log/apache2/error.log​

sudo pico /var/log/apache2/error.log
También  podemos  echarle  un  vistazo, por  ejemplo, con este comando, mostrando las última 20 
líneas: 

sudo tail -20 /var/log/apache2/error.log
Las fuentes que he seguido: 

Installing PHP5​

Configuración del php.ini​

15. Instalar cliente de DNS dinámico (ddclient)
Cuando  contratamos  un  ADSL,  lo  normal  es que nos suministren una IP dinámica para nuestro  
hogar,   es  decir,  esta  IP  puede  variar  si,  por  ejemplo,  reseteamos  el  router.  Esto  puede  ser  un 
problema  si  queremos  que  nuestro  servidor  esté  siempre  online y visible desde cualquier parte 
del  mundo  a   través  de  un  dominio  permanente  (ejemplo:  esteesmidominio.com).   Asumiendo 
que  ya  hemos  contratado  un  dominio,  una  solución  barata  es  crear   una  cuenta  con  un 
proveedor  de  DNS  dinámico,  que  se  encarga  de  actualizar  la  IP  a  la  que  apunta  nuestro 
dominio,  así  si   se  nos  cae  el  router  o  hay  problemas  técnicos,  reestablecerá  automáticamente 
la  nueva  IP.  Normalmente  estos  proveedores  necesitan  que  instales  un  cliente  en  el  servidor 
que  se  encargará  de  comprobar si la IP ha cambiado, y ese cliente suele ser ddclient. Instalarlo 
es muy sencillo: 

sudo apt-get install ddclient
Una  serie  de  pantallas  de  configuración  aparecerán  en  pantalla  y  tendremos  que  rellenar  los  
datos.  La  mayoría  de  ellos  los  suministrará  el  proveedor.  En  definitiva,  estas   pantallas  lo  que 
harán será completar el fichero de configuración que se encuentra en /etc/ddclient.conf. 
Como  ejemplo,  aquí  está  la  configuración  base  de  dynu.com,  que  es  un  proveedor  de   DNS 
dinámico: 
# ddclient configuration for Dynu 
# /etc/ddclient.conf 
daemon=60 # Check every 60 seconds. 
syslog=yes # Log update msgs to syslog. 
21 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

mail=root # Mail all msgs to root. 
mail­failure=root # Mail failed update msgs to root. 
pid=/var/run/ddclient.pid # Record PID in file. 
ssl=yes # Use ssl­support.  Works with ssl­library . 
use=web, web=checkip.dynu.com/, web­skip='IP Address' # Get ip from 
server. 
server=api.dynu.com # IP update server. 
protocol=dyndns2 
 
login=myusername # Your username. 
password=YOURPASSWORD # Password or MD5 of password. 
MYDOMAIN.DYNU.COM # List one or more hostnames one on each line. 
Nota:  no  hay  que  olvidar  que  las  DNS  de  nuestro  dominio  tienen  que  apuntar  a los servidores 
del proveedor de DNS dinámico. 
Por último, nos queda crear un demonio que se encargue de ir comprobando la IP. Sería así: 

/usr/sbin/ddclient -daemon 300 -syslog
Esto puede añadirse en el crontab para que se ejecute al iniciarse el servidor: 
Fuente: ​
ddclient (en inglés)​

16. Usar múltiples dominios en el servidor
Teniendo  un  servidor   propio  es  muy  probable  que  queramos  alojar  varios  sitios  web  con 
diferente  dominio.  Si  tenemos  dos  dominios,  por  ejemplo   midominio.com  y  otrodominio.com,  y 
ambos  apuntan  a  nuestra  IP  pública  podemos  comprobar  que,  en  los  dos casos, se mostrarán 
los  archivos  alojados  en  /var/www/html,  y no es lo que queremos.  Apache nos ayuda con eso a 
través  de  la  configuración  de  sitios  en  dos  carpetas  diferentes.  La  primera  carpeta  es 
/etc/apache2/sites­available,  que  guarda  las  configuraciones  existentes,  y  por  defecto,  
debería  haber  dos  archivos:  ​
000­default.conf  (web  por  defecto)  y  ​
default­ssl.conf  (web  por 
defecto con certificado ssl, y sin certificado no se usa). 
Lo  primero  que  haremos  será  crear,  dentro  de  la  carpeta,  un  archivo  nuevo  copiando  el  ya  
existente: 

cd /etc/apache2/sites-available
sudo cp 000-default.conf midominiocom.conf
Luego lo editamos: 

sudo pico midominiocom.conf
Y modificamos estos valores: 

22 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

DocumentRoot /var/www/html/midominiocom 
ServerName www.midominio.com 
ServerAlias midominio.com 
Con  esto,  básicamente  le  decimos  al  Apache  que  si  le  llega  una  petición  de   mostrar 
midominio.com,  tiene  que  buscar  los  archivos  en  ​
/var/www/html/midominiocom en vez de  en 
/var/www/html.  Hay  que  mencionar  que  si  no  usamos  el  ​
ServerAlias​
,  www.midominio.com  y 
midominio.com   apuntarán  a  sitios  diferentes,  el primero a la carpeta ​
./html/midominiocom y el 
segundo a la carpeta ​
./html​

El  siguiente  paso  es  añadir  la  configuración  a  la  segunda  carpeta  que  mencionamos,  que  es 
/etc/apache2/sites­enables  creando  un  enlace  simbólico,   y  esto  lo  hacemos  fácilmente  con 
este comando: 

sudo a2ensite midominiocom.conf
Si quisiéramos, podríamos eliminarlo con este comando: 

sudo a2dissite midominiocom.conf
Esto  es  útil   si,  por  alguna razón, no queremos que se  muestre una web durante  un tiempo pero 
tampoco queremos eliminar la configuración. 
Nos queda crear la carpeta donde se guardarán los archivos: 

sudo mkdir /var/www/html/midominiocom
Podemos crear rápidamente un archivo de prueba así: 

cd /var/www/html/midominiocom
sudo touch index.html
sudo chmod 777 index.html
sudo echo "Funciona el dominio" > index.html
Por último, hay que reiniciar el Apache: 

sudo /etc/init.d/apache2 reload
Sólo  queda  probarlo,  pero  no  podemos  acceder  a  través  del  dominio  desde  dentro  de  nuestra 
IP  (desde  la  misma  red  usamos,  por  ejemplo,  ​
http://192.168.0.100/midominiocom/​
). ¿Lo más 
fácil?  Pues  desactivar  el  Wifi  del  móvil  y  acceder desde su navegador, ya que no estará dentro 
de  nuestra  red  doméstica  al  usar  el  plan  de   datos.  Hay  que  comprobar  el  dominio  con  y  sin 
“www”. 
Y  en  resumen,  estos  pasos  habría  que seguirlos por cada dominio que queramos alojar, donde 
cada uno se guardará en una carpeta diferente. 

23 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

Fuente: ​
Alojar varios dominios en un hosting con Apache​

17. Instalar firewall UFW
Una  de las maneras de intentar mantener seguro el servidor, es controlar los puertos de acceso 
para  que  no  pase  nadie sin autorización. Esto es muy importante en puertos como el 22 (SSH), 
21  (FTP),  etc.  Además,  si  tenemos  el  sistema  actualizado  constantemente  y  encima 
cambiamos  los  puestos  por  defecto  por  otros  que  elijamos,  añadimos  seguridad al equipo. Por  
ejemplo,  podemos  cambiar  el  puerto  22  del  SSH  por  el  70.  Como  hemos  visto  en  puntos 
anteriores,  estos  puertos  se  cambian  en  los  archivos  de  configuración  de  los  programas,  y 
muchos de ellos requieren reiniciarlos. Ejemplo: 

sudo pico /etc/proftpd/proftpd.conf
sudo /etc/init.d/proftpd restart
Mi  imagen   ya  tiene  instalado  el  cortafuegos  UFW,  pero  si  necesitamos  instalarlo  solo  hay  que 
teclear lo siguiente: 

sudo apt-get install ufw

17.1. Uso del firewall
Para habilitar y deshabilitar el firewall los comandos son estos: 

sudo ufw enable
sudo ufw disable
Para  permitir  todo  el  acceso  (no  recomendado)  o  denegar  todo  el  acceso  (ojo,  que  nos 
quedamos sin SSH si está habilitado el firewall): 

sudo ufw default allow
sudo ufw default deny 
Para añadir o denegar acceso a un puerto: 

sudo ufw allow 59345
sudo ufw allow 59345 /tcp
sudo ufw deny 59345
sudo ufw deny 59345 /tcp
Para eliminar alguna regla que hayamos creado, sería así: 

sudo ufw delete allow 59345
sudo ufw delete allow 59345 /tcp
sudo ufw delete deny 59345
sudo ufw delete deny 59345 /tcp
24 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

Para ver las reglas que hemos añadido, usamos este comando: 

sudo ufw status
Quizás muestre un texto como este: 
WARN: uid is 0 but '/' is owned by 1001 
Eso  quiere  decir  que  la  carpeta   ‘/’  no  tiene  a  root  como  propierario  y  eso  no  es  bueno.  Para 
cambiarlo, modificaremos el propietario y permisos de esa carpeta: 

sudo chown root.root /
sudo chmod 0755 /
Lo mismo con cualquier otra carpeta que no tenga el propietario adecuado. 
La fuentes que he usado: 

Configura facilmente tu FIREWALL en debian/ubuntu​
.

18. Redimensionar partición de la tarjeta SD
Normalmente  en  Lubuntu,  el  rootfs  ()  tiene  un  tamaño  por  defecto  de  2Gb,  así  que  si  usamos 
una  tarjeta  SD   de  8Gb,  nos  sobrarán  6Gb  que no se usarán para nada, y no tendremos mucho 
espacio para instalar cosas y gestionar archivos. 
Para  solucionar  esto  desde  la  propia   Radxa,  lo  primero  que   debemos  hacer  es  aumentar  el 
tamaño de rootfs, así que crearemos un script que haga esto mismo. 
Creamos un archivo nuevo donde guardaremos el código del script: 

sudo pico cambiarootfs.sh
Dentro, guardaremos el siguiente código, extraído de la página de ayuda de Radxa: 
#!/bin/bash 
START_SECTOR=`cat /sys/block/mmcblk0/mmcblk0p1/start` 
fdisk /dev/mmcblk0  << EOF 




$START_SECTOR 
 

 
EOF 
25 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

 
echo ­e "\n\n\n 
\n============================================================" 
echo "!!!!!expands rootfs done! reboot system" 
echo "!!!!!and run command "resize2fs/dev/mmcblk0p1"  after reboot" 
echo 
­e 
"=============================================================\n\n\n" 
 A continuación, lo ejecutaremos: 

sudo bash cambiarootfs.sh
Cuando el proceso termina, necesitamos reiniciar el sistema: 

sudo shutdown -r now
Y por último, una vez reinicie, cambiaremos el tamaño de la partición con este comando: 

sudo resize2fs /dev/mmcblk0p1
Además, como ya no es necesario, podremos borrar el script de esta manera: 

rm cambiaparticion.sh
Me he guiado de esta fuente: ​
Resize Linux Rootfs (en inglés)​

19. Hacer backups de datos usando cron
Ya  hemos  visto  cómo  hacer   un  backup  rudimentario  de  toda  la  tarjeta   SD,  pero  seguramente 
necesitaremos  hacer  copias  frecuentes  de  algunos  datos,  por   ejemplo,  de  las  bases  de  datos 
mysql.  Una  forma sencilla es usar el comando ​
cron​
. Para poner  un ejemplo, configuraremos un  
backup diario de todas las bases de datos a un pendrive USB. 
El primer paso será identificarnos como root: 

su
Ahora necesitamos conectar el pendrive en el USB y comprobar qué nombre tiene: 

fdisk -l
Nos dará el nombre del dispositivo USB, en este caso, ​
/dev/sda1​

Para  trabajar  con  el  dispositivo USB, crearemos una carpeta y montaremos el dispositivo  sobre 
ella. La carpeta la crearemos de esta manera: 

mkdir /backup
26 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

Es  recomendable  automatizar  el  proceso  de  montar  el  dispositivo,  así  que  editaremos  el 
archivo ​
/etc/fstab​

pico /etc/fstab
Y lo editaremos con el siguiente texto: 
/dev/sda1

/backup

vfat

defaults

0

0  

Luego, podemos montar el dispositivo (y todos los que estén en esa lista): 

mount -a
En  este  momento  ya  tenemos  el  dispositivo  USB montado y podemos ver su contenido.  Ahora, 
crearemos  un   script   para  que  haga  un  respaldo  de  las  bases  de  datos  en  el  pendrive.  Como 
queremos  que  se  haga  diariamente,  lo  guardaremos  en la carpeta etc/cron.daily, que es donde 
se ejecutan los script diarios: 
pico /etc/cron.daily/mysql_backup.sh 
Añadiremos este texto, que se encarga de hacer el backup de las bases de datos: 
#!/bin/sh 
now="$(date +'%d_%m_%Y_%H_%M_%S')" 
filename="mysql_$now".gz 
backupfolder="/backup" 
fullpathbackupfile="$backupfolder/$filename" 
logfile="$backupfolder/"backup_log_"$(date +'%Y_%m')".txt 
echo "mysqldump started at $(date +'%d­%m­%Y %H:%M:%S')" >> 
"$logfile" 
mysqldump ­­user=usuario ­­password=contrasenia 
­­default­character­set=utf8 ­­all­databases | gzip > 
"$fullpathbackupfile" 
echo "mysqldump finished at $(date +'%d­%m­%Y %H:%M:%S')" >> 
"$logfile" 
echo "*****************" >> "$logfile" 
exit 0 
Como  se  ve  en  la  línea   del  mysqldump,  se  está  proporcionando  el   usuario  y  contraseña  de 
mysql,  y  como   no  queremos  que  cualquiera  pueda  ver  esa  información,  vamos  a  cambiar  los 
permisos del archivo, para que solo root pueda leerlo: 

chmod 700 /etc/cron.daily/mysql_backup.sh
Si queremos, podemos probar el script manualmente escribiendo lo siguiente: 

27 de 28 

Radxa Rock Pro: Linaro Server ­ Manual casero de instalación 

bash /etc/cron.daily/mysql_backup.sh
Las fuentes que he seguido: 


How to mount USB drive in Linux (inglés)​

Linux shell script for database backup (inglés)​

Manual básico de cron (español)​

19.1. Usando crontab
Es  posible   que,  como  a  mí,  no  termine  de  ejecutarse  el  script  aunque lo hayamos colocado en 
/etc/cron.daily/.  Así  que  otra  manera  de  hacer  que  se  ejecute  el  script  es  creando  un  archivo 
crontab ​
específico para el usuario, en este caso, ​
root​

Con este comando podemos ver si ya existe un archivo para el usuario, y ver qué contiene: 

crontab -l
Para editarlo, el comando es el siguiente: 

crontab -e
Siguiendo  el  ejemplo  anterior,  si  queremos  que  el  script  se  ejecute  todos  los  días  a  las 6 de la 
mañana, añadiríamos la siguiente línea: 
* 6 * * * bash /etc/cron.daily/mysql­backup.sh 
Los asteriscos corresponden a lo siguiente ​
(min hor dmes mes dsem​
): 




min​
: minuto al que se ejecuta (0 a 59). 
hor​
: hora a la que se ejecuta (0 a 23). 
dmes​
: día del mes en el que se ejecuta. 
mes​
: el mes en el que se ejecuta. 
dsem​
: día de la semana en la que se ejecuta (0 a 7, donde 0 y 7 son domingo). 

Fuente: ​
Cron & crontab, explicados (español)​

 

28 de 28