Apartamento En Familia

Apartamento En Familia
Apartamento de playa para vacaciones. https://www.booking.com/hotel/es/apartamento-en-familia.ca.html Número registro HUTT-005768

martes, 11 de febrero de 2020

Arrancar reglas de iptables automáticamente en el boot (netfilter-persistent)


Netfilter (o Proyecto Netfilter) es una comunidad de desarrolladores de software e ingenieros conocidos principalmente por el framework disponible en el núcleo de Linux que permite interceptar y manipular paquetes de red. Dicho framework permite interactuar con paquetes en diferentes etapas del procesamiento dentro del sistema operativo, ofreciendo funcionalidades de cortafuegos y otras utilidades relacionadas. Netfilter es el nombre que recibe el proyecto de comunidad y también el conjunto de herramientas software.

Las utilidades o componentes más populares en el contexto de Netfilter son nftables e iptables, herramientas de cortafuegos que permiten no solamente filtrar paquetes, sino también realizar traducción de direcciones de red (NAT) para IPv4 o mantener registros de log. El proyecto Netfilter no sólo ofrece componentes disponibles como módulos del núcleo sino que también ofrece herramientas de espacio de usuario y librerías.

La herramienta nftables (e iptables) son las utilidades de espacio de usuario mediante las cuales los administradores puede definir políticas de filtrado del tráfico que circula por la red. El nombre iptables se utiliza frecuentemente de forma errónea para referirse a toda la infraestructura ofrecida por el proyecto Netfilter. Sin embargo, el proyecto ofrece otros subsistemas independientes de iptables tales como el connection tracking system o sistema de seguimiento de conexiones, que permite encolar paquetes para que sean tratados desde espacio de usuario. iptables es un software disponible en prácticamente todas las distribuciones de Linux actuales.
(Fuente Wikipedia)

Hay muchas maneres de conseguir que nuestras reglas se arranquen al inicio del sistema. En esta ocasión os quiero explicar como se hace mediante el servicio netfilter-persistent.

Primero configuramos nuestras reglas con iptables. Cuando las tengamos apunto y tengamos confirmado que son esas las reglas que se quieran arrancar al inicio del sistema, instalamos iptables-persistent:
apt install iptables-persistent
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes adicionales:
  netfilter-persistent
Se instalarán los siguientes paquetes NUEVOS:
  iptables-persistent netfilter-persistent


Al hacerlo, a mitad de instalación nos preguntará si deseamos guardar la configuración actual de nuestras reglas. Es el momento de decirle que si:

Si más adelante cambiamos las reglas, facilmente las podemos actualizar. Estos comandos te seran útiles:

       netfilter-persistent start
      
netfilter-persistent stop
      
netfilter-persistent flush
      
netfilter-persistent save

Y también podemos comprobar el estado del servicio, arrancarlo y pararlo como cualquier otro servicio.

systemctl status netfilter-persistent

● netfilter-persistent.service - netfilter persistent configuration
   Loaded: loaded (/lib/systemd/system/netfilter-persistent.service; enabled; vendor preset: enabled)
   Active: active (exited) since Tue 2020-02-11 10:15:39 CET; 5min ago
  Process: 407 ExecStart=/usr/sbin/netfilter-persistent start (code=exited, status=0/SUCCESS)
 Main PID: 407 (code=exited, status=0/SUCCESS)




viernes, 31 de enero de 2020

Microsoft Teams es una nueva plataforma creada por Microsoft que sustenta el trabajo en equipo en las empresas; este tipo de software, que pone a disposición salas de chat, fuentes de noticias y grupos para el año de las empresas, forma parte del paquete 365 de Microsoft Office y no puede ser configurado individualmente; con él, se pueden hacer vídeos por Twitch, compartir archivos y acceder al Bloc de notas, IPages, Powerpoint y OneNote.1
Microsoft Teams proporciona servicios inteligentes a través de Microsoft Graph y de tener en cuenta los grupos de Office 365.
Microsoft ha hecho las conversaciones visibles por defecto para todo el equipo, pero siempre existirá la opción de entablar charlas privadas. Otras características de Microsoft Teams son la capacidad de personalización, el uso de notificaciones, el aprovechamiento de servicios de terceros y la promesa de la seguridad, con datos que se cifran tanto en tránsito como en reposo.

(Fuente Wikipedia)

Hace falta añadir el respositorio oficial:

https://packages.microsoft.com/repos/ms-teams stable main
 
al sources.list, añadir el certificado de Microsoft
sudo vim sources.list
wget -qO - https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo apt update
apt search teams




Y ya podemos empezar a trabajar en equipo!

Más información: https://docs.microsoft.com/en-us/microsoftteams/get-clients#linux

viernes, 10 de enero de 2020

Backup de una base de datos MaxDB desde Linux

MaxDB es un sistema de administración de bases de datos adquirido por la compañía SAP para usarse como un repositorio de datos para las aplicaciones de SAP. Desde su adquisición fue nombrado SapDB y, posteriormente, renombrado a MaxDB por MySQL AB. Antes de SapDB, la base de datos pasó por otros nombres. Originalmente, se llamaba Adabas D, una base de datos pre-relacional.
MaxDB fue liberado desde la versión SapDB 7.2 y es de uso gratuito en ambientes no SAP. Como consecuencia de su adquisición por parte de MySQL AB, MaxDB está bajo licencia GPL y las interfaces de programación están bajo licencia LGPL

Desde la versión 7.5 en adelante SapDB fue adquirido por MySQL AB, la misma compañía que desarrolla la base de datos de código abierto MySQL, aunque el desarrollo todavía está a cargo de SAP AG.

(Fuente: Wikipedia)


Las pruebas estan realizadas desde una máquina EC2 Machine (AWS) pero se pueden aplicar a cualquier distribución de GNU/Linux.

BACKUP_EXPORT_DIR="/data/export"
BACKUP_FILE="SERVER_BACKUP"
BACKUP_RSYNC="SERVER_MAXDB"
DBMCLI="/opt/sdb/programs/bin/dbmcli"
REPLICA_LOG="/home/ec2-user/logs/replica_maxdb_$(date +%d-%m-%y).log"
DBA_USER="userDBA"
DBA_PASSWORD="supersecretpassword"
DB="SIGMA"

function echodate(){
echo -e "\n$(date +%d-%m-%y_%H:%M)::$*" >>${REPLICA_LOG} 2>&1
}

echo "$(date +%d-%m-%y_%H:%M):Inicio backup. 10 minutos aprox..."
echodate "********************"
echodate "** Inicio backup **"
echodate "********************"

{
if [ ! -d $BACKUP_EXPORT_DIR ]; then
        mkdir -p $BACKUP_EXPORT_DIR
        sudo chown ec2-user:sdba $BACKUP_EXPORT_DIR
        chmod 775 $BACKUP_EXPORT_DIR
fi
rm -rf $BACKUP_EXPORT_DIR/${BACKUP_FILE}*
nice -n20 $DBMCLI -d $DB -u ${DBA_USER},${DBA_PASSWORD} << EOF
        util_connect
        medium_put SERVER_BACKUP "${BACKUP_EXPORT_DIR}/${BACKUP_FILE}" FILE DATA 0 8 NO
        medium_put SERVER_BACKUP_LOGS "${BACKUP_EXPORT_DIR}/${BACKUP_FILE}_LOGS" FILE LOG 0 8 NO
        db_connect
        backup_start SERVER_BACKUP
        backup_start SERVER_BACKUP_LOGS
EOF

La parte más significativa és la que comienza con el nice -n20, que és donde se ejecuta el dump de la base de datos MaxDB.

viernes, 16 de junio de 2017

Migrando de owncloud 8.2 a nextcloud 11 de un servidor a otro en Ubuntu 17.04

Nextcloud es un completo software que nos permitirá sincronizar archivos, carpetas, calendarios y contactos entre múltiples dispositivos. Esto no es nada nuevo, ya que los servicios de Google lo hacen, pero este software nos permite tener el control total de todos nuestros datos, ya que dichos datos se almacenan localmente en nuestra red local, no se suben a ninguna nube pública ni servidor externo si no queremos.

Nextcloud está centrado específicamente en proporcionar a sus usuarios seguridad, privacidad y el control total de todos sus datos, de tal forma que sean totalmente transparentes. Este software es la siguiente generación de sincronización de archivos que empezó con ownCloud, sin embargo, Nextcloud es mucho más avanzado y está en continuo desarrollo por parte de su equipo y también por la comunidad ya que es de código abierto.

(Fuente: RedesZone)

En un tutorial anterior os explicaba como instalar owncloud:

Este tutorial mostrará un procedimiento para migrar nuestro servidor ownCloud v8.2 de una máquina, a otra máquina diferente en donde querremos tener Nextcloud. Si la migración se hace en la misma máquina, el procedimiento es practicamente el mismo si bien no hay que transferir las copias de la base de datos y archivos de una a otra. Una cosa que tenemos que tener clara es la escalera de migraciones que debemos realizar:
  • ownCloud 8.2 y 9.0 a Nextcloud 9.
  • ownCloud 9.0 y 9.1 a Nextcloud 10
  • ownCloud 9.1 a Nextcloud 10 or 11.
(Fuente nextcloud)

Esto quiere decir, que si tengo (como es el caso) un owncloud 8.2, si deseo pasarlo a nextcloud 12, tendré que hacer una migración previa a nextcloud 9. Entendido esto, vamos a hacerlo:

Descarga: https://nextcloud.com/install/
wget https://download.nextcloud.com/server/releases/nextcloud-9.0.58.zip
--2017-06-15 11:16:27--  https://download.nextcloud.com/server/releases/nextcloud-9.0.58.zip
Resolviendo download.nextcloud.com (download.nextcloud.com)... 88.198.160.133
Conectando con download.nextcloud.com (download.nextcloud.com)[88.198.160.133]:443... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 44682063 (43M) [application/zip]
Guardando como: “nextcloud-9.0.58.zip”
nextcloud-9.0.58.zip                          100%[======================>]  42,61M  7,99MB/s    in 5,7s    
2017-06-15 11:16:33 (7,50 MB/s) - “nextcloud-9.0.58.zip” guardado [44682063/44682063]
Luego descomprimimos con unzip: 

unzip nextcloud-9.0.58.zip

Y obtendremos el software listo para instalarlo. Pero nosotros en este tutorial lo que queremos es migrar de owncloud a nextcloud, y no hacer una instalación nueva. Para ello necesitaremos:

  • Instalar un nuevo servidor LAMP
  • Hacer copia de seguridad de la base de datos de owncloud y restaurarla en el nuevo servidor
  • Hacer copia de los archivos (./data) de owncloud y copiarlo en el nuevo servidor.
  • Hacer copia de seguridad de la configuración de owncloud (./config) y restaurarlo en el nuevo servidor.

Por ejemplo, en mi caso tengo una copia de seguridad de la base de datos de owncloud. Me la copio al nuevo servidor y la descomprimo. Luego:

CREATE DATABASE IF NOT EXISTS nextcloud;
mysql --user=root --password nextcloud < owncloud-sqlbkp.bak


Creamos el site nextcloud en el apache del nuevo servidor:

Alias /nextcloud "/var/www/nextcloud/"


  Options +FollowSymlinks
  AllowOverride All

 
  Dav off
 

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

a2ensite nextcloud.conf


Tambien es aconsejable habilitar los siguientes módulos:
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime

Instalamos algunos paquetes php extras que nos irán bien
apt install php7.0-curl php7.0-json php7.0-cgi php7.0-xml memcached php-memcached php-zip php-mbstring php7.0-gd
systemctl reload apache2

Como el objetivo de este tutorial no es enseñar a instalar un owncloud o nextcloud, daremos por conocidos esos conceptos.

En este punto ya estamos preparados para poder realizar la migración:

http:///nextcloud/updater/

Ahora nos pedirá una clave de actualización. Esta será la que tengamos configurado en nuestro config.php, pero en el caso de no acordarnos la podemos regenerar desde el terminal :
php -r '$password = trim(shell_exec("openssl rand -base64 48"));if(strlen($password) === 64) {$hash = password_hash($password, PASSWORD_DEFAULT) . "\n"; echo "Insert as \"updater.secret\": ".$hash; echo "The plaintext value is: ".$password."\n";}else{echo "Could not execute OpenSSL.\n";};'
También se puede hacer por linea de comandos. De hecho, para servidores con gran cantidad de información es aconsejable ya que los tiempos de espera de PHP nos podrían cancelar la actualización.

sudo -u www-data php occ upgrade
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
  - Hint: You can speed up the upgrade by executing this SQL command manually: ALTER TABLE `*PREFIX*filecache` ADD COLUMN checksum varchar(255) DEFAULT NULL AFTER permissions;
Continue with update (y/n)
y
Set log level to debug
Checking whether the database schema can be updated (this can take a long time depending on the database size)
(...)

Al finalizar la actualización hacemos:

sudo -u www-data php occ maintenance:mode --off
Nextcloud is in maintenance mode - no app have been loaded
Maintenance mode disabled

Y .. ¡¡ tachán!! ya lo tendremos en Nextcloud 9!. Ahora toca actualizarlo hasta la 11. Para ello usaremos las propias indicaciones del nextcloud. Podemos hacerlo mediante linea de comandos o ayudándonos con el actualizador de nextcloud:
  1. Activar Modo mantenimiento
    sudo -u www-data php occ maintenance:mode --on
  2. Hacer copia de la configuración (config/config.php), base de datos y carpeta data
  3. Borrar el código antiguo de nextcloud y colocar la nueva versión
  4. Restablecer configuración (config.php) y carpeta data.
  5. Lanzar el comando para realizar la actualización
    sudo -u www-data php occ upgrade
  6. Desactivar Modo mantenimiento
    sudo -u www-data php occ maintenance:mode --off

martes, 27 de septiembre de 2016

OCFS2 (Oracle Cluster File System) + VMWare Multi-Writer

OCFS (Oracle Cluster File System) es un sistema de archivos de discos compartidos o sistema de archivos distribuido para clusteres de servidores de sistemas GNU/Linux desarrollado por Oracle Corporation distribuidos bajo los términos de la GNU General Public License.
La primera versión de OCFS se desarrolló con el objetivo de albergar los archivos de la base de datos de Oracle en entornos clusterizados.Con la segunda versión del sistema las características POSIX fueron incluidas.
OCFS2 (versión 2) fué integrada dentro de la versión 2.6.16 del kernel de Linux. Inicialmente se marcó como código experimental (Alpha-test). Esta restricción se levantó en la versión 2.6.19. Con la versión de kernel 2.6.29 se añadieron más funcionabilidades como ACLS (access control lists) y cuota 2

(Fuente Wikipedia

La idea básica de este sistema de archivos es, dado un servidor de almacenamiento, compartir dicho almacenamiento entre diferentes servidores. Para ello, crearemos un almacenamiento compartido (shared storage) e instalaremos un sistema de archivos capaz de trabajar en clúster. Esto es importante ya que si miramos de usar un disco compartido con un sistema de archivos que no tenga capacidades de cluster crearía inconsistencia de datos. Luego veremos un ejemplo. 
Este sería el esquema que planteo:


Para crear el disco compartido podríamos basarnos, por ejemplo, en VMWare creando un disco duro virtual con acceso de escritura desde cualquier máquina y luego activar los flags multi-writer. Como el objetivo de este blog no es enseñar a usar características de VMWare, os dejo el enlace para que podáis hacerlo si fuera necesario. Sino, podéis usar una SAN o cualquier otro sistema que conozcáis para compartir almacenamiento.
Por otro lado, necesitamos que el sistema de archivos esté preparado para trabajar con clúster y en esta ocasión trabajaremos con OCFS2. Para instalarlo en nuestro sistema usaremos apt:



Así pues:
apt-get install ocfs2-tools

Si tenéis una versión con escritorio también podeis instalar ocfs2console. Para este tutorial nos basaremos en servidores sin ventanas.

Lo primero que haremos es definir dos nodos que accederán al recurso compartido (disco compartido). Podrían ser tantos nodos como queramos, pero empecemos por dos. También declararemos un cluster que nos servirá para enlazar los nodos:

Creamos el archivo /etc/ocfs2/cluster.conf:

cluster:
node_count = 2
name = ocfs2

node:
ip_port = 7777
ip_address = 192.168.1.100
number = 1
name = node3
cluster = ocfs2

node:
ip_port = 7777
ip_address = 192.168.1.101
number = 2
name = node4
cluster = ocfs2

Es bastante sencillo entender la configuracón. Declaramos un cluster de dos maquinas (node_count = 2) al que llamamos ocfs2 (name = ocfs2). Luego declaramos dos nodos a los que le ponemos la ip que tienen (192.168.1.100 etc), les asignamos un nombre a cada nodo (name = mi_nodo1) y los enlazamos con el cluster definido (cluster = ocfs2). Como nota, deciros que el nombre del cluster 'por defecto' es ocfs2. Podéis cambiarlo, pero tenerlo en cuenta por si algo no os funciona. También tener muy en cuenta el sangrado del archivo. Si no tabulais correctamente el archivo no arrancará el servicio. Os dará un error como este:



Ahora vamos a cambiar un valor en el otro archivo 'importante' de configuración:
/etc/default/o2cb

Debéis cambiar el valor O2CB_ENABLED a true y dejarlo así:

O2CB_ENABLED=true

Esto lo que hará es que se cargue el driver al arrancar el sistema operativo, lo cual con casi toda seguridad es lo que querremos. 

Ya lo tenemos listo. Nos quedará reiniciar los servicios para que los cambios se apliquen:

service o2cb restart
service ocfs2 restart

Ahora bien, todo esto lo hemos hecho en un nodo. Para el otro nodo deberemos instalar también el paquete, editar el /etc/ocfs2/cluster.conf y /etc/default/o2cb.

Ahora sólo nos queda formatear el disco compartido (como es compartido, lo hemos de hacer solamente una vez en uno de los nodos) con el sistema de archivos ocfs2. No hace falta particionarlo si vamos a usar todo el disco. Entenderemos que nuestro disco compartido será, para este ejemplo, el /dev/sdb .

root@node3:/etc/ocfs2# mkfs.ocfs2 -b 4k -C 32K -L "Cluster-OCFS2" -N 4 /dev/sdb
mkfs.ocfs2 1.6.4
Cluster stack: classic o2cb
Label: Cluster-OCFS2
Features: sparse backup-super unwritten inline-data strict-journal-super xattr
Block size: 4096 (12 bits)
Cluster size: 32768 (15 bits)
Volume size: 4293918720 (131040 clusters) (1048320 blocks)
Cluster groups: 5 (tail covers 2016 clusters, rest cover 32256 clusters)
Extent allocator size: 4194304 (1 groups)
Journal size: 67108864
Node slots: 4
Creating bitmaps: done
Initializing superblock: done
Writing system files: done
Writing superblock: done
Writing backup superblock: 1 block(s)
Formatting Journals: done
Growing extent allocator: done
Formatting slot map: done
Formatting quota files: done
Writing lost+found: done
mkfs.ocfs2 successful

Para montar el disco compartido podemos editar el /etc/fstab añadiendo:

/dev/sdb /mnt/Cluster-OCFS2 ocfs2   defaults 0       0

y luego hacer mount -a.

Una vez hecho esto podremos ver que ya trabajamos con el cluster definido:

root@node3:/mnt# /etc/init.d/ocfs2 status
Configured OCFS2 mountpoints:  /mnt/Cluster-OCFS2
Active OCFS2 mountpoints:  /mnt/Cluster-OCFS2

Si montamos el disco compartido en los dos nodos, veremos que lo que vemos y escribimos desde uno tiene visibilidad total en el otro. 

Enlaces de interés:

jueves, 28 de abril de 2016

Arreglar 'No ha sido posible iniciar Dropbox' (dropbox permissions error)

Dropbox es un servicio de alojamiento de archivos multiplataforma en la nube, operado por la compañía Dropbox. El servicio permite a los usuarios almacenar y sincronizar archivos en línea y entre ordenadores y compartir archivos y carpetas con otros usuarios y con tabletas y móviles.1 También se puede ejecutar el programa WINISIS de UNESCO administrador de bases de datos textuales2 . Existen versiones gratuitas y de pago, cada una de las cuales tiene opciones variadas. La versión móvil está disponible para AndroidWindows PhoneBlackberry e iOS (Apple).

(Fuente Wikipedia)


La clave para arreglar este problema es siempre mirar en el archivo creado en el /tmp y fijarnos en la linea en donde sale el OperationlError. En mi caso (hay muchos otros si buscáis por internet) era este:

OperationalError: user-defined function raised exception

Para arreglar el problema he acudido al típico desinstalar e instalar programa, con el aderezo de que hay que borrar unas carpetas ocultas en tu carpeta personal (que no se encarga el purge). Así pues:

sudo apt-get purge nautilus-dropbox
cd ~
mv .dropbox .dropbox.old
mv .dropbox-dist/ .dropbox-dist.old
sudo apt-get install nautilus-dropbox

Luego sales de la sesión, vuelves a entrar y ya te pedirá de validarte en dropbox como una instalación nueva. 

That u don't know what you've got 'til it's gone