Nextcloud 12 en Ubuntu Server 16.04 con Redis, APcu, HSTS, letsencrypt …

Nextcloud 12 en Ubuntu 16.04con  Redis, APcu, HSTS, letsencrypt … howto con todo ( o casi)

 

Abstract

El objetivo de este artículo es crear un servidor en una máquina virtual para la sincronización de archivos de equipos de escritorio en una nube personal con Nextcloud 12. El sistema operativo elegido es Ubuntu Server 16.04, por su compatibilidad con todas las exigencias de nextcloud. La plataforma de virtualización es Virtualbox.

La última versión de Nextcloud se ha desatado y ofrece muchas mejoras y nuevas características (incluyendo algunas mejoras importantes en la interfaz de usuario). Algunos de los cambios incluyen:

  • Advertencia de cuota
  • JSloader app (permite al administrador incluir JavaScript en todas las páginas Nextcloud)
  • Impersonate app (permite a los administradores  suplantar a otro usuario).
  • Tiempo real de acciones globales para usuarios
  • Guest app (una manera perfecta para dar un temporal y el acceso restringido a un cliente o un socio para datos compartidos)
  • Excludedirs app (habilita una carpeta específica patrón para ser excluidos del indexado)
  • Facilita el uso compartido de la carpeta actual
  • Capacidad para mover archivos a través del menú en lugar de arrastrar y soltar
  • Secure Drop (caída segura): único vínculo público que se comparte a varios usuarios (cada uno con su propia configuración, como los permisos, protección de contraseña y fecha de caducidad de la comunicación y colaboración

Configuración de la máquina virtualen VirtualBox 5.1

Instalación del servidor

  • Usuario y password: se recomienda un nombre de usuario y password fuerte. Obtenlo aquí.
  • Nombre de la máquina: se recomienda un fqdn (nombre de dominio). Puedes recurrir a https://www.noip.com/ (algunas opciones gratuitas) o https://dyn.com/dns/
  • Es necesario para solicitar el posterior certificado SSL, gratuito con https://letsencrypt.org/.
  • Configuramos una IP fija, que estará abierta en nuestro router a los puertos 80 y 443, (para http y https respectivamente). Los DNS 8.8.8.8 8.8.4.4 (servidores de Google, sin comas, sólo
    espacios. Ponemos servidores gratuitos que podemos encontrar en https://www.lifewire.com/free-and-public-dns-servers-2626062
  • Elparticionado : 1Gb de swap, 10Gb para “/”, y el resto a “/var/www/cloud_data/
  • En selección de programas seleccionamos únicamente OpenSSH Server.
  • Activamos actualizaciones automáticas.
  • Reiniciamos y actualizamos con :

sudo apt-get update && sudo apt-get –y dist-upgrade && sudo reboot

Configuración del servidor:

  • Ingresamos por ssh ( en linux o MacOS) : ssh user@fqdns
  • Nota: Para hosts hospedados en otros sitios (VPS), verificar locale y usuario sudo.
  • Seguimos las instrucciones del tuto http://www.pacorabadan.com/2017/08/ubuntu-16-04-home-server-virtualbox-headless/
  • Instalamos dependencias
sudo apt-get install apache2 mariadb-server libapache2-mod-php7.0 php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip unzip
  • Aseguramos MariaDB: introducimos la instrucción siguiente, y decimos a todo que si, incluyendo un password fuerte para el usuario root de MariaDB
mysql_secure_installation
  •  Creamos la base de datos (Nota: como el sitio va a dedicarse únicamente a Nextcloud, haremos que el root de MySQL coincida con el usuario de nextcloud)
mysql -u root -p

## When prompted, enter the MySQL root user password

CREATE DATABASE nextcloud;
GRANT ALL ON nextcloud.* to ‘root’@’localhost’
IDENTIFIED BY ‘PASSWORD’;
##Donde PASSWORD es el pasword del usuario root de MySQL
FLUSH PRIVILEGES;
exit;

 

Configurar Apache

Creamos el archivo /etc/apache2/sites-available/nextcloud.conf :

nano /etc/apache2/sites-available/nextcloud.conf

y pegamos el siguiente contenido:

Alias /nextcloud “/var/www/nextcloud/”

<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud

</Directory>

creamos un enlace simbólico:

sudo ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf

Activamos los módulos de apache que necesitamos

a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
a2enmod ssl
a2ensite default-ssl

reiniciamos apache

service apache2 restart

 

Instalando Nextcloud

Vamos al directrio /var/www y descargamos nextcloud (ir al sitio nextcloud.com para verificar la nueva version de nextcloud12), y damos permisos a apache

sudo su
cd /var/www
wget
https://download.nextcloud.com/server/releases/nextcloud-12.0.2.zip
unzip nextcloud-12.0.2.zip
rm nextcloud-12.0.2.zip
sudo chown -R www-data:www-data /var/www/cloud_data
sudo chown -R www-data:www-data /var/www/nextcloud

Iniciamos el instalador en el navegador, en la dirección http://ip_del_servidor/nextcloud/
NC setup

Lo primero entramos en Personal  y añadimos nuestra dirección de correo electrónico. Si entramos en administración podems ver algunos ajustes que nos quedan por hacer para mejorar la seguridad.
Avisos de seguridad NC

Instalamos el certificado SSL con lets encrypt:

Instalamos el cliente de python para letsencrypt

sudo apt install letsencrypt python-letsencrypt-apache

Creamos el certificado: sustitumos email y el dominio por el fqdn

sudo letsencrypt --apache --agree-tos --email your-email-address -d nextcloud.your-domain.com
Seleccionamos la opción Secure, para que todo el tráfico pase al https. Ahora, cuando vayas al sitio, serás recibido con la confirmación verde en la barra de URL confirmando que SSL está habilitado.
 Mientras estamos configurando Apache, vamos a editar los le-config y añadimos una línea al final del archivo después de la línea SSLCertificateKeyFile:
 
 nano /etc/apache2/sites-enabled/000-default-le-ssl.conf
<IfModule mod_headers.c>
     Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
 </IfModule>

Instalamos APCu, Redis

y algunos módulos php adicionales:

sudo apt install php-apcu redis-server php-redis && sudo apt install php-zip php-dompdf php-xml php-mbstring php-gd php-curl

reiniciamos apache

service apache2 restart

 Configuramos Redis

sudo systemctl start redis-server
sudo systemctl enable redis-server
php --ri redis
sudo systemctl restart apache2
sudo phpenmod redis

Editamos

sudo nano /var/www/nextcloud/config/config.php

Y añadimos las siguientes lineas de código, antes de la línea );

‘memcache.distributed’ => ‘\OC\Memcache\Redis’,

'memcache.local' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
     ),

ubuntu-16.04-redis-cache-nextcloud

Editamos /etc/php/7.0/apache2/php.ini
con nano: /etc/php/7.0/apache2/php.ini
con webmin: modificamos la ruta del módulo… /php5/… por …/php/7.0/… y editamos ( es más difícil cometer errore)

Modificamos las líneas:

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

 

Conclusión:

Hemos pasado todas las directivas de seguridad de nextcloud y hemos reforzado el LAMP para aumentar la seguridad. Ya sólo nos queda descargar los clientes de nextcloud para nuestros equipos de escritorio y dispositivos.
nextcloudclientc

Gracias a:

 

Ubuntu Server 16.04: Acceso remoto con Mate + XRDP en Castellano

Acceso remoto con Mate + XRDP con teclado en Castellano

Ubuntu Server 16.04

Este post forma parte de la página Tutos Ubuntu 16.04 , y viene del anterior post, VirtualBox Server Ubuntu 16.04 : Virtualbox 5.1 headless + Phpvirtualbox 5.0

Se supone que hemos seguido los pasos anteriores y tenemos acceso ssh por un puerto personalizado abierto desde nuestro router a internet.

Accedemos por ssh a la consola del servidor:

  • Actualizamos el sistema :

$ sudo apt-get update && sudo apt-get -y dist-upgrade

  • Si hemos actualizado paquetes básicos como el kernel, etc… ( si no omitimos este paso)

$ sudo shutdown -r now

  • Instalamos XRDP:

$ sudo apt-get install xrdp

Ahora tomamos una decisión:

  • Si queremos una instalación de todas las aplicaciones que vienen por omisión en Ubuntu Desktop, incluido traducción de idiomas, drivers privativos, codecs privativos y aplicaciones de canonical [ yo tomaría esta opción 😉 ] :

$ sudo apt-get install ubuntu-desktop ubuntu-restricted-extras

$ sudo apt-get install mate-core mate-desktop-environment mate-notification-daemon

  • Si queremos una instalación mínima:

$ sudo apt-get install mate-core mate-desktop-environment mate-notification-daemon

  • Eliminar un “bug” para todos los usuarios del sistema (thanks to http://c-nergy.be):
$ sudo sed -i.bak '/fi/a #xrdp multiple users configuration \n mate-session \n' /etc/xrdp/startwm.sh

Poner el teclado en español:

  • Hacemos una copia de seguridad de la configuración actual:

$ sudo cp /etc/xrdp/km-0409.ini /etc/xrdp/km-0409.ini.old

  • Eliminamos km-0409.ini y lo editamos:

$ sudo rm /etc/xrdp/km-0409.ini

$ sudo nano /etc/xrdp/km-0409.ini  ###

  • Copiamos con el portapapeles el contenido siguiente:
[noshift]
Key8=65406:0
Key9=65307:27
Key10=49:49
Key11=50:50
Key12=51:51
Key13=52:52
Key14=53:53
Key15=54:54
Key16=55:55
Key17=56:56
Key18=57:57
Key19=48:48
Key20=39:39
Key21=161:161
Key22=65288:8
Key23=65289:9
Key24=113:113
Key25=119:119
Key26=101:101
Key27=114:114
Key28=116:116
Key29=121:121
Key30=117:117
Key31=105:105
Key32=111:111
Key33=112:112
Key34=65104:96
Key35=43:43
Key36=65293:13
Key37=65507:0
Key38=97:97
Key39=115:115
Key40=100:100
Key41=102:102
Key42=103:103
Key43=104:104
Key44=106:106
Key45=107:107
Key46=108:108
Key47=241:241
Key48=65105:180
Key49=186:186
Key50=65505:0
Key51=231:231
Key52=122:122
Key53=120:120
Key54=99:99
Key55=118:118
Key56=98:98
Key57=110:110
Key58=109:109
Key59=44:44
Key60=46:46
Key61=45:45
Key62=65506:0
Key63=65450:42
Key64=65513:0
Key65=32:32
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65407:0
Key78=65300:0
Key79=65429:0
Key80=65431:0
Key81=65434:0
Key82=65453:45
Key83=65430:0
Key84=65437:0
Key85=65432:0
Key86=65451:43
Key87=65436:0
Key88=65433:0
Key89=65435:0
Key90=65438:0
Key91=65439:0
Key92=0:0
Key93=0:0
Key94=60:60
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65027:0
Key114=0:0
Key115=65515:0
Key116=65516:0
Key117=65383:0
Key118=0:0
Key119=0:0
Key120=0:0
Key121=0:0
Key122=0:0
Key123=0:0
Key124=65027:0
Key125=0:0
Key126=65469:61
Key127=0:0
Key128=0:0
Key129=0:0
Key130=0:0
Key131=0:0
Key132=0:0
Key133=0:0
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0[shift]
Key8=65406:0
Key9=65307:27
Key10=33:33
Key11=34:34
Key12=183:183
Key13=36:36
Key14=37:37
Key15=38:38
Key16=47:47
Key17=40:40
Key18=41:41
Key19=61:61
Key20=63:63
Key21=191:191
Key22=65288:8
Key23=65056:0
Key24=81:81
Key25=87:87
Key26=69:69
Key27=82:82
Key28=84:84
Key29=89:89
Key30=85:85
Key31=73:73
Key32=79:79
Key33=80:80
Key34=65106:94
Key35=42:42
Key36=65293:13
Key37=65507:0
Key38=65:65
Key39=83:83
Key40=68:68
Key41=70:70
Key42=71:71
Key43=72:72
Key44=74:74
Key45=75:75
Key46=76:76
Key47=209:209
Key48=65111:168
Key49=170:170
Key50=65505:0
Key51=199:199
Key52=90:90
Key53=88:88
Key54=67:67
Key55=86:86
Key56=66:66
Key57=78:78
Key58=77:77
Key59=59:59
Key60=58:58
Key61=95:95
Key62=65506:0
Key63=65450:42
Key64=65511:0
Key65=32:32
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65273:0
Key78=65300:0
Key79=65463:55
Key80=65464:56
Key81=65465:57
Key82=65453:45
Key83=65460:52
Key84=65461:53
Key85=65462:54
Key86=65451:43
Key87=65457:49
Key88=65458:50
Key89=65459:51
Key90=65456:48
Key91=65454:46
Key92=0:0
Key93=0:0
Key94=62:62
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65312:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65027:0
Key114=0:0
Key115=65515:0
Key116=65312:0
Key117=65383:0
Key118=0:0
Key119=0:0
Key120=0:0
Key121=0:0
Key122=0:0
Key123=0:0
Key124=65027:0
Key125=65513:0
Key126=65469:61
Key127=65515:0
Key128=65517:0
Key129=0:0
Key130=0:0
Key131=0:0
Key132=0:0
Key133=0:0
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0

[altgr]
Key8=65406:0
Key9=65307:27
Key10=124:124
Key11=64:64
Key12=35:35
Key13=126:126
Key14=189:189
Key15=172:172
Key16=123:123
Key17=91:91
Key18=93:93
Key19=125:125
Key20=92:92
Key21=126:126
Key22=65288:8
Key23=65289:9
Key24=64:64
Key25=435:322
Key26=8364:8364
Key27=182:182
Key28=956:359
Key29=2299:8592
Key30=2302:8595
Key31=2301:8594
Key32=248:248
Key33=254:254
Key34=91:91
Key35=93:93
Key36=65293:13
Key37=65507:0
Key38=230:230
Key39=223:223
Key40=240:240
Key41=496:273
Key42=959:331
Key43=689:295
Key44=106:106
Key45=930:312
Key46=435:322
Key47=126:126
Key48=123:123
Key49=92:92
Key50=65505:0
Key51=125:125
Key52=171:171
Key53=187:187
Key54=162:162
Key55=2770:8220
Key56=2771:8221
Key57=110:110
Key58=181:181
Key59=2211:0
Key60=183:183
Key61=65120:0
Key62=65506:0
Key63=65450:42
Key64=65513:0
Key65=32:32
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65407:0
Key78=65300:0
Key79=65429:0
Key80=65431:0
Key81=65434:0
Key82=65453:45
Key83=65430:0
Key84=65437:0
Key85=65432:0
Key86=65451:43
Key87=65436:0
Key88=65433:0
Key89=65435:0
Key90=65438:0
Key91=65439:0
Key92=0:0
Key93=0:0
Key94=124:124
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65027:0
Key114=0:0
Key115=65515:0
Key116=65516:0
Key117=65383:0
Key118=0:0
Key119=0:0
Key120=0:0
Key121=0:0
Key122=0:0
Key123=0:0
Key124=65027:0
Key125=0:0
Key126=65469:61
Key127=0:0
Key128=0:0
Key129=0:0
Key130=0:0
Key131=0:0
Key132=0:0
Key133=0:0
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0

[capslock]
Key8=65406:0
Key9=65307:27
Key10=49:49
Key11=50:50
Key12=51:51
Key13=52:52
Key14=53:53
Key15=54:54
Key16=55:55
Key17=56:56
Key18=57:57
Key19=48:48
Key20=39:39
Key21=161:161
Key22=65288:8
Key23=65289:9
Key24=81:81
Key25=87:87
Key26=69:69
Key27=82:82
Key28=84:84
Key29=89:89
Key30=85:85
Key31=73:73
Key32=79:79
Key33=80:80
Key34=65104:96
Key35=43:43
Key36=65293:13
Key37=65507:0
Key38=65:65
Key39=83:83
Key40=68:68
Key41=70:70
Key42=71:71
Key43=72:72
Key44=74:74
Key45=75:75
Key46=76:76
Key47=209:209
Key48=65105:180
Key49=186:186
Key50=65505:0
Key51=199:199
Key52=90:90
Key53=88:88
Key54=67:67
Key55=86:86
Key56=66:66
Key57=78:78
Key58=77:77
Key59=44:44
Key60=46:46
Key61=45:45
Key62=65506:0
Key63=65450:42
Key64=65513:0
Key65=32:32
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65407:0
Key78=65300:0
Key79=65429:0
Key80=65431:0
Key81=65434:0
Key82=65453:45
Key83=65430:0
Key84=65437:0
Key85=65432:0
Key86=65451:43
Key87=65436:0
Key88=65433:0
Key89=65435:0
Key90=65438:0
Key91=65439:0
Key92=0:0
Key93=0:0
Key94=60:60
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65027:0
Key114=0:0
Key115=65515:0
Key116=65516:0
Key117=65383:0
Key118=0:0
Key119=0:0
Key120=0:0
Key121=0:0
Key122=0:0
Key123=0:0
Key124=65027:0
Key125=0:0
Key126=65469:61
Key127=0:0
Key128=0:0
Key129=0:0
Key130=0:0
Key131=0:0
Key132=0:0
Key133=0:0
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0

[shiftcapslock]
Key8=65406:0
Key9=65307:27
Key10=33:33
Key11=34:34
Key12=183:183
Key13=36:36
Key14=37:37
Key15=38:38
Key16=47:47
Key17=40:40
Key18=41:41
Key19=61:61
Key20=63:63
Key21=191:191
Key22=65288:8
Key23=65056:0
Key24=113:113
Key25=119:119
Key26=101:101
Key27=114:114
Key28=116:116
Key29=121:121
Key30=117:117
Key31=105:105
Key32=111:111
Key33=112:112
Key34=65106:94
Key35=42:42
Key36=65293:13
Key37=65507:0
Key38=97:97
Key39=115:115
Key40=100:100
Key41=102:102
Key42=103:103
Key43=104:104
Key44=106:106
Key45=107:107
Key46=108:108
Key47=241:241
Key48=65111:168
Key49=170:170
Key50=65505:0
Key51=231:231
Key52=122:122
Key53=120:120
Key54=99:99
Key55=118:118
Key56=98:98
Key57=110:110
Key58=109:109
Key59=59:59
Key60=58:58
Key61=95:95
Key62=65506:0
Key63=65450:42
Key64=65511:0
Key65=32:32
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65273:0
Key78=65300:0
Key79=65463:55
Key80=65464:56
Key81=65465:57
Key82=65453:45
Key83=65460:52
Key84=65461:53
Key85=65462:54
Key86=65451:43
Key87=65457:49
Key88=65458:50
Key89=65459:51
Key90=65456:48
Key91=65454:46
Key92=0:0
Key93=0:0
Key94=62:62
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65312:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65027:0
Key114=0:0
Key115=65515:0
Key116=65312:0
Key117=65383:0
Key118=0:0
Key119=0:0
Key120=0:0
Key121=0:0
Key122=0:0
Key123=0:0
Key124=65027:0
Key125=65513:0
Key126=65469:61
Key127=65515:0
Key128=65517:0
Key129=0:0
Key130=0:0
Key131=0:0
Key132=0:0
Key133=0:0
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0

Reiniciamos el servicio

$ sudo service xrdp restart

Acceso desde un cliente RDP, o RDP + SSH:

  1. Desde nuestra intranet podemos apuntar directamente con el RDP de Microsoft, si tenemos Windows.
  2. Yo desde MacOS utilizo Remotix ( es de pago).
  3. Para Linux recomiendo Remmina.

Et Voíla!

Asegurar Ubuntu Home Server 16.04 y configuración básica

Asegurar el servidor y configuración básica

Ubuntu 16.04 Home server

 

Este tuto viene del post. Se supone que tenéis configurado ubuntu 16.04 con una instalación mínima, red con ip fija, y acceso por ssh.

Objetivo: una instalación básica para correr Oracle VirtualBox 5.1 cpm php virtualbox.

 

Paso 1. Ajustar los archivos de configuración

Instalar algunos paquetes esenciales

$ sudo apt-get install nano lm-sensors smartmontools build-essential dkms sysstat htop perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python openssh-server zip unzip rar unrar

Modificación del nombre de Host

Podemos omitirlo si hemos realizado la instalación según el post anterior.

Actuamos como root, tecleando en la terminal:

$ sudo su

  • Con el nombre de dominio que hemos obtenido en dyndns (en el presente ejemplo namebox.dyndns.org), modificamos el nombre de nuestro ordenador

$ nano /etc/hosts

127.0.0.1 localhost.localdomain localhost

192.168.0.100 server1.example.comserver1

# The following lines are desirable for IPv6

capable hosts

::1ip6-localhost ip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

ff02::3 ip6-allhosts

Editamos también:

$ nano /etc/hostname

namebox

Y ejecutamos

$ /bin/hostname -F /etc/hostname

$ shutdown -r now

Asegurar ssh.

Vamos a cambiar el puerto por defecto de ssh, desactivar el acceso del root y establecer los usuarios que podrán acceder.

$ sudo nano /etc/ssh/sshd_config

– Buscamos

Port 22 – y lo cambiamos por un numero diferente (12345) para ponérselo más difícil a los hackers. (Hay que configurar el router para acceder a este nuevo puerto)

– Cambiamos:

PermitRootLogin no

X11Forwarding no

UsePAM no

– y añadimos estas líneas al final:

UseDNS no

AllowUsers user1

Para reiniciar ssh

$ service ssh restart

Salimos e iniciamos una sesión ssh con el nuevo usuario

* desde OSX o Linux:

ssh -p 12345 user1@123.45.6.78

* Desde Windows:

putty user1@123.45.6.78 1234

Modificar fstab

Os dejo una copia de mi fstab (arhivo de puntos de montaje de los dispositivos y discos duros.

Las líneas que comienzan por tmpfs, son recomendables para todas las configuraciones ( si hay >2 Gb de Ram) por rendimiento y seguridad.

La línea correspondiente a  /, es la configuración para una SSD EVO 850, configurada para instalar después netatalk y aumentar el rendimiento.

La línea correspondiente a /R5, es para el raid5 del LSI Megaraid.

La línea /vbox, es para una SSD destinada únicamente a las máquinas virtuales.

Ahora ajustad vuestra propia configuración.

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> point>
# / was on /dev/sdb1 during installation
UUID=e352177d-e79e-45aa-bdd0-b519df2fe5e0 / ext4 noatime,nodiratime,nodelalloc,barrier=0,i_version,commit=30,inode_readahead_blks=64,errors=remount-ro,user_xattr,acl 0$
# /R5 was on /dev/sda2 during installation
UUID=5f78aebc-f770-43d5-8ad6-5618377fee2a /R5 ext4 noatime,nodiratime,user_xattr,acl 0 2
# /boot was on /dev/sde1 during installation
UUID=2cab022f-7b2e-4d33-a76d-795bfe3e7d3b /boot ext2 noatime,nodiratime 0 2
# /vbox was on /dev/sdc1 during installation
UUID=5d8766f7-c0b2-4703-a3b5-a0073a7b4b8b /vbox ext4 noatime,nodiratime,nodelalloc,barrier=0,i_version,commit=30,inode_readahead_blks=64,user_xattr,acl 0 2
# swap was on /dev/sda1 during installation
UUID=fb9db486-b2b3-4c17-9675-364bb4ebbd4f none swap sw 0 0
tmpfs /tmp tmpfs rw,nosuid,nodev
tmpfs /run/shm tmpfs defaults,noexec,nosuid 0 0

Fstrim al inicio del sistema para optimizar las SSD

Borramos temporales, cache de apt y optimizamos los puntos de montaje sobre SSD’s.

$ sudo nano /etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.rm -R /var/crash/*
apt-get autoclean
apt-get clean
apt-get autoremove
fstrim -v /
fstrim -v /vbox
exit 0

Modificar systcl.conf

Para un servidor web y mínimo uso de la swap, añadir estas líneas a vuestro /etc/sysctl.conf

$ sudo nano /etc/sysctl.conf

# IP Spoofing protection
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1# Ignore ICMP broadcast requests
net.ipv4.icmp_echo_ignore_broadcasts = 1# Disable source packet routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0# Ignore send redirects
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0# Block SYN attacks
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5# Log Martians
net.ipv4.conf.all.log_martians = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1# Ignore ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0# Ignore Directed pings
net.ipv4.icmp_echo_ignore_all = 1

vm.swappiness=10

Si tenéis un linux Raid, podéis seguir este tuto, donde también se añaden lineas a /etc/rc.local dependiendo del raid que hayáis montado.

Instalar webmin

Basado en el enlace del propio sitio de wemin.

Editamos el archivo /etc/apt/sources.list

$ sudo nano /etc/apt/sources.list

y añadimos la línea

deb http://download.webmin.com/download/repository sarge contrib

Pulsamos Ctrl+X y guardamos (y).

Ejecutamos:

cd /root
wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc
apt-get update
apt-get install apt-transport-https
apt-get install webmin

 

Para acceder a webmin utilizamos la ip fija de nuestro servidor (192.168.1.X), y entramos por el navegador https://192.168.1.X:10000/

Es importante tener en cuenta que según nuestro esquema de instalación no accederemos directamente a webmin desde el router, sino desde una máquina virtual, por tanto es conveniente acceder directamente a la ip del servidor desde la red interna.

Si has instalado MySql o MariaDB:

Para asegurarlo

$ mysql_secure_installation

Le decimos a todo que si.

 

Ubuntu 16.04 Home Server – HP Microserver gen 8

Ubuntu 16.04 Home Server

HP Microserver gen 8

 

Esta máquina se ha hecho famosa por muchas razones:

  1. Relación calidad-precio. En el momento en que se escribe este post, 205,02€ en amazon.
  2. Posibilidades de actualización y tunearlo. Os dejo algunos enlaces.
    1. https://www.linuxserver.io/2015/03/24/setting-up-a-linux-home-server-using-the-hp-proliant-microserver-gen8-g1610t-3/
    2. https://www.linuxserver.io/2016/11/06/revisiting-the-hp-proliant-gen8-g1610t-microserver/
  3. Poco ruidoso perfecto para engancharlo a la tele, si le instalas una nvidia de media ranura. Yo lo tuve así una temporada, pero finalmente le di mejor uso como servidor, puro y duro.
  4. Bajo consumo, muy bajo consumo.

Objetivo del howto:

Crear un servidor con Ubuntu 16.04, solido como una roca, con las siguientes prestaciones:

  • Acceso vía ssh
  • Escritorio seguro vía Xrdp + mate.
  • Gestión remota con webmin: servicios habituales + smartmontools + lmsensors
  • Servidor de máquinas virtuales para correr:
    • Windows 10
    • Ubuntu server con nextcloud
    • Los que quieras…

Actualización de Hardware:

Por orden de prioridad

  1. Memoria flash USB 3.0 SanDisk Ultra de 16 GB, 8,90€.
  2. Aumentar a 16Gb Ram. Dos módulos Kingston KVR16E11/8 en Amazón. 82,80€ * 2 uds
  3. Procesador: Intel Xeon E3-1230 v6 3.5GHz 8MB Smart Cache Caja – Procesador (Intel Xeon E3 v6, 3,5 GHz, LGA 1151 (Socket H4), 280,81€
  4. LSI MegaRAID SAS 9240-8i PCI Express x8 6Gbit/s  , 151,38€.

(1) +(2) : recomendable para un servidor ubuntu con una única maquina virtual (en nuestro caso para el LAMP nextcloud), incluso con un sólo módulo de 8 gb valdría).

(1)+(2)+(3): servidor de hasta (recomendable) 4 máquinas virtuales, a una muy potente (Windows 10)

(1)+(2)+(3): RAID 5, con arranque sin necesidad del pendrive (configurando la bios)

El hardware y Ubuntu 16.04

Para instalar ubuntu en el HP Microserver hay que tener en cuentas varias cosas:

  1. Está diseñado para correr distribuciones privativas: Windows*, Suse y Redhat. Para instalar ubuntu, necesitaremos un pendrive conectado a la ranura ILO interior, donde instalar el punto de montaje boot, con grub en modo i386. A efectos prácticos, vamos a instalar una versión de Ubuntu Server más antigua, la 14.0.1, y después vamos a actualizarla a la ultima 16.*. Por tanto la descargamos en ubuntu old-releases ubuntu-16.04.1-server-amd64.iso ,
  2. No funciona cualquier tarjeta controladora de discos duros: hay problemas de compatibilidad. La LSI megaraid 9240 es absolutamete compatible, incluso con Freenas (aunque no lo recomiendo por el derroche de recursos).
  3. Hay que configurar la bios para solicitar el arranque desde el dispositivo USB.

 

Instalación de Ubuntu 14.04.1 y actualización a ubuntu 16.04

Procedemos a una instalación estándar: a nuestros efectos nos sirve mi howto de la versión 12.04, con la sigiuentes modificaciones:

  • Daos de alta un nombre dinámico de host: yo en mi caso lo he hecho con dyndns.com . Le vamos a reservar para la máquina virtual. Pero si el nombre que seleccionais en dyndns es por ejemplo: nombre.dynddns.org, a la máquina real llamarla nombrebox.dyndns.org. Para distinguirla e identificarla cuando avanzemos en la configuración.
  • Reservar una dirección IP dentro de vuestra red que sea únicamente para vuestro servidor. Cuando llegue el momento de configurar la red en ubuntu, pulsad a la tecla escape hasta que aparezca el siguiente cuadro de diálogo, para configurar la red manualmente.

 

 

En mi caso la subsed será 192.168.1.0, la ip de mi servidor 192.168.1.10, y el router tiene la dirección 192.168.1.1.  (todo esto depende de vuestra red). Un consejillo, como servidores DNS poned los de Google 8.8.8.8 y 8.8.4.4  (en la instalación sin coma y sólo con un espacio 8.8.8.8 8.8.8.4)

La primera diferencia con el howto de la 12.04 es esta pantalla. Cuando aparezca el menú de particionado seleccionáis una configuración parecida a esta teniendo en cuenta:

  1. Si vais a instala el sistema operativo ( /) en una ssd, activar discard, noatime y nodiratime. Cuando ya tengamos instalado el sistema podemos modificar fstab y hacer un script con cron. En el pendrive seleccionar noatime y nodiratime.
  2. Nunca instaleis el espacio de intercambio (swap) en la ssd, instalarlo en el raid o en el/los discos duros donde vayais a tener el grueso de los datos.
  3. Si habeis instalado el LSI Megaraid, el Raid os aparecerá como un único disco. Si utilizais la controladora estándar del servidor tener en cuenta que solo los dos primeros puestos sata son 6G, los3, 4 y 5 (DVD) son Sata 2.
  4. Instalar el punto /boot en el pen drive. Apuntad en un papel el sd* que corresponde al pendrive paraa modificar grub si es necesario (habitualmente no lo es)
  5. Seleccionar actualizaciones de seguridad automáticas.
  6. En selección de software nos quedamos con lo mínimo debido a que vamos a actualizar después a la 16.04*
  7. Cuando llegue la pantalla siguiente pulsad no, e introducir el /sd* de vuestro pendrive. Normalmente no hará falta, pero así os aseguráis que seleccionais el dispositivo de arranque correcto.
  8. Bueno, lo más duro ya está hecho. Arrancáis el sistema y en el prompt:
    1. introducir vuestro nombre de usuario y password.
    2. Ejecutar:

sudo apt-get update && sudo apt-get -y dist-upgrade && sudo reboot

  • Cuando se reinicie la máquina, de nuevo usuario y password y ejecutáis:

sudo do-release-upgrade

Os vais a tomar un café y cuando volváis, reiniciad, y ya tenéis la última versión de ubuntu 16.04.

 

Más en la página.

Instalar Ubuntu-Server 12.04 LTS

¿Por qué Ubuntu-Server 12.04 LTS?

Primero porque es Ubuntu, es decir, es un sistema operativo linux basado en Debian orientado al usuario final en informática. Es una distribución más que probada, segura y relativamente fácil de configurar, además de que contamos con multitud de tutoriales para personallizarlo hasta la saciedad. Elegimos la versión 12.04 LTS, porque es la “Long Time Support” y seguirá habiendo actualizaciones hasta el 2017

¿Como obtener Ubuntu?

Podéis descargarlo en el sitio de Ubuntu. Os recomiendan la versión AMD64, pero yo he probado la i386 y funciona fenomenal, sobre todo en equipos con menos 2Gb de Ram. Un vez descargada la imagen, la grabáis en un CD, o si tenéis ubuntu ya instalado en algún ordenador o máquina virtual, podéis crear un usb stick de arranque. La primera pantalla que nos encontramos es

Tenemos que elegir el idioma

Una vez elegido el idioma instalamos el Ubuntu server De nuevo elegimos nuestro idioma, la distribución del teclado,.. y no ocurre nada interesante hasta que nos pide el nombre de la máquina. Si vais a instalar un servidor, lo lógico es tener acceso a el desde internet. Podéis obtener un dominio gratuito en www.dyndns.com. Una vez que lo tengáis es importante que lo escribáis en la siguiente página.

Ahora os pedirá el nombre del usuario y su contraseña. Es importante que no seáis cómodos y pongáis una contraseña fuerte, pues es la primera medida de seguridad del sistema. No me pongáis cumpleaños, el nombre de la tía Berta,…. meted un password aleatorio y lo apuntáis. Podéis generar uno en password.es

Os da la opción de cifrar vuestra carpeta personal, pero para un servidor no me parece buena idea. No está mal para equipos portátiles, si trabajas para la CIA y no quieres que nadie te robe el ordenador y te saque la información, pero en casa la seguridad va por otros derroteros. Cifrar significa consumir recursos, y no poder montar el disco duro en otro ordenador para sacar la información en caso de fallo. Así que os recomiendo que no lo hagáis.

Después aceptáis la zona horaria ( o no y la cambias) y llega el segundo momento fundamental el particionado del disco. Podéis montar un raid de arranque ( tiene que ser un raid 1) y configurar LVM, Podéis montar distintos raid y unirlos con LVM para que funcionan como un único disco expendiendo la capacidad. Merece la pena que perdáis tiempo y sesera en combinar todos los discos posibles para obtener la mayor capacidad y seguridad. Por ejemplo, en nuestra instalación de ejemplo, voy a armar un raid 1 para el sistema, y un raid 5 (con spare). A la partición root de Ubuntu le sobra con 10Gb, así que lo demás lo distribuimos como nos convenga. En la pantalla de particionado de Discos elegimos Manual

Consejos Previos Si ya habéis montado un raid o un LVM, sería aconsejable que antes de instalar Ubuntu-Server, arrancarais el ordenador con la distribución desktop del CD de ubuntu y teclearais el siguiente comando, donde sdX, puede ser sda, sdb,.. Con esto llenáis el disco de ceros y cualquier configuración anterior de raid, lvm se pierde, junto a todo lo demás claro, así que cuidado con no borrar nada que sea importante para vosotros.

dd if=/dev/zero of=/dev/sdX

Vasta con que contéis hasta 10 y con un Ctrl +C para el comando, porque solo necesitamos borrar los primeros sectores del disco. Si acaso los discos provienen de un hardware raid (por ejemplo, los teníais en raid en una placa AMD o Intel, o cualquier controladora….) es necesario que borréis antes los raid creados con el menú en que fueron creados, por que ni siquiera el dd es capaz de borrar algunos de los datos generados por estas controladoras. En la segunda pantalla tenemos toda la lista de discos, damos enter encima de cada uno de los discos y generamos una nueva tabla de particiones para todos y cada uno de ellos.

En una primera etapa vamos a escribir todas las particiones en tipo raid. Como quiero hacer un raid uno de arranque voy a utilizar el sda y el sdb como espejos. A ambos les he creado una partición de 300mb para el punto de montaje /boot, y el resto se lo he dejado al raid 1 donde montaré el sistema El resto de discos son para armar un raid 5 ( que sirve como copia de seguridad del disco físico, en caso de que falla uno de ellos. Un vez escrito todas las particiones como raid, elegimos Configurar Raid por Software, que os aparece en la segunda línea del menú en el que estáis. Aplicáis los cambios y os aparece un menú y elegís “Crear un dispositivo MD”. 1º. Elegís un raid 1, después asignáis dos dispositivos, y dejáis cero libres en el raid. Elegís las particiones que formarán parte del raid y le dais a continuar. En el caso del raid de arranque

Repetimos el proceso para el raid1 del sistema

En el caso del Raid 5, vamos a seleccionar cuatro discos activos y dejamos uno libre. Esto significa que si falla uno de los discos, automáticamente el raid empezará a recomponerse con el disco que le hemos dejado libre. Otra opción es hacer un raid 6, y poner todos a funcionar. La ventaja es que hay una doble paridad, la desventaja es que el raid irá mucho más lento. El procedimiento es similar al anterior Una ves terminada esta parte nuestro esquema de partición quedará

Ahora vamos a formatear los nuevos raid. El raid de 300Mb para el arranque le damos formato ext2 , 1% reservado para el sistema y le asiognamosasignamos el punto de montaje boot. A los otros dos, de momento los formateamos como LVM.

El siguiente paso es configurar LVM. Seleccionamos la opción del menú “Configurar el Gestor de Volúmenes Lógicos” y guardamos lo anterior. Primero le damos a “Crear un grupo de volúmenes”. En este paso podríamos asignar varios discos duros, o varios raids. Yo solo voy a elegir el raid de sistema.

Primero le damos un nombre al grupo de volúmenes y después podemos crear diferentes volúmenes lógicos para los puntos de montaje /, /home, /var según nos convenga y hasta llena el grupo de volúmenes. Después ya formateamos todo el sistema. El raid1 de 300Mb como ext2, 1% para sistema y punto de montaje /boot El raid 5 como ext4, 1% para sistema y punto de montaje Home El raid1 para sistema, ahora son dos volúmenes lógicos, el primero lo dejaremos para “/” y el segundo para “/var”, ambos 1% para sistema y formato ext 4. En nuestro caso el esquema de partición quedará

Le damos a finalizar el particionado y escribir los cambios en el disco, que es la última línea del menú. Nos preguntará que si queremos que el sistema arranque si el raid está degradado: le decimos que si. Si tenéis un sistema con menos de 2Gb de Ram, o vais a utilizar el servidor para virtual izar, nos faltaría haber generado un partición swap de tamaño, el doble de vuestra ram. Si como yo no lo vais a usar no la necesitáis. El instalador se quejará, pero con no hacerle caso… El instalador seguirá, la línea del proxy la dejáis en blanco ( a no ser que tengáis acceso a un proxy decente), después activáis “Instalar actualizaciones automáticamente” Seguir la instalación dándole a todo que si hasta que  aparece la selección de programas. En mi caso como el uso va a ser para un servidor web casero selecciono …

Nos preguntara por el password del root de Mysql ( elegir un password fuerte diferente al del usuario anterior). El último paso es instalar Grub, que le decimos que instale en el “registro de arranque principal”.

Los últimos pasos son cuando arranca el sistema. Entramos con nuestro usuario y password, y actualizamos el sistema ejecutando:

sudo apt-get update sudo apt-get upgrade

Como último paso modificamos el archivo /etc/hosts, y le asignamos al nombre que obtuvimos en dyndns.com a la dirección ip de nuestro servidor

sudo nano /etc/hosts   ### salimos con Ctrl + X, y le decimos si a modificar los cambios

Y ya hemos terminado el principio. Ahora sólo nos queda seguir montando lo que necesitamos.

Ubuntu MegaHomeServer 1.5 – La regla de la cadena

Aquí no estamos hablando de la famosa regla de la cadena de las Matemáticas para derivar e integrar, así que no cunda el pánico. O si, sí vienes de google buscando una solución al control de mañana. Si es un examen final, mejor vete a dormir.

La regla de la cadena en informática y el cualquier proceso constituido por elementos encadenados es que la velocidad y eficiencia del sistema está limitado al más débil de los elementos de la cadena.

Así por ejemplo de nada nos sirve un raid stripe que alcanze los 500 Mb/seg, si luego vamos a pasar un puerto ehernet de 100Mb/seg. Algo parecido pasa también con el software. Dependiendo del protocolo que implementemos para intercambiar archivos alcanzaremos velocidades distintas.

1. La red .

Normalmente las redes domésticas y empresariales suelen pasar por un repartidos de red (switch) lo que es muy recomendable para que los usuarios intercambién archivos entre sí al poder conectarse directamente cono otros equipos. El problema que genera este tipo de estructura a un servidor es que está condenado (salvo configuraciones bastante avanzadas) a que todas las conexiones del resto de ordenadores con él pasen por un único puerto ethernet, lo que genera tapones en la entrada y ralentiza las transmisiones de copias de seguridad grandes (TimeMachine) o instalaciones de librerías enormes (Logic o Final Cut).

La alternativa para prescindir del “switch” cuando tenemos pocos ordenadores ( entre 2 y 20, y no os asustéis que esto es teórico; que yo no tengo 20 ordenadores en casa) es montar la red en estrella.

¿Qué significa esto? Que todos los ordenadores se conectan directamente a nuestro servidor, y a través de él a internet. Esto nos permite eliminar uno de los eslabones más débiles de la red que es el repartidos de puertos, y optimizar las conexiones individuales.

Esto presenta el inconveniente de que si los terminales quieren compartir información entre ellos tendrían que dejarla primero en el servidor el terminal emisor, y después descargarla el receptor. Para solucionar esto podemos crear una red secundaria (inalámbrica) para este tipo de conexiones no intensivas en consumo de red: navegar por internet con el portatil o acceder con el iphone, …

Cuando los archivos son grandes lo habitual es que estén en el servidor.

2. Discos duros en red:

Un BarracudaXT alcanza una velocidad de 140 Mb/seg (según seagate).  Al pasar a ethernet esto se queda en unos 100Mb/seg, con jumbro frames en la gigabit y appletalk de protocolo (el más rápido y fiable según mi experiencia). Esta es la carga que el servidor deberá aguantar.

Si tenemos tres ordenadores a parte del servidor (uno en la tele, otro el portatil, otro en el estudio, otro para …. y yo que sé), la carga simultanea si hacemos copias de seguridad puede alcanzar los 300 Mb/seg. Si el servidor tiene instalado un disco en el que volcamos nuestras copias de seguridad, volvemos de nuevo al tapón de los 140 Mb/seg iniciales.

La forma de solucionar esto es sin duda el raid stripe. Es aquel raid que permite sumar las velocidades de los discos duros que tiene integrados y tiene el inconveniente de que en caso de corrupción del raid perdemos toda la información, pero si es para copias de otros sistemas y el raid se pierde, lo reconstruimos, empezamos otra vez a sacar copias de seguridad y “arreglado”.

En casa tengo un raid stripe con 6 barracudas de 1,5Tb. La velocidad de escritura es de 480 Mb/seg y la de lectura 700Mb/seg. Se acabaron los problemas de colas.

Para servir archivos tengo un raid 10 con 4 seagates de 1,5Tb, es decir 3Tb de información segura cuya velocidad de lectura es de 150 Mb/seg. Más que de sobra para instalaciones. Esta información también se puede respaldar en el raid stripe, “por si las moscas”.

Ubuntu MegaHomeServer 1.4 – Hardware nuevo o de segunda mano

La obsolescencia puede ser una poderosa aliada para un usuario doméstico que quiera montarse un servidor en Linux. Hay muchos componente de muchísima calidad que cuando salieron al mercado eran inaccesibles para el presupuesto de casa. Hay que saber que comprar y a que precio.

El portal ebay ofrece la posibilidad de adquirir hardware de todo el mundo, mucho procedente de grandes empresas que han renovado sus infraestructuras. Es importante entender que las necesidades de procesamiento de aplicaciones basadas en bases de datos de las empresas de hace unos años superan con creces nuestras necesidades de proceso domésticas.

1. Que comprar de segunda mano.

Hay componentes de ordenador muy resistentes, en los que incluso las horas de utilización son una garantía de funcionamiento. Estos son típicamente las placas y los procesadores. Podemos conseguir una placa con dos xeon o dos opteron de altísima calidad por el mismo precio o muy poco más de lo que nos costaría un procesador estándar de escritorio y una placa nueva con menos prestaciones. El procesador de escritorio alcanza temperaturas mucho mayores y no está pensado para estar conectado dia y noche aunque pueda hacerlo.

Otro componente recomendable son las cajas de gama alta construidas en metal, preferiblemente el aluminio. Debido a su gran tamaño no son fáciles de vender por que tienen elevados costes de embalaje y transporte. Por ebay, si eres paciente puedes encontrar alguna caja de “solo recogida”, y por ello con poca demanda a muy buen precio.

Suele ser necesario un proceso de restauración, limpiándola a fondo con productos antigrasa (KH7), reparando algunos elementos y sustituyendo los ventiladores, pero el metal es metal y sigue sirviendo.

Las tarjetas gráficas también suelen ser una buena opción. Intenta que tengan disipadores pasivos en vez de ventiladores que con el tiempo generan ruido y suelen ser sinónimo de un consumo excesivo de energía.

2. Que comprar con un cierto riesgo.

Comprar ram de segunda mano es una lotería en la que es importantísimo que si picamos lo hagamos con primeras marcas como infineon, kingston o similares. Si la ram ha estado en un equipo con escasa ventilación puede fallarnos en cualquier momento aunque es fácilmente sustituible y raras veces el fallo se traduce en una perdida de información.

3. Que no comprar.

Los discos duros tienen su propia historia y su vida útil se mide en horas. Si compramos un disco de segunda mano debemos pedir que nos digan las horas de funcionamiento, lo que se puede ver en un informe smart del disco. Hay discos defectuosos que siguen funcionando pero que a través de smart vienen avisando del fallo inminente. Si compras un disco de segunda mano, verifica la información smart.

Por regla general fíate de tus discos pues tu sabes el trato que han tenido, y si necesitas ampliar intenta que sean nuevos. Los discos viejos deberías utilizarlos en pares respaldados con raid 0, por si acaso alguno falla.

No es recomendable comprar sais de segunda mano porque las baterías tienen una vida limitada, llegando a ser inútiles. Tampoco es recomendable comprar fuentes de alimentación a no ser que sean de mucha calidad. Si las compras debes desmontarlas y limpiarlas a fondo para que estén bien refrigeradas. Los dispositivos móviles como lectoras de CD o DVD, disquetes,… suelen ser muy baratos nuevos y no merece la pena.

No compres nada fuera de la comunidad europea de bajo precio, como por ejemplo cables, adaptadores, etc … a no ser que te puedas permitir esperar 15 días o un mes. Si estás decidido a montarte el servidor, es lo primero que debes comprar en lo que buscas la placa y el resto de componentes, pues son estándares muy baratos y te servirán. Lo único malo es la espera.

Ubuntu MegaHomeServer 1.3 – Elección del hardware

Vamos a construir un mega-server, lo que no significa que vayamos comprar lo último de lo último, ni lo más caro. Necesitamos ser conscientes de nuestras necesidades y de los recursos que necesitamos para cubrirlas. Seguramente contamos con “retales” informáticos como procesadores, módulos de ram, discos,…

Hemos de ser conscientes que un servidor es un ordenador que se construye para estar constantemente encendido y en el que es tan importante preguntarse las necesidades de rendimiento como las repercusiones en el consumo.

1º. Procesador:

Sería deseable un procesador que no se calentase demasiado y que no consuma demasiada potencia a no ser que se solicite capacidad intensiva de procesamiento. No necesitaremos que sea muy rápido a no ser que lo utilizemos para copias de seguridad del propio sistema que requieran comprimir los datos, la verificación de virus en sistemas que compartimos vía samba, virtualización intensiva o el uso de bases de datos SQL de forma agresiva . Es preferible un sistema multi-núcleo para que todos los núcleos funcionen muy levemente y nunca suba demasiado la temperatura.

2º. Memoria Ram:

Linux consume muy poca ram en comparación con otros sistemas operativos como Windows u OSX. Si no vamos a virtualizar, con dos gigas de ram nos sobrará casi siempre 1,4 Gigas. Sin embargo es recomendable contar con este exceso de ram por si en algún momento necesitamos de ella. Este exceso nos permite evitar el acceso al área swap de intercambio que simula memoria ram sobre el propio disco duro lo que ralentiza el rendimiento del sistema.

La gran razón para aumentar el tamaño de la memoria ram es la virtualización. Un Windows 7 requiere 2 Gb de ram en su versión 386. Un ubuntu en versión gráfica unos 512Mb siendo recomendable aumentarle a 1Gb. Dependiendo de lo que quieras virtualizar tendrás que contar con más o menos ram.

Es importante tener en cuenta que las bahías de ram suelen ser dobles, es decir, tiene un rendimiento mayor la ram alcanzando velocidades superiores cuando se instalan los módulos de dos en dos. Luego normalmente, la ram instalada suelen ser multiplos de 2 Gb.

3º. Tarjeta gráfica:

La mayor parte de las placas de servidor incluyen una gráfica integrada con una memoria de unos 16 Mb. Un servidor no suele necesitar una tarjeta gráfica potente, a no ser que desempeñe labores de escritorio que si lo requieran. En el caso de que tu placa no integre un chipset gráfico, lo mejor es una tarjeta modesta que tenga unos cuatro años de antigüedad. Googlea un poco e informate de la compatibilidad con Linux antes de decidirte por una u otra. Además ten en cuenta que una gráfica potente supone un aumento de consumo eléctrico innecesario para un servidor.

Continuar leyendo “Ubuntu MegaHomeServer 1.3 – Elección del hardware”

Ubuntu MegaHomeServer 1.2 – Elección de la Distribución Linux

Linux Warrior

Cada usuario de Linux tiene su distribución favorita, por sus propias razones.

Para montar nuestro mega server necesitamos:

  1. Una distro sólida en la que los paquetes de software libre sean actualizados con la mayor frecuencia posible para evitar vulnerabilidades de seguridad, y que estén disponibles en fase “stable” y no “testing” para garantizar su uso con entornos de trabajo operativos.
  2. Una distro que saque el máximo jugo al hardware y que cuente con la más amplia selección de drivers para el hardware más reciente. Lo que suele suponer uno de los mayores problemas en Linux. El mejor hardware para linux suele ser el que salió al mercado hará unos cuatro años. La mayor parte de la culpa de esta situación la tienen las propias empresas de hardware que no liberan el código fuente de los drivers para sus dispositivos.
  3. Una distro claramente orientada a los usuarios particulares y que no persiga el mercado de la informática empresarial para acabar vendiendo una versión de su distribución. Por ejemplo, los usuarios de Red Hat notamos en el paso a Fedora como se limitaban las opciones de implementar software libre y se disparaba la demanda de recursos de hardware.
  4. Una distro promiscua en su forma de compartir archivos capaz de comunicarse con máquinas Unix, Linux, Windows, o Macintosh de forma rápida y segura.
  5. Una distro capaz de virtualizar otros sistemas operativos para múltiples propósitos.

Soy un gran admirador de debian, porque es tal vez, la distribución que de forma más eficiente administra los recursos hardware. Es la estrella de las máquinas con procesadores ARM que con una arquitectura a 32 bits y con una cantidad de RAM que varía entre los 32 y los 512 Mb son capaces de movilizar servidores de red con un consumo mínimo. El principal problema de debian es que es muy lento a la hora de implementar nuevas prestaciones de linux, como el nuevo sistema estándar de archivos en Linux, el ext4, y sus actualizaciones de seguridad son menos frecuentes que las del su pariente cercando Ubuntu. Sin embargo, el primor con que la comunidad Debian desarrolla su software “stable” es de envidiar por la mayoría de las distribuciones. El entorno de escritorio deja mucho que desear mostrando un escritorio de gnome bastante anticuado hasta el dia de hoy.

Desde este texto recomiendo debian para Equipos con procesador pentium o inferior, y cuatro discos o menos (Máximo de 4 TB en el conjunto), que no estén orientados ni a la virtualización ni al servicio servidor de internet en entornos caseros que no estén supervisados con cierta frecuencia por un usuario experimentado.

Ubuntu está basado en Debian, y se está convirtiendo en el auténtico estándar Linux para el usuario doméstico, principalmente por la rapidez con que incorpora los avances de la comunidad en los entornos gráficos Gnome, KDE y otros. Hay una enorme cantidad de software disponible actualizado frecuentemente. Ha sido uno de los primeros en incorporar el sistema ext4, y la forma en que se instala inhabilitando el acceso a la shell del usuario root de forma predeterminada y permitiendo el acceso a la administración a través del comando sudo de forma nativa, la hace más segura desde el principio que otras distribuciones que requieren de mucha más configuraciones.

Ofrece una versión específica para los equipos destinados a ser escritorios (desktop) y otra para los servidores de red “Ubuntu Server”.

Además de ambas versiones se ofrece una versión LTS (Long Time Support) que será actualizada a lo largo de cinco años en el caso del servidor, y dos años en el caso de la versión de escritorio.

Esto facilita la elección debido a que un servidor suele quedar instalado sin monitor ni entorno gráfico por razones de seguridad y estabilidad, y la instalación es un poco más tediosa que un equipo de escritorio.

Ubuntu Server permite configurarlo para que se instalen automáticamente las actualizaciones de seguridad sin necesidad de que el administrador introduzca ningún comando.

Ubuntu es además, el Linux más sencillo para configurar Netatalk, el protocolo de linux para intercambiar archivos con máquinas Macintosh de forma nativa, lo que permite usarlo también como servidor de copias de seguridad de Time Machine.

Ubuntu MegaHomeServer 1.1 – Introducción

raid

Este es el primer post de una guía para montarte una red casera de alto rendimiento. Aunque a todo el mundo le puede ser de utilidad, está especialmente diseñada para aquellos que como yo movemos teras y teras de audio y vídeo en casa, y queremos sacarle todo el partido a nuestros equipos.

Muchas son las razones para plantearse instalar un servidor casero, pero la principal es la gran flexibilidad, seguridad y calidad del software libre que pone a nuestro alcance sistemas que de otra forma tendríamos que pagar a un precio muy elevado.

Linux es el principal desencadenante de este fenómeno de principios del siglo XXI, pues con muy pocos recursos de hardware a devuelto a la vida a infinidad de computadoras que otros sistemas operativos dejaban obsoletas a gran velocidad. Al mismo tiempo, Linux fue el primer sistema operativo que llevó de forma real a los hogares y a la mayoría de las empresas la posibilidad de explotar las prestaciones de los procesadores a 64bits, de la mano de la pionera empresa AMD.

En unos años Microsoft y Apple han intentado llevar soluciones similares con productos de pago. Microsoft parece incapaz de subsanar las debilidades de seguridad siendo vulnerable a virus y malware de todo tipo. Apple ha intentado portar su Snow Leopard Server a los hogares ofreciendo prestaciones que el usuario no necesita y limitando las posibilidades de programas de software libre que implementa como apache.

Como decía, Linux comenzó siendo utilizada de forma genérica en ordenadores anticuados o en servidores muy potentes dedicados a las soluciones empresariales.

Ha llegado el momento de conferir a Linux inversiones en hardware relativamente importantes y plantearse que no es el sistema operativo del futuro, sino el del presente. Las “Workstations” de los hogares comienzan a necesitar de sistemas de seguridad avanzados y potentes que respalden de forma efectiva los terabytes de información que requieren los sistemas multimedia ya no solo de edición de video o audio, sino también los “media servers” de películas en formato digital y audio.

Es importante minimizar recursos y centralizar los archivos para evitar duplicados en la red. Gestionar el ancho de banda para la descargas de toda la familia a traves de un programa P2P (peer to peer o puerto a puerto), e incluso implementar un servidor proxy que permitar limitar los contenidos para menores y chequear las páginas con virus que nos podamos encontrar.

Es necesario realizar copias de seguridad de forma automática de las workstations ante cualquier fallo de hardware o software que nos hiciera perder la información, lo que en muchas ocasiones supone terabytes de información que no entran en un disco duro de los más caros y avanzados del mercado. Por otro lado, necesitamos información compartida en la red que se sirva a gran velocidad y de forma segura donde guardar los programas e imágenes de discos del software para realizar instalaciones en un tiempo aceptable.

Como ejemplo, sirvan algunas programas habituales en el mundo del audio y del video, Final Cut Pro es un conjunto de 7 DVD’s que ocupan 50 Gb. Instalar este software a través de la grabadora supondría unas tres o cuatro horas introduciendo “galletas” debido a la limitación del propio formato. Si convertimos estos DVD en archivos dmg (formato estandar de imagen de disco de apple) la única limitación será la rapidez de los discos de origen y destino, y la velocidad de la red.

Cuando hablamos de terabytes de software con características más o menos similares, la necesidad de sistemas que permitan manejar estos procesos de forma ágil comienza a ser imperiosa.

Linux permite de forma nativa el manejar un conjunto de discos como si fueran uno solo, y combinarlos de tal forma que puedan ofrecer una velocidad del conjunto superior a la de las partes. El software que permite realizar estas combinaciones es conocido como DM Raid.

Por otro lado, las tarjetas gigabit con soporte para jumbo frames permiten mandar paquetes grandes por la red a gran velocidad. Su precio relativamente asequible permite al usuario doméstico conectar los ordenadores de trabajo directamente al servidor sin pasar por un “switch” o repartidor de red, lo que aumenta considerablemente la velocidad de transferencia. Si es necesario se puede generar una segunda red, preferiblemente inalámbrica, para que los ordenadores distintos del servidor tengan comunicación directamente entre ellos.

Luego la estrategia para maximizar el rendimiento de la red se basa en dos pilares.

  1. Los discos más lentos y viejos se agruparán en el servidor linux en grupos de respaldo (Raid 1) y grupos stripe (Raid 0) para aumentar la velocidad.
  2. La red será configurada en estrella con interfaces gigabit que soporten jumbo frames y cables cruzados al resto de ordenadores.