Me he encontrado dificultades para instalar r en OSX con homebrew y que sea compatible con R Comander y otras extensiones. Finalmente he conseguido una instalación adecuada y paso a compartirla con vosotros.
La instalación se realiza a partir de homebrew, pero ha de iniciarse una instalación limpia porque sino hay incumplimiento de dependencias.
Os lo recomendamos a todos, pero sobre todo a los alumnos de la URJC ya que os conceden créditos.
Organizado por la Dra. Cosculluela Martínez, el seminario contará con la presencia de eminentes profesionales de la estadística que abordarán algunos aspectos de la operativa en el manejo de «Big Data». Es un seminario gratuito al que para asistir sólo es necesario apuntarse en la web del seminario.
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
Asignamos 2Gb Ram y 2 procesadores. El disco duro será de 10 Gb (recomendable 20Gb) + Necesidades de almacenamiento, en mi caso 150Gb.
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.
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
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/
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.
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>
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)
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.
Ahora vamos a crear un árbol de directorios para los archivos de descarga de Transmission. En mi caso he dedicado un disco especialmente para ello, pero en este tutorial la ubicación del directorio está en el directorio home de vuestro ususario.
$ mkdir ~/downloads
$ mkdir ~/downloads/completos
$ mkdir ~/downloads/incompletos
Unimos nuestro usuario al grupo debian-transmission y damos permisos a los directorios creados. Donde pone username, ponéis vuestro nombre de usuario.
8c. Cambiamos el usuario y la password del usuario remoto de Transmission, para aumentar la seguridad. Es importante que sea una password fuerte y un usuario distinto del habitual. Cuando arranquéis transmission de nuevo, si volvéis a edita estos archivos observareis que Transmission lo ha encriptado. Además, dejáis en la lista blanca todas las redes para poder acceder desde fuera de casa.
8d. Podéis también cambiar el puerto en que escucha Transmission para el navegador web. Si es así modificar:
"rpc-port": 9091,
Iniciamos el demonio de transmission
$ sudo service transmission-daemon start
Nota: Si os arranca Transmission, se inicia la descarga y se interrumpe súbitamente, hay un problema de permisos que se soluciona fácilmente dando permisos 777.
$ sudo chmod -R 777 /home/username/Downloads
Paso 2. El cliente remoto:
Podéis descárgalo en Google Code en el siguiente enlace transmisson-remote-gui . Es un cliente multiplataforma, lo hay incluso para Android, y la configuración es muy sencilla. Simplemente hay que introducir la IP o nombre del servidor, el usuario y el password que hemos elegido. Por lo demás, las opciones son muy parecidas a las del cliente habitual de Transmission.
Paso 3. Acceder a las descargas:
A través de Samba, Netatalk, sshd, ftp,… o cualquier otro servidor de archivos (hay que configurarlo, claro). Os recomiendo que los archivos los borréis desde el cliente remoto de Transmission.
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 😉 ] :
Nota: Configuraremos un servidor básico para correr Virtualbox, y nunca accederemos a él desde Internet directamente, sino a través de una máquina virtual, para aumentar la seguridad del sistema. Por tanto, la configuración que proponemos es exclusivamente para un entorno doméstico al que de momento no accederemos directamente a través de Internet por el puerto 80.
Instalar virtualbox
Vamos a configurar /etc/apt/sources.list para incluir el repositorio de Oracle:
$ sudo nano /etc/apt/sources.list
Y añadimos la siguiente línea
deb http://download.virtualbox.org/virtualbox/debian xenial contrib
$ chmod +x upvboxext.sh ## para hacerlo ejecutable.
$ sudo ./upvboxext.sh
Añadir el usuario que utilizará virtualbox.
Como no vamos a entrar por Internet directamente configurar al usuario con permisos sudo (user1) para gestionar vuestras propias máquinas virtuales y darles acceso a todo los archivos. Para otras configuraciones, mirar el siguiente link.
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
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.
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.
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
(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:
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 ,
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).
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:
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.
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.
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.
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)
Seleccionar actualizaciones de seguridad automáticas.
En selección de software nos quedamos con lo mínimo debido a que vamos a actualizar después a la 16.04*
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.
Bueno, lo más duro ya está hecho. Arrancáis el sistema y en el prompt:
Cakebrew is a graphical package manager for Homebrew. You can run brew update, brew install, brew doctor,… see what is installed, and what is in the github repositories.