Mostrando entradas con la etiqueta owncloud. Mostrar todas las entradas
Mostrando entradas con la etiqueta owncloud. Mostrar todas las entradas

lunes, 16 de mayo de 2016

Copia de archivos en owncloud 8.2 por SSH


Cuando copiamos archivos " a pelo" mediante ssh sin utilizar la web owncloud ni webdav los archivos se copian pero no los vemos desde la web de owncloud. Con versiones anteriores esto no pasaba, simplemente cambiando al propietario y el grupo ya se veían los archivos copiados por ssh.

Ahora es necesario hacer lo siguiente o por lo menos esta es la forma que he encontrado para solucionarlo. Cambiamos los permisos chown apache y chgrp apache de los archivos copiados y se fuerza el escaneo de todo. (podría hacerse solo de un usuario).

sudo -u apache php occ files:scan --all


Fuente: http://www.sgarnica.org/en/manually-rescan-data-in-owncloud-8-2-1-on-centos-7/

jueves, 14 de enero de 2016

cron owncloud no funciona

Puede darse el caso de que al seleccionar "cron del sistema" en la configuración de cron, veamos que no ejecuta lo configurado en el crontab.
En mi caso aparecía esta línea de error en el log de owncloud:

{"reqId":"7qmGW1I+Gcvxg36z+5RO","remoteAddr":"","app":"cron","message":"Missing memcache class \\OC\\Memcache\\APCu for local cache","level":4,"time":"2016-01-14T19:00:01+01:00"}

El caso es que tenía configurado en el config.php de owncloud el parámetro:

 'memcache.local' => '\\OC\\Memcache\\APCu',

Y faltaba configurar en el fichero de configuración de php, /etc/php.ini/apcu.ini el parámetro:

apc.enable_cli=1

También hay que crear el fichero del crontab para el usuario apache que es mi caso:

crontab -u apache -e

y añadir la siguiente línea:

*/15  *  *  *  * php -f /var/www/html/owncloud/cron.php > /dev/null 2>&1

Con esto se ejecutará cron.php cada 15 minutos.

viernes, 2 de octubre de 2015

owncloud pdf sin imágenes

El problema se plantea cuando al abrir un pdf desde owncloud utilizando el pdfviewer (app que tenemos activada por defecto) vemos que las imágenes insertadas en el pdf (jpg) aparecen como marcos en blanco. Esto hasta la versión 8.1 se resuelve editando el fichero /var/www/htdocs/owncloud/apps/files_pdfviewer/tests/bootstrap.php y modificándolo añadiendo las líneas en rojo. Con esto se soluciona para chrome, para firefox no.


global $RUNTIME_NOAPPS;
$RUNTIME_NOAPPS = true;

if (!defined('PHPUNIT_RUN')) {
define('PHPUNIT_RUN', 1);
}

require_once __DIR__.'/../../../lib/base.php';

\OC::$loader->addValidRoot(\OC::$SERVERROOT . '/tests');
+\OC_App::loadApp('files_pdfviewer');


if(!class_exists('PHPUnit_Framework_TestCase')) {
require_once('PHPUnit/Autoload.php');
}

OC_Hook::clear();
OC_Log::$enabled = false;

Con la versión 8.1.3 me descargué el pdfviewer  de aquí ya que con el que viene con la actualización no me funcionaba el chrome tampoco. Con esta si que funciona el chrome, se ven las imágenes jpg de los pdf.
Para el firefox de momento creo que no hay solución, solo deshabilitar el csp en la configuración about:config buscar security.csp.enabled y ponerlo a false.

Fuentes:
https://github.com/owncloud/files_pdfviewer/pull/65
https://github.com/owncloud/files_pdfviewer/issues/60

jueves, 3 de septiembre de 2015

Apache: baneo de ips por códigos de error y palabras clave.

Este "jail" es sencillo y efectivo permite banear las ips en el momento aparece en el log de accesos de apache alguno de los códigos de error que especificamos en el "failregex" del filtro.
Es necesario incluir en "ignoreregex" las palabras clave de aquellos falsos ataques, errores que provoca por ejemplo owncloud con las subidas de instantáneas (cuando tenemos sincronizado nuestro android para que suba las fotos automáticamente).
Añadimos las siguientes líneas al archivo de conguración jail.local

[apache-misc]
enabled = true
filter = apache-misc
action = iptables-multiport[name=apache-misc,port="80,443"]
sendmail-whois[name=apache-misc, dest=alertas@micorreo.com, sender=alertas@micorreo.com, sendername="Fail2Ban"]
logpath = /opt/lampp/logs/access_log
maxretry = 1

maxretry: Especifica cuantos intentos vamos a dejar antes de banear la ip.

Ahora creamos el archivo de filtrado en /etc/fail2ban/filters.d/apache-misc.conf y dentro de el colocamos el siguiente contenido:

[Definition]
failregex = .*"[A-Z]* /(cms|user|muieblackcat|db|cpcommerce|wp-login|joomla|awstatstotals|wp-content|wp-includes|pma|phpmyadmin|myadmin|mysql|mysqladmin|sqladmin|mypma|admin|xampp|mysqldb|pmadb|phpmyadmin1|phpmyadmin2).*"
.*\" (502|500|417|416|415|414|413|412|404|405|403|401|400)
ignoreregex = .*\"GET \/.*(ciruela|press|mailto|domestic|word|externalShares).*
.*\"HEAD \/.*SubidasInstant.*
.*\"GET \/.*SubidasInstant.*

Todas estas palabras clave son a modo de ejemplo. Son las que podría un atacante intentar localizar.
Lo que si me ha funcionado son las dos últimas líneas para evitar los falsos errores 404 que provocaba owncloud.

Reiniciamos fail2ban

service fail2ban restart

Fuente:http://www.linux-magazine.com/Online/Features/Intrusion-Detection-with-fail2ban

miércoles, 12 de agosto de 2015

Owncloud - The "Strict-Transport-Security" HTTP header is not configured . . .

Editamos httpd.conf. Con este Header el servidor web informa a los navegadores que nunca cargue una página utilizando http. Deben cagar páginas solo como https

Header always add Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"

Para redireccionar los accesos http a https

<VirtualHost *:80>
   ServerName localhost
   Redirect permanent / https://mi.url/
</VirtualHost>,

Fuente: https://doc.owncloud.org/server/8.1/admin_manual/configuration_server/harden_server.html

martes, 11 de agosto de 2015

Owncloud - No memory cache has been configured. To enhance your performance please configure a memcache if available

En este enlace esta explicado con detalle. En mi caso tenía instalado php 5.5 y añadí la siguiente línea en el el config.php de owncloud

'memcache.local' => '\OC\Memcache\APCu',

Owncloud - This server has no working Internet connection . . .

Después de instalar owncloud 8.1 en centos 6.6 aparece este mensaje en la pantalla de configuración.

"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features"

Esta solución puede ser válida también para Centos 7 con el repositorio adecuado, indicado en el enlace adjunto (yo no lo he probado con Centos 7).

En este enlace está la solución (post de: maelange commented . Yo lo he comprobado con centos 6.6 y ha funcionado.
Al parecer es la libreria libcurl que está obsoleta. El error tiene que ver con que esta librería utiliza ssl3 en lugar de tls.
para ver  la versión que tenemos instalada

curl -V

Solución:

rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-1-13.rhel6.noarch.rpm
yum install libcurl

Ahora ya no dará el error y podemos comprobar que la librería libcurl se ha actualizado.


viernes, 7 de agosto de 2015

Instalar owncloud 8.x en centos 6.x desde repositorio

Owncloud recomienda la instalación desde los repositorios. Se garantizan las actualizaciones automáticas cuando se actualiza el sistema operativo.

He seguido varios tutoriales y esta guía es un mezcladillo. Tenemos que instalar el servidor apache con php 5.5 y el servidor mysql. Luego se añaden los repositorios necesarios para instalar owncloud y se instala.

Primero instalamos el servidor web apache

Añadimos el nombre del Host a /etc/hosts

vi /etc/hosts

Añadimos esta línea

127.0.0.1 OWNCLOUD # nombre del servidor

Editamos /etc/sysconfig/network

vi /etc/sysconfig/network
.
Editamos /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=OWNCLOUD

Actualizamos el sistema

yum update

Si queremos que al instalar los grupos, que veremos mas adelante, se instalen también los paquetes opcionales, añadiremos entonces en el fichero "/etc/yum.conf" la siguiente línea:

group_package_types=mandatory,default,optional

Seguimos instalando:

yum install gcc make kernel-devel perl
.
Seguimos instalando:

yum groupinstall “Development tools”
.
Instalamos PHP

yum groupinstall "PHP Support”

yum install php-mbstring php-devel php-mcrypt zlib zlib-devel zlib-static
.
Editamos /etc/php.ini y añadimos la siguiente línea

date.timezone = "Europe/Madrid"
.
Instalamos las librerías de desarrollo
.
yum install httpd-devel
.
Comprobamos la versión de apache
.
httpd -v
.
Comprobamos la versión de php
.
php -v
.
Debemos tener instalado mínimo php 5.5 (creo que 5.4 también vale /??)
En caso de tener que actualizar en esta web lo explica (yo actualicé siguiendo estos pasos)
http://www.servermom.org/upgrade-php-53-54-55-centos/1534/
.
Editamos el fichero /etc/httpd/conf /httpd.conf, debe aparecer la siguiente línea.
.
ServerName localhost

Eliminamos la página de bienvenida de apache. Editamos el fichero /etc/httpd/ conf.d/welcome.conf y comentamos todas la líneas.
.
#
# This configuration file enables the default "Welcome"
# page if there is no default index page present for
# the root URL. To disable the Welcome page, comment
# out all the lines below.
#
#
# Options -Indexes
# ErrorDocument 403 /error/noindex.html
#


Iniciamos apache
.
service httpd start
.
Lo configuramos para que siempre arranque apache en el inicio del sistema operativo.
.
chkconfig httpd on
.
Ahora instalamos Mysql

Instalamos  el servidor Mysql

yum groupinstall “MySQL Database server”
.
Instalamos el cliente Mysql

yum groupinstall “MySQL Database client”
.
Iniciamos Mysql

service mysqld start
.
Hacemos segura la instalación del servidor Mysql

/usr/bin/mysql_secure_installation
.
Para que se inicie al arrancar el sistema

chkconfig mysqld on
.
Si queremos comprobar los servicios que arrancan con el inicio del sistema.

chkconfig --list
.
Creamos la base de datos de owncloud y otorgamos permisos a un usuario

mysql -uroot -p
CREATE DATABASE owncloud; GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud_user'@'localhost' IDENTIFIED BY 'owncloud_user_pasword'; FLUSH PRIVILEGES;
.
Ahora instalamos Owncloud

cd /etc/yum.repos.d/
wget http://download.opensuse.org/repositories/isv:ownCloud:community/CentOS_CentOS-6/isv:ownCloud:community.repo

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum install owncloud
.
Ahora solo queda acceder con un navegador a la ip_del_servidor/owncloud y seguir los pasos de configuración que son: elegir el tipo de base de datos que será mysql, el nombre de la base de datos, el usuario y la contraseña.

Fuentes:
https://www.howtoforge.com/how-to-install-owncloud_7-on-centos_6.5
http://www.desarrolloweb.com/articulos/configuracion-servidor-web-centos.html




domingo, 8 de febrero de 2015

fail2ban y owncloud

Estos son los pasos a seguir para configurar fail2ban y owncloud de manera que cuando se produzcan errores en el login se produzca el baneo de la ip presuntamente atacante. Partiendo de la base de que tenemos instalado y funcionando file2ban.

Editamos el fichero de configuración config.php situado en el directorio data de la instalación de owncloud y añadimos la siguientes líneas.

'logtimezone' => 'Europe/Madrid',
'logfile' => '/var/log/owncloud.log',
'loglevel' => '2',
'log_authfailip' => true,



Creamos el siguiente filtro para file2ban en esta ruta: /etc/fail2ban/filter.d/owncloud.conf
(Este filtro está probado con la versión 7.0.4 de owncloud)

[Definition]
failregex={"app":"core","message":"Login failed: '.*' \(Remote IP: '<HOST>', X-Forwarded-For: '.*'\)","level":2,"time":".*"}

ignoreregex =


(Este filtro está probado con la versión 8.0.3.4 de owncloud)

[Definition]
failregex= {"reqId":".*","remoteAddr":".*","app":"core","message":"Login failed: '.*' \(Remote IP: '<HOST>', X-Forwarded-For: '.*'\)","level":2,"time":".*"}

ignoreregex =



(Este filtro está probado con la versión 8.1.0 de owncloud)

[Definition]
failregex={"reqId":".*","remoteAddr":".*","app":"core","message":"Login failed: '.*' \(Remote IP: '\)","level":2,"time":".*"}


ignoreregex =


Editamos el fichero /etc/fail2ban/jail.local y añadimos lo siguiente

[owncloud]
enabled = true
filter  = owncloud
action  = iptables-multiport[name=owncloud,port="80,443"]
logpath = /var/log/owncloud.log


Creamos el fichero /var/log/owncloud.log y le hacemos propietario al usuario "daemon" y el grupo "daemon"

Podemos probar si la expresión regular es correcta y asegurarnos de que funcionará el filtro con el siguiente comando.

fail2ban-regex /var/www/owncloud/data/owncloud.log /etc/fail2ban/filter.d/owncloud.conf -v


Reiniciamos fail2ban y ya podemos probar que funciona. Dependiendo de como tengamos la configuración general de fail2ban a los tres intentos en mi caso queda bloqueada la ip que ha intentado logearse incorrectamente.

Fuente:  http://www.rojtberg.net/711/secure-owncloud-server/ (tiene algunos fallos que se solucionan en este post)
regex para la versión 8.0.x.x. : https://forum.owncloud.org/viewtopic.php?f=31&t=26336
regex para la versión 8.1.0: https://forum.owncloud.org/viewtopic.php?f=8&t=28678 

domingo, 4 de enero de 2015

Montar unidad owncloud con davfs2 y Ubuntu 14.04

1. Instalamos davfs2

sudo apt-get install davfs2


2. Reconfigurar davfs2

sudo dpkg-reconfigure davfs2


3. Añadir nuestro usuario al grupo davfs2

sudo usermod -aG davfs2 <user>


4. Añadir la siguiente línea a /etc/fstab

https://mi.dominio/owncloud/remote.php/webdav/ /home/usuario/owncloud davfs user,rw,noauto 0 0


 Para cada usuario que quiera montar la carpeta:

En su home creamos las carpetas /owncloud y /.davfs2/

Dentro de .davfs2 creamos el archivo secrets con la siguiente línea

https://mi.dominio/owncloud/remote.php/webdav/ <usuario> "<contraseña>"


(La contraseña debe ir entre comillas) 

Cambiamos permisos

chmod 600 ~/.davfs2/secrets


Ejecutamos el comando

mount ~/owncloud


Si usamos un certificado self signed y queremos evitar la advertencia

echo "y" | mount ~/owncloud > /dev/null 2>&1


Ajustes en el fichero de configuración davfs2.conf.

Hay dos ficheros de configuración uno en /etc/davfs2/ y otro que hemos creado para cada usuario en la carpeta .davfs2/ dentro del home. Primero toma la configuración del que está en /etc/ y luego la configuración del que está en el home.

use_locks 0


Este ajuste me dió muchos problemas hasta que lo configuré, sin él las conexiones webdav al servidor owncloud eran inestables y sobre todo no se podían copiar archivos de gran tamaño.

use_expect100 1


Otro de las modificaciones fue el cache size, aunque no sé si influye. No lo he comprobado.

cache_size   6144


Nota:

El montar unidades con davfs2 es un poco peculiar y tiene un comportamiento que se presta ser interpretado como que funciona mal. No se trata de una conexión síncrona, es decir, cuando hacemos una copia primero se transfiere a una caché. Este paso es el que vemos que va rápido luego aparentemente se queda parado y es el momento en el que si no lo sabes crees que no funciona. Pero si que funciona. En este momento empieza la transferencia real de la caché al servidor remoto y tarda lo que tenga que tardar, sin ofrecer información de progreso. Es importante la opción de la configuración "use_expect100  1", sin ella el funcionamiento es caótico con el servidor owncloud.

Como curiosidad con clientes windows he utilizado  NetDrive, es de pago pero cuando termina el trial en principio puedes seguir utilizándolo con alguna limitación. El funcionamiento de Netdrive es muy bueno y no tiene los inconvenientes de davfs2. Aparentemente no hay ninguna diferencia con una conexión CIFS.

Fuentes:
http://doc.owncloud.org/server/6.0/user_manual/files/files.html
http://www.canarytek.com/tutoriales/webdav