ndicedecontenido
0.Introduccin
1.InstalacindeUbuntuServerentarjetaMicroSD.
2.AccesoSSH
3.ConfigurarunadireccinIPestticaalaconexinethernet
4.HabilitarconexinWifi
5.Actualizarelsistemaoperativo
6.Cambiarlahoradelsistema
7.Establecercontraseadelusuarioroot
8.Crearunusuarionuevoyborrarelusuariopordefecto
8.1.Crearelnuevousuario
8.2.Borrarelusuariopordefecto
9.Hacerunbackupdelsistema(alobruto)
10.Verprogramasinstalados
11.InstalarMySQL
11.1.CambiarcontraseaderootdeMySQL
11.2.CrearusuariodeMySQL
11.3.HabilitarMySQLparausoremoto
11.4.CambiarelpuertodeMySQL
11.5.MySQLWorkbench:ClientedeMySQL
12.InstalarApache2
12.1.Deshabilitarellistadodedirectoriosweb
1de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
12.2.Permisosptimospara/var/www.
12.3ConfigurandoApache
13.InstalarSFTP
13.1.CrearusuarioSFTP
13.2.InstalarelservidorSFTP
13.3.EnjaularusuarioSFTP
13.4.EnjaularusuarioSFTPparaaccedera/var/www
14.InstalarPHP.
14.1.ConfigurandoPHP.
15.InstalarclientedeDNSdinmico(ddclient)
16.Usarmltiplesdominiosenelservidor
17.InstalarfirewallUFW
17.1.Usodelfirewall
18.RedimensionarparticindelatarjetaSD
19.Hacerbackupsdedatosusandocron
19.1.Usandocrontab
0. Introduccin
Este documento est basado en mi experienciainstalandoyconfigurandoen laRadxaPro.Me
considero un novato en Linux,ytodolo escritoaquha sidofrutodemuchashorasconsultando
en internet. Por tanto, seguramente la informacin contenida es muy mejorable, pero me sirve
como punto de partida yreferenciaparafuturasinstalacionesenlaRadxaPro.Porfavor,sives
errores o conoces un mtodo mejor para hacer algo contenido aqu, no dudes en contactar
conmigoyharloscambiosenbeneficiodetodoslosqueconsultemosestedocumento.
RadxaRockPro:LinaroServerManualcaserodeinstalacin
porque nos permite hacer copias de las tarjetas y usarlo como un sistemadebackupbastante
sencillo.
El primer paso consiste en descargar la imagen ms reciente del sistema operativo. Hay que
tener cuidado de elegir bien la imagen, teniendo presente eltipodetarjetaRadxaRockquese
posea (las imgenes no son iguales para Rock Lite y Rock Pro, por ejemplo), y que sea para
instalarenSDynoenNAND.Lasimgenesseencuentranenelsiguienteenlace:
http://radxa.com/Rock/prebuilt_images
En el momento de redactar este documento, est disponible la versin Ubuntu (Linaro) 14.04
Server(141030)comolamsreciente.
Ahora, necesitaremos una tarjeta Micro SD disponible, un lector de tarjetas para el PC y el
programa necesario para aadir la imagen a la tarjeta. El programa se llama
Win32 Disk
Imager
(paraWindows),ypuededescargarseaqu:
http://sourceforge.net/projects/win32diskimager/
La instalacinessencilla,enelcampo
ImageFileseleccionamoselarchivocon extensin
.img
delaimagenypulsamoselbotn
Write
.EstocopiarlaimagenenlatarjetaMicroSD.
Una vez terminado, insertamos la tarjeta en la Radxa Rock. Nos aseguramos de que tiene el
cableHDMIyelderedconectadosylaencendemos.
Nota: Si por un casual sigue cargando el sistema operativo desde NAND y nodesdelatarjeta
Micro SD, entonces habr queconfigurarlaRadxaRockparaello.Estosesaledeestemanual
enestemomento,ladocumentacinoficialestaqu:
http://radxa.com/Rock
.
Como es la versin Server del sistema operativo, slo obtendremos el prompt (lnea de
comandos)yestarlistoparausarse.
Recordemos que usuario/contrasea por defecto son
rock/rock respectivamente, aunque se
identificaautomticamentecomousuarioroot,quenotieneasignadaningunacontrasea.
2. Acceso SSH
Si nuestro router tiene habilitado el protocolo DHCP, al estar conectada la Radxa Rock con el
cable de red, conseguir automticamente una direccin IP que le asigna el router. Con ello,
conseguir acceso a nuestra red interna, y por tanto, a internet. Esto nos posibilita establecer
una conexin SSH con nuestra Radxa Rock, que no es otra cosa que podermanejarlaRadxa
Rock desde otro ordenador a travs de un terminal que nos muestra el prompt, como si
estuviramos trabajando directamente en ella. Esto es muy recomendable porque al contar
nicamente con la lnea decomandoenlaRadxaRock,esmscmodotrabajarconellacomo
3de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
si fuera una ventana en un entorno de trabajo con ratn, navegador web, etc, sobretodo para
seguirestemanualparacopiarypegartodaslasinstruccionesquevendrnacontinuacin.
En primer lugar, desde la Radxa Rock necesitaremos saber qu direccin IP le haasignadoel
router.Paraello,enlalneadecomandoescribiremoslosiguiente:
ifconfig
Esto nos mostrar las interfaces de redes configuradas en ese momento. Nos interesa la que
se llama
eth0
, que corresponde a la conexin por cable ethernet. Nos dar un parmetro
llamado
Link encap con cuatro nmeros separados entre puntos parecido a esto:
192.168.0.50
. Esa ser la direccin IP asignada a la Radxa Pro, que al ser obtenida
dinmicamente mediante DHCP, podra cambiar si reiniciamos la Radxa Pro, por ejemplo, as
quemstardeleasignaremosunaIPfijaquenovare.
Para establecerunaconexinDHCP,lomejorescontarconunaaplicacinclientepara nuestro
PC, siendo el ms 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 ylisto,aadimos ladireccinIPqueobtuvimosantes
(el puerto por defecto es 22) y pulsamos en
Open
. Se nos abrirunaventanay,sitodohaido
bien, nos pedir login y contrasea, que recordemos queenlaRadxaPro,pordefecto es
rock
para ambos. Ahora podemos trabajar con la Radxa Pro desde nuestro PC, incluso podramos
retirarelcableHDMIyeltecladoporquenolousaremosmucho.
Para acceder a travs de otro entorno linux, podemos usar el siguiente comando (asumiendo
quelaIPes,porejemplo,192.168.0.50):
4de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
autoeth0
ifaceeth0inetdhcp
Y necesitamos que sea algo as(losdatossondeejemplo,habraquesustituirlosporlosdatos
queutilicenuestrared):
autoeth0
ifaceeth0inetstatic
address192.168.0.100
netmask255.255.255.0
gateway192.168.0.1
dnsnameservers8.8.8.88.8.4.4
El editor de texto
pico
quehemosusadoutiliza
Control+x parasalir,ycomohemosrealizado
cambios, nos pedir confirmar que deseamos guardarlos, y el nombre del archivo que lo
dejaremoscomoest.
En la teora, para queloscambiossurtanefecto,necesitamosreiniciarlainterfacedeconexin,
seraalgoas(nohacer):
5de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
date
Elresultadoquedaraeseste:
SatJul1921:00:00UTC2014
No sale correcto porque est dndonos la hora en otra franja horaria. Para cambiar la franja
horaria,elmtodomsfiableyrpidoesusarelsiguientecomando:
WebServidorDebian
.
Debianadministrator
.
6de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
su
Ahora, podramos 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,aunqueesmejorusaralgounpocomscomplejoodiferente:
useradd daniel
Luegoleasignamosunacontrasea:
passwd daniel
Todousuariotieneunacarpetaen/home,lacreamosas:
mkdir /home/daniel
Yaesacarpetaleasignamosdueoygrupo:
7de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
pico /etc/passwd
Buscamoselusuarionuevo,ysiterminacon/bin/sh,losustituimos.
Por ltimo, aadiremos el usuario en todos los grupos al que pertenece elusuariorock.Para
ello,abrimoselarchivo
/etc/group
:
pico /etc/group
Buscaremos las siguientes lneasyaadiremoselusuario.Sielusuariorockestenlalnea,lo
separamosconunacoma.Sonlassiguientes:
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
GuardamosconControl+x.
Fuenteseguida:
Habilitarroot
.
Administracindeusuariosygrupos
.
Crearunusuarionuevoytodoloqueelloimplica
.
8de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
borrar
rock porque lo hemos estado usando y tiene procesos abiertos, as quelomssencillo
esreiniciarlaRadxaRock:
dpkg --get-selections
Tambin podemos ver los paquetes conocidos por el sistema, que suelen coincidir con los
programas instalados, adems da una corta descripcin de los mismos para hacernos una
idea.Seconsiguedeestamanera:
dpkg -l
9de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
El comando anterior lo podemos usar para buscar un programa especfico y saber si est
instalado.Porejemplo,siqueremossabersiApache2estinstaladoseraas:
Cmosabersiunpaqueteseencuentrainstaladoonodemanerafcilyrpida
.
mysql -u root -p
Nos pedir la contrasea 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
datosexistentes,hayqueescribiresto:
show databases;
ParasalirdeMySQLyvolveralpromptdelsistema,escribimosesto:
exit;
10de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
Hay que tener en cuenta que sirve para la versin 5.5 de MySQL, si queremos saber qu
versindeMySQLtenemosinstalado,podemosusarelcomandodelpuntoanterior:
mysql -u lola -p
11de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
RadxaRockPro:LinaroServerManualcaserodeinstalacin
cd /var/www
13de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
Yterminamosdeestablecerpermisos:
RadxaRockPro:LinaroServerManualcaserodeinstalacin
Ydenuevo,reiniciarelApache2:
Sersucarpetaen/homelaqueusaremosparacompartirporSFTP.
Sabiendo de antemano que vamos a necesitar permisos de administrador y es una lata poner
lacontraseacadavez,nosponemosenmodosudoparaelrestodecomandos:
sudo -i
El primer paso es crear el usuario, usaremos como ejemplo lola. El parmetro s /bin/bash
eselqueharquepuedaaccedervaSSH:
passwd lola
Antesmencionamosqueelusuariocompartirasucarpetaen/homepor FTP,perorealmentelo
que nos interesa es que comparta
/var/www/html
, que portemasde permisosyseguridad,no
es posible. Lo solucionamos creando unenlacesimblico(
symlink
)comosucarpetaen/home,
queyaespecificamosalcrearelusuarioquelallamaramoslola:
ln -s /var/www /home/lola
Cuidado
, si ya existe una carpeta con ese nombre, lo que har este comando es crear un
enlace simblico llamado www dentro, y no nos vale. Hay que asegurarse de que la carpeta
15de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
no existe antes de usar el comando. Sabremos que lola es un enlace simblico, si al listar
ejecutar
lsl/home
salelacarpetaas:
lola>/var/www
Siesas,lohemoshechobien.
RadxaRockPro:LinaroServerManualcaserodeinstalacin
InstalarunservidorSFTPenDebianGNU/Linux
.
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 todaslascarpetasqueseincluyenenlarutadeldirectorio jaula
tienen que tener como propietario al usuario
root
,si no,nofuncionar.Enlacarpeta
/homees
msqueprobablequeseaassinolahemostocado,comprobemoslacarpeta
/lola
:
ls -l /home
Si el propietario de
/lola no esrootlocambiamos(recordemosqueelusuariololapertenecaal
grupo
wwwdata
:
RadxaRockPro:LinaroServerManualcaserodeinstalacin
mkdir /home/lola/archivos
chown lola:www-data /home/lola/archivos
AhoratocamodificarlaconfiguracindelSSH:
pico /etc/ssh/sshd_config
Tenemos que buscar la lnea que ponga
Subsystem sftp /usr/lib/openssh/sftpserver
y
cambiarloporesto:
#Subsystemsftp/usr/lib/openssh/sftpserver
Subsystemsftpinternalsftp
Yalfinaldeldocumento,aadimoslosiguiente:
Matchgroupwwwdata
ChrootDirectory/home/%u
X11Forwardingno
AllowTcpForwardingno
ForceCommandinternalsftp
Con esto le decimos al SSH que a todo usuario que sea del grupo
wwwdata
lo enjaule en la
carpetaconsunombredeusuarioqueestdentrodelacarpeta
/home
.
Finalmente,bastaraconreiniciarelservicioSSH:
/etc/init.d/ssh restart
Pero como, sin razn aparente, a veces no me ha funcionado y me lo puedo permitir, prefiero
reiniciartodoelservidor:
shutdown -r now
Si todo ha ido bien, deberamos poder acceder a travs de SSH y manipular archivos en la
carpeta
/home/lola/archivos
. Ojo con qu programa lo probamos, por alguna razn, en
Dreamweavermefueperfecto,peroenAptanamedabaerrores.
Por cierto, recordemos que el usuario
lola
tena acceso a consola, si con un usuario solo
vamosausarprogramasdetransferenciadearchivosynonecesitamoslaconsola,esmejorno
permitirqueseuse.Podemoshacerlosimodificamoselarchivo
/etc/passwd
oas:
18de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
19de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
/etc/init.d/apache2 restart
RadxaRockPro:LinaroServerManualcaserodeinstalacin
(ojo, no es recomendable tenerlo activo en pginas ya visibles al pblico, mostrar los errores
puedeserungranagujerodeseguridad).Lavariabledeberaquedaras:
display_errors=On
Recordemos que tambin se pueden ver los errores (muy recomendable) mirando el log de
errores,queesten
/var/log/apache2/error.log
:
InstallingPHP5
.
Configuracindelphp.ini
.
RadxaRockPro:LinaroServerManualcaserodeinstalacin
mail=root#Mailallmsgstoroot.
mailfailure=root#Mailfailedupdatemsgstoroot.
pid=/var/run/ddclient.pid#RecordPIDinfile.
ssl=yes#Usesslsupport.Workswithssllibrary.
use=web,web=checkip.dynu.com/,webskip='IPAddress'#Getipfrom
server.
server=api.dynu.com#IPupdateserver.
protocol=dyndns2
login=myusername#Yourusername.
password=YOURPASSWORD#PasswordorMD5ofpassword.
MYDOMAIN.DYNU.COM#Listoneormorehostnamesoneoneachline.
Nota: no hay que olvidar que las DNS de nuestro dominio tienen que apuntar alosservidores
delproveedordeDNSdinmico.
Porltimo,nosquedacrearundemonioqueseencarguedeircomprobandolaIP.Seraas:
cd /etc/apache2/sites-available
sudo cp 000-default.conf midominiocom.conf
Luegoloeditamos:
22de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
DocumentRoot/var/www/html/midominiocom
ServerNamewww.midominio.com
ServerAliasmidominio.com
Con esto, bsicamente le decimos al Apache que si le llega una peticin de mostrar
midominio.com, tiene que buscar los archivos en
/var/www/html/midominiocomenvezde en
/var/www/html. Hay que mencionar que si no usamos el
ServerAlias
, www.midominio.com y
midominio.com apuntarn a sitios diferentes, elprimeroalacarpeta
./html/midominiocomyel
segundoalacarpeta
./html
.
El siguiente paso es aadir la configuracin a la segunda carpeta que mencionamos, que es
/etc/apache2/sitesenables creando un enlace simblico, y esto lo hacemos fcilmente con
estecomando:
cd /var/www/html/midominiocom
sudo touch index.html
sudo chmod 777 index.html
sudo echo "Funciona el dominio" > index.html
Porltimo,hayquereiniciarelApache:
23de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
Fuente:
AlojarvariosdominiosenunhostingconApache
.
RadxaRockPro:LinaroServerManualcaserodeinstalacin
Paraverlasreglasquehemosaadido,usamosestecomando:
ConfigurafacilmentetuFIREWALLendebian/ubuntu
.
EOF
25de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
echoe"\n\n\n
\n============================================================"
echo"!!!!!expandsrootfsdone!rebootsystem"
echo"!!!!!andruncommand"resize2fs/dev/mmcblk0p1"afterreboot"
echo
e
"=============================================================\n\n\n"
Acontinuacin,loejecutaremos:
rm cambiaparticion.sh
Meheguiadodeestafuente:
ResizeLinuxRootfs(eningls)
.
su
AhoranecesitamosconectarelpendriveenelUSBycomprobarqunombretiene:
fdisk -l
NosdarelnombredeldispositivoUSB,enestecaso,
/dev/sda1
.
Para trabajar con el dispositivoUSB,crearemosunacarpetaymontaremoseldispositivo sobre
ella.Lacarpetalacrearemosdeestamanera:
mkdir /backup
26de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
pico /etc/fstab
Yloeditaremosconelsiguientetexto:
/dev/sda1
/backup
vfat
defaults
Luego,podemosmontareldispositivo(ytodoslosqueestnenesalista):
mount -a
En este momento ya tenemos el dispositivo USBmontadoypodemosversucontenido. 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 enlacarpetaetc/cron.daily,queesdonde
seejecutanlosscriptdiarios:
pico/etc/cron.daily/mysql_backup.sh
Aadiremosestetexto,queseencargadehacerelbackupdelasbasesdedatos:
#!/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"mysqldumpstartedat$(date+'%d%m%Y%H:%M:%S')">>
"$logfile"
mysqldumpuser=usuariopassword=contrasenia
defaultcharacterset=utf8alldatabases|gzip>
"$fullpathbackupfile"
echo"mysqldumpfinishedat$(date+'%d%m%Y%H:%M:%S')">>
"$logfile"
echo"*****************">>"$logfile"
exit0
Como se ve en la lnea del mysqldump, se est proporcionando el usuario y contrasea de
mysql, y como no queremos que cualquiera pueda ver esa informacin, vamos a cambiar los
permisosdelarchivo,paraquesolorootpuedaleerlo:
27de28
RadxaRockPro:LinaroServerManualcaserodeinstalacin
bash /etc/cron.daily/mysql_backup.sh
Lasfuentesqueheseguido:
HowtomountUSBdriveinLinux(ingls)
.
Linuxshellscriptfordatabasebackup(ingls)
.
Manualbsicodecron(espaol)
.
crontab -l
Paraeditarlo,elcomandoeselsiguiente:
crontab -e
Siguiendo el ejemplo anterior, si queremos que el script se ejecute todos los das a las6dela
maana,aadiramoslasiguientelnea:
*6***bash/etc/cron.daily/mysqlbackup.sh
Losasteriscoscorrespondenalosiguiente
(minhordmesmesdsem
):
min
:minutoalqueseejecuta(0a59).
hor
:horaalaqueseejecuta(0a23).
dmes
:dadelmesenelqueseejecuta.
mes
:elmesenelqueseejecuta.
dsem
:dadelasemanaenlaqueseejecuta(0a7,donde0y7sondomingo).
Fuente:
Cron&crontab,explicados(espaol)
.
28de28