[HowTo] Nextcloud 16 en Ubuntu Server 18.04.3 con Apache2 + PHP7.2+MySQL

Posted: lunes, 30 de septiembre de 2019 by Termita in Etiquetas: , , , , , , , , , ,
0

Apache2 + PHP 7.2 + MySQL + NEXTCLOUD 16.0.0
En LOCAL (no acceso exterior)

WAN --- ONT --------- SERCOMM --------------- WRT54g -------------- servidor
      (ip.pública)    192.168.0.1   192.168.0.2 / 192.168.1.1      192.168.1.14


Sé que NextCloud en Ubuntu Server 18 se puede instalar de diversas formas:
    snap [sudo snap install nextcloud]
    docker
    script de bash
    "apt" (instalación y configuración de cada uno de los ingredientes necesarios)

He preferido, como siempre hasta el momento, montar nextcloud usando apt... porque a mi entender es la forma más "nativa", a medida, y su desempeño e integración en el servidor será mejor.

Por otro lado, he determinado que el acceso a la aplicación sea sólo en red local por varias razones:
Porque tal como están las cosas ahí "fuera" y dado que voy a almacenar documentación propia es preferible que sea inaccesible desde el exterior de la manera convencional.
Porque para acceder desde el exterior puedo utilizar VPN. No es lo mismo securizar un sólo elemento que tener que ocuparse de varios simultáneamente.
Porque mi router me dificulta bastante establecer conexiones SSL. Su puerto 443 se halla secuestrado por la compañía suministradora de internet. Este asunto pienso solucionarlo algún día.

Lo primero: CREAR EL SERVIDOR APACHE2 + MYSQL + PHP

sudo apt-get install apache2 php7.2 bzip2 -y
sudo apt-get install libapache2-mod-php php-gd php-json php-mysql php-curl php-mbstring -y
sudo apt-get install php-intl php-imagick php-xml php-zip -y
sudo apt-get install mysql-server php-mysql -y

sudo systemctl start mysql
sudo systemctl enable mysql
(*) Si no ejecutamos esos 2 comandos nos dará fallo mysqld.sock al ejecutar sudo mysql_secure_installation

sudo mysql_secure_installation
(i) Creamos entonces una contraseña root. Una vez hecho esto hay que responder que sí ("y") a las preguntas restantes.

Y ahora lo segundo, crear la base de datos para NextCloud:

sudo mysql -u root -p

CREATE DATABASE nombrequequierasparalabasededatosdenextcloud;

CREATE USER 'unnombreusuario'@'localhost' IDENTIFIED BY 'contraseñaquequierasponer';

GRANT ALL PRIVILEGES ON nombrequequisisteparalabasededatosdenextcloud.* TO 'unnombreusuario'@'localhost';

FLUSH PRIVILEGES;

exit


Momento es de afrontar el tercer paso: descargar, instalar y configurar NextCloud en nuestro servidor:

cd /var/www/html

sudo wget https://download.nextcloud.com/server/releases/nextcloud-16.0.0.tar.bz2 -O nextcloud-16-latest.tar.bz2

sudo tar -xvjf nextcloud-16-latest.tar.bz2

(*) De mi cosecha, desconozco si es correcto, mas cuando instalé nextcloud bajo nginx (que, por cierto, no funcionó) hice este paso::::
sudo mkdir -p /var/www/html/nextcloud/data

sudo chown -R www-data:www-data /var/www/html/nextcloud

sudo nano /etc/apache2/sites-available/nextcloud.conf
    Pegar lo siguiente:
Alias /nextcloud "/var/www/html/nextcloud/"
<Directory /var/www/html/nextcloud/>
    Options +FollowSymlinks
    AllowOverride All
      <IfModule mod_dav.c>
        Dav off
      </IfModule>

     SetEnv HOME /var/www/html/nextcloud
    SetEnv HTTP_HOME /var/www/html/nextcloud
</Directory>


sudo a2ensite nextcloud
sudo a2enmod rewrite headers env dir mime

sudo sed -i '/^memory_limit =/s/=.*/= 512M/' /etc/php/7.2/apache2/php.ini

sudo systemctl restart apache2

(i) Desde el navegador ir a:
http://ip/nextcloud
Solicitará:
    usuario administrador que queremos para nextcloud
    contraseña que queremos para ese usuario administrador de nextcloud
    nombre de la base de datos
    ubicación (host) de la base de datos
    usuario de la base de datos
    contraseña de usuario de la base de datos
Se instalará Nextcloud.

http://ip/nextcloud
Entramos en nextcloud con nuestro recién creado usuario administrador

En el apartado Configuración > (Administración) > Vista General es más que probable que se nos comuniquen una o dos cosas:




    1. Fallos o mejoras que podemos acometer

    2. Actualización de NextCloud vía web. Hace bien su trabajo mas, si hemos creado algún fichero en el directorio de Nextcloud (copias de seguridad antes de editar algún archivo, por ejemplo), el sistema de actualización lo detectará y hasta que no lo quitemos no continuará.

Explicado el punto 2, paso a explayarme con el punto 1.

1. Los errores más frecuentes que detecta NextCloud en sus instalación:


1.a Se recomienta activar opcache
Esto se hace editando el fichero /etc//etc/php/7.2/apache2/php.ini de forma que los siguientes parámetros queden descomentados (quitando el ;) y con los adecuados valores:
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

(i) Más información sobre opcache y su relación con NextCloud:
https://docs.nextcloud.com/server/16/admin_manual/installation/server_tuning.html#enable-php-opcache
https://www.scalingphpbook.com/blog/2014/02/14/best-zend-opcache-settings.html [Explica cada uno de los parámetros y el por qué]
https://help.nextcloud.com/t/the-php-opcache-is-not-properly-configured/36147 [véase el último comentario, crítico con los parámetros recomendados]


1.b Se recomienda activar memcache
Hay tres formas de hacer esto. Una de ellas es a traves de Redis.
sudo apt install redis-server php-redis
ps ax | grep redis
sudo sytemctl restart apache2
sudo usermod -a -G redis www-data
sudo nano /var/www/html/nextcloud/config/config.php
    e insertamos:
  'memcache.local' => '\OC\Memcache\Redis',
  'memcache.distributed' => '\OC\Memcache\Redis',
  'redis' => [
       'host'     => 'localhost',
       'port'     => 6379,
  ],
  'memcache.locking' => '\OC\Memcache\Redis',

(*) Las líneas que proponía insertar la página oficial de NextCloud hacían que la aplicación no funcionara en mi caso, así que las adapté a las que recoge Polkillas en su blog.


1.c Fallo de nuestro servidor en la resolución ("service discovery") de /.well-known/caldav y /.well-known/cardav
Parece ser que esto suele ocurrir cuando nextcloud no está en la raiz del servidor web, sino en una carpeta (/nextcloud por ejemplo).
Logré solucionarlo haciendo algo diferente a lo que recomendaba la página oficial de NextCloud:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf.bak

sudo nano /etc/apache2/sites-available/000-default.conf
Justo debajo de la linea “</VirtualHost/>” hay que insertar estas 2 líneas:
Redirect 301 /.well-known/carddav /nextcloud/remote.php/dav 
Redirect 301 /.well-known/caldav /nextcloud/remote.php/dav

sudo systemctl restart apache2

[Anexo] ¿Cómo intenté anteriormente solucionar infructuosamente ese fallo de resolución de caldav y cardav?
Editando el fichero /var/www/html/nextcloud/.htaccess tal como recomendaba la página oficial de NextCloud:<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{HTTP_USER_AGENT}  DavClnt  RewriteRule ^$         /nextcloud/remote.php/webdav/          [L,R=302]
  RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
  RewriteRule ^\.well-known/host-meta /nextcloud/public.php?service=host-meta [QSA,L]
  RewriteRule ^\.well-known/host-meta\.json /nextcloud/public.php?service=host-meta-json [QSA,L]
  RewriteRule ^\.well-known/webfinger /nextcloud/public.php?service=webfinger [QSA,L]
  RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav/ [R=301,L]
  RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav/ [R=301,L]
  RewriteRule ^remote/(.*) /nextcloud/remote.php [QSA,L]
  RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
  RewriteCond %{REQUEST_URI} !^/\.well-known/(acme-challenge|pki-validation)/.*
  RewriteRule ^(?:\.|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>


Tras la creación del Servidor y la instalación de Nexcloud, el resumen del sistema queda asi, una carga del 9% de la memoria y 0'22 de CPU. No está mal para un sistema viejo y reciclado como este:






----------------------------------
fuentes:

[HowTo] Instalar el navegador Brave en Ubuntu 18

Posted: sábado, 28 de septiembre de 2019 by Termita in Etiquetas: , , , , , , , ,
0

Este blog se está transportando a un sitio "más libre".
Puede consultarse este artículo en su nueva ubicación:
>>>>>>>>>>>>>>>>>>>>>>

0

landscape-sysinfo

Este comando, que forma parte del paquete landscape-common, muestra los datos básicos de un servidor.
usuario@servidor:~$ landscape-sysinfo
  System load:  0.43               Processes:             101
  Usage of /:   29.4% of 18.21GB   Users logged in:       1
  Memory usage: 5%                 IP address for enp1s0: 192.168.1.43
  Swap usage:   0%



En Ubuntu Server viene instalado por defecto.

En otras distribuciones que funcionan con apt, para instalar este comando basta con ejecutar:
sudo apt install landscape-common


(*) En RaspBian ese paquete no está (o no lo encuentro)

Servidores DNS

Posted: by Termita in Etiquetas: , , , , , , , , , ,
0

OPENDNS *.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*
208.67.222.222
208.67.220.220

208.67.222.123 (block adult content)
208.67.220.123 (block adult content)

OpenDNS ofrece las siguientes direcciones de servidor de nombres de dominio (IPv4) para uso público:
208.67.222.222 (OpenDNS Home Free/VIP)
208.67.220.220 (OpenDNS Home Free/VIP)
208.67.222.123 (OpenDNS FamilyShield)
208.67.220.123 (OpenDNS FamilyShield)
En algunas configuraciones DNS se precisa de unas 3ª y 4ª direcciones DNS adicionales:
208.67.222.220 (Direcciones DNS adicionales)
208.67.220.222 (Direcciones DNS adicionales)

Servicios DNS IPv6
Actualmente OpenDNS solo provee de resolución recursiva de dominios para los sitios web basados en IPv6. Cuando globalmente la comunidad de Internet adopte IPv6, OpenDNS activará, en su panel de control, las funciones de seguridad y filtrado de contenido web, incluyendo las protecciones contra malware, botnet y phising.
2620:0:ccc::2
2620:0:ccd::2



GOOGLE *.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*
8.8.8.8
8.8.4.4


CLOUDFLARE *.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*
1.1.1.1
1.0.0.1

2606:4700:4700::1111 (ipv6)
2606:4700:4700::1001 (ipv6)


LOWI *.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*
212.166.132.102
212.166.132.96


VODAFONE *.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*
212.166.210.80
212.166.132.104


MOVISTAR *.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*
80.58.61.250
80.58.61.254


*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.**.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.**.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.**.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*

IBM (Quad9) – 9.9.9.9 y 149.112.112.112
Comodo Secure DNS – 8.26.56.26 y 8.20.247.20 (a punto de desaparecer a favor de Comodo Dome)
Comodo Dome – 8.26.56.10 y 8.20.247.10
Norton ConnectSafe – 199.85.126.10 y 199.85.127.10 (descatalogadas, aunque aún funcionan)
OpenNIC – 96.90.175.167 y 193.183.98.154
UltraDNS – 156.154.70.1, 156.154.71.1
UltraDNS Family – 156.154.70.3 y 156.154.71.3
Level3 – 209.244.0.3 y 209.244.0.4
Verisign – 64.6.64.6 y 64.6.65.6
WATCH – 84.200.69.80 y 84.200.70.40
DNS Advantage – 156.154.70.1 y 156.154.71.1
SafeDNS – 195.46.39.39 y 195.46.39.40
SmartViper – 208.76.50.50 y 208.76.51.51
Dyn – 216.146.35.35 y 216.146.36.36
FreeDNS – 37.235.1.174 y 37.235.1.177
Alternate DNS – 198.101.242.72 y 23.253.163.53
DNS – 77.88.8.8 y 77.88.8.1
dk – 91.239.100.100 y 89.233.43.71
Hurricane Electric – 74.82.42.42
puntCAT – 109.69.8.51
GreenTeamDNS – 81.218.119.11 y 209.88.198.133

namebench: benchmark de DNS

Posted: by Termita in Etiquetas: , , , , , , , ,
0

Namebench es una aplicación para testear la velocidad de resolución de los servidores DNS y así determinar cuáles -por ser más eficientes- conviene incorporar a la configuración de red de una máquina.

Lo más parecido a la página oficial de Namebench está en Google Code [http://code.google.com/p/namebench/downloads/list]. Allí se encuentra el código fuente y las versiones para Windows y Mac.

Sin embargo, desde GNU Linux se puede instalar desde apt:

    sudo apt install namebench


Luego bastará con ejecutar en la terminal
    namebench



---------------------------
Fuentes

[HowTo] Solucionar error "not authorized" en convert (imagemagick)

Posted: domingo, 22 de septiembre de 2019 by Termita in Etiquetas: , , , , , , , , , ,
0

Cuando, teniendo el paquete imagemagick instalado, al ejecutar el comando convert obtenemos errores como:

convert-im6.q16: not authorized
y/o
@ error/constitute.c/WriteImage/1037.

.... hay que hacer lo siguiente:

Hacer copia de seguridad -como superusuarios, es decir, con sudo- del archivo /etc/ImageMagick-6/policy.xml
sudo cp /etc/ImageMagick-6/policy.xml policy.xml.bak

A continuación debemos escoger llevar a cabo una de las siguientes 2 acciones:

a. Si en la máquina no corre ningún servidor podemos tranquilamente borrar el archivo /etc/ImageMagick-6/policy.xml

ô

b. Opción más recomendable, tengamos o no un servidor en la máquina: Editar como superusuarios el archivo /etc/ImageMagick-6/policy.xml
sudo nano /etc/ImageMagick-6/policy.xml

En la línea donde pone <policy domain="coder" rights="none" pattern="PDF" /> hay que editar y dejarla así:
<policy domain="coder" rights="read | write" pattern="PDF" />


------------------------
El error se debe a la configuración de seguridad que tiene imagemagick para evitar riesgos, sobre todo cuando está funcionando en una máquina que también corre un servidor.
Por eso en las versiones más recientes de, por ejemplo, Ubuntu, se impelementa un fichero de "políticas" (policy) que restringen ciertos usos del comando convert que forma parte del paquete imagemagick.

------------------------
En el siguiente artículo del blog se explica uno de los usos más frecuentes del comando convert: convertir varias imagenes a pdf.




----------------------------------
Fuentes:

0

Si -como es el caso del Linux Mint que estoy utilizando- el paquete imagemagick no está instalado, habrá que hacerlo:
sudo apt install imagemagick

A continuación, desde la carpeta donde tenemos las imagenes .jpg se ejecuta el comando convert
convert image1.jpg image2.jpg image1image2.pdf

Hay quien dice que el comando convert hay que ejecutarlo como superusuario, es decir con sudo, mas en mi caso no ha hecho falta.

(*) Si al ejecutar el comando convert acontece el siguiente error:

convert-im6.q16: not authorized
y/o
@ error/constitute.c/WriteImage/1037.

... entonces hay que solucionarlo haciendo lo que se señala en esta entrada del blog, que es básicamente lo siguiente:

-------------------------------
Hacer copia de seguridad -como superusuarios, es decir, con sudo- del archivo /etc/ImageMagick-6/policy.xml
sudo cp /etc/ImageMagick-6/policy.xml policy.xml.bak

A continuación debemos escoger llevar a cabo una de las siguientes 2 acciones:

a. Si en la máquina no corre ningún servidor podemos tranquilamente borrar el archivo /etc/ImageMagick-6/policy.xml

ô

b. Opción más recomendable, tengamos o no un servidor en la máquina: Editar como superusuarios el archivo /etc/ImageMagick-6/policy.xml
sudo nano /etc/ImageMagick-6/policy.xml

En la línea donde pone <policy domain="coder" rights="none" pattern="PDF" /> hay que editar y dejarla así:
<policy domain="coder" rights="read | write" pattern="PDF" />


------------------------
El error se debe a la configuración de seguridad que tiene imagemagick para evitar riesgos, sobre todo cuando está funcionando en una máquina que también corre un servidor.

Por eso en las versiones más recientes de, por ejemplo, Ubuntu, se impelementa un fichero de "políticas" (policy) que restringen ciertos usos del comando convert que forma parte del paquete imagemagick.