miércoles, 10 de junio de 2020

Instalación de LDAP

Introducción

El servicio LDAP proveerá el mecanismo de autenticación a los servidores de la organización.

Actualmente el mecanismo de autenticación es a través de una base de datos de autenticación externa a la base de datos de Moodle.

También se instalará el servicio DNS con el dominio login.dominio.com para ser usado en la configuración del servicio DNS.

Este documento describe la instalación de prueba sobre una máquina virtual creada usando el software VirtualBox en la estación de trabajo.

El sistema operativo instalado en la máquina virtual es Ubuntu 16.04.2 LTS.

Pre-Requisitos

  • Nombre DNS del servidor de autenticación: login.dominio.com

  • Parámetros de configuración de red:

    • Dirección IP: 10.0.2.10

    • Máscara de subred: 255.255.255.0

    • Puerta de enlace predeterminada: 10.0.2.1

    • Dirección IP del servidor DNS: 10.0.2.10

    • Dominio: login.dominio.com

Configuración del acceso SSH al servidor LDAP

Abra el programa VirtualBox en el anfitrión Windows

En el panel izquierdo haga clic derecho con el ratón sobre la máquina virtual nombrada login. Seleccione "Configuración..." del menú contextual emergente.

Seleccione el item "Red" a la izquierda en el cuadro "login - Configuración"

Haga clic sobre el botón "Reenvío de puertos"

En el cuadro "Reglas de reenvío de puertos" anote los siguientes valores:

  • Nombre: ssh

  • Protocolo: TCP

  • IP anfitrión: 127.0.0.1

  • Puerto anfitrión: 2210

  • IP invitado: 10.0.2.10

  • Puerto invitado: 22

  • Pulse el botón OK para cerrar el cuadro de diálogo "Reglas de reenvío de puertos"

Pulse sobre el OK para cerrar el cuadro de diálogo "login- Configuración".

Pulse sobre el botón Iniciar de la barra de herramientas de VirtualBox cuando una vez haya seleccionado la máquina virtual login.

Una vez haya cargado la máquina virtual, abra la aplicación usada para conectar vía ssh a sistemas remotos (PuTTY)

Diríjase -en el panel izquierdo de la aplicación, a Connection > SSH > Tunnels y anote los siguientes valores:

  • Source port: 2210
  • Destination: 10.0.2.10:22

Pulse sobre el botón Add una vez haya agregado los valores indicados

Diríjase al item Session -el primer item arriba en el panel izquierdo.

Escriba para "Host name (or IP address)" la dirección IP 127.0.0.1.

Anote para "Port" el valor 2210.

Pulse sobre el botón Open para abrir la conexión ssh

Anote el nombre de usuario y clave indicados cuando le sea solicitado.

Inicie sesión como root mediante sudo -s. Escriba la clave indicada.

Instalación del servicio DNS

Instale el servicio DNS:

apt-get -y install bind9

Edite el archivo

/etc/bind/named.conf.local

para agregar la nueva zona DNS.

vim /etc/bind/named.conf.local

Agregue la configuración al final del archivo.

zone "login.dominio.com" {
    type master;
    file "/etc/bind/db.login.dominio.com";
};

zone "2.0.10.in-addr.arpa" {
    type master;
    file "/etc/bind/db.10";
};
            

Agregue las ACLs para los sistemas permitidos a consultar al servidor DNS configurado.

acl servidores {
        10.1.124.126;
        10.1.124.127;
        10.1.124.103;
        10.1.124.104;
        10.1.124.105;
        10.1.124.106;
        10.1.124.107;
        10.1.124.128;
};

acl red-virtual {
        10.0.2.0/24;
        127.0.0.1;
};
            

Agregue la configuración de registro de las consultas DNS.

logging {
    channel query.log {
        file "/var/log/query.log";
        severity debug 3;
    };
        category queries { query.log; };
};
            

Cierre el archivo.

Cree el nuevo archivo

/etc/bind/db.login.dominio.com

y escriba los datos de configuración para la zona DNS login.dominio.com.

vim /etc/bind/db.login.dominio.com

;
; BIND - Archivo de datos para login.dominio.com
;
$TTL    604800
@       IN      SOA     login.dominio.com. root.login.dominio.com. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
        IN      A       192.168.1.10
;
@       IN      NS      ns.login.dominio.com.
@       IN      A       10.0.2.10
@       IN      AAAA    ::1
ns      IN      A       10.0.2.10

                

Cierre el archivo.

Cree el archivo

/etc/bind/db.10

y escriba los datos de configuración de la zona reversa para login.dominio.com.

vim /etc/bind/db.10

;
; BIND - Datos para la zona inversa de la red local 10.0.2.XXX
;
$TTL    604800
@       IN      SOA     ns.login.dominio.com. root.login.dominio.com. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.
10      IN      PTR     ns.login.dominio.com.
        

Cierre el archivo.

Cree el archivo /var/log/query.log y asigne los permisos correspondientes.

touch /var/log/query.log

chown bind /var/log/query.log

Edite el archivo /etc/apparmor.d/usr.sbin.named y añada /var/log/query.log w, al final, antes del símbolo }

vim /etc/apparmor.d/usr.sbin.named

Cierre el archivo.

Abra el archivo /etc/bind/named.conf.options y anote las opciones para la configuración creada en el archivo /etc/bind/named.conf.local y otras opciones.

vim /etc/named.conf.options

        dnssec-enable yes;
        dnssec-validation yes;

        auth-nxdomain no;    # conform to RFC1035

        allow-query {
                servidores;
                red-virtual;
        };

            

Cargue los cambios al perfil de AppArmor para bind.

cat /etc/apparmor.d/usr.sbin.named | sudo apparmor_parser -r

Re-inicie el servicio bind.

systemctl restart bind9

Edite el archivo /etc/network/interfaces para anotar los parámetros de red.

auto enp0s3
iface enp0s3 inet static
        address 10.0.2.10
        netmask 255.255.255.0
        broadcast 10.0.2.255
        gateway 10.0.2.2
        hwaddress 08:00:27:e8:5a:5b
        mtu 1500
        dns-search login.dominio.com
        dns-nameservers 10.0.2.10
            

Note

Los parámetros a colocar son los parámetros de red del servidor archivos.dominio.com. Los parámetros mostrados acá se usaron durante las pruebas.

Edite el archivo /etc/resolv.conf para anotar el DNS configurado.

nameserver 10.0.2.10
searchname login.dominio.com
            

Cierre el archivo.

Verifique el estado de la zona login.dominio.com.

root@login:~# rndc zonestatus login.dominio.com
type: master
files: /etc/bind/db.login.dominio.com
serial: 2
nodes: 2
last loaded: Fri, 05 May 2017 16:11:50 GMT
secure: no
dynamic: no
        

Instalación del servicio LDAP

Anote el nombre de hosts en el archivo /etc/hosts

127.0.1.1       login.dominio.com  login
10.0.2.10       login.dominio.com  login
            

Instale el software para el servicio LDAP:

apt-get -y install slapd ldap-utils

Establezca la contraseña administrativa.

Verifique que la información del árbol de directorios es correcta.

root@login:/etc# ldapsearch -x -LLL \
-H ldap:/// -b dc=login,dc=dominio,dc=com dn
dn: dc=login,dc=dominio,dc=com

dn: cn=admin,dc=login,dc=dominio,dc=com
            
root@login:~# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config
d
dn: cn=config

dn: cn=module{0},cn=config

dn: cn=schema,cn=config

dn: cn={0}core,cn=schema,cn=config

dn: cn={1}cosine,cn=schema,cn=config

dn: cn={2}nis,cn=schema,cn=config

dn: cn={3}inetorgperson,cn=schema,cn=config

dn: olcBackend={0}mdb,cn=config

dn: olcDatabase={-1}frontend,cn=config

dn: olcDatabase={0}config,cn=config

dn: olcDatabase={1}mdb,cn=config
                

Cree el archivo de configuración de LDAP con el contenido mostrado abajo:

vim /etc/ldap.conf

BASE    dc=login,dc=dominio,dc=com
URI     ldap://10.0.2.10 ldap://10.0.2.10:389
                

Reconfigure el servicio slapd

dpkg-reconfigure slapd

Desplácese con la tecla "Tab" para seleccionar "No" y presione "Enter" como respuesta a la pregunta "¿Desea omitir la configuración del servidor OpenLDAP?"

Introduzca login.dominio.com como nombre de dominio DNS. Presione "Enter" en Aceptar.

Introduzca Organización como nombre de la organización. Enter sobre Aceptar.

Escriba la contraseña del administrador. Enter sobre Aceptar.

Escriba la confirmación de la contraseña del administrador. Enter sobre Aceptar.

Seleccione MDB como motor de bases de datos a utilizar. Enter sobre Aceptar.

Seleccione Sí para responder a la pregunta ¿Desea que se borre la base de datos cuando se purgue el paquete slapd? Enter sobre Aceptar.

Seleccione Sí para responder a la pregunta ¿Desea mover la base de datos antigua? Enter sobre Sí.

Seleccione No para responder a la pregunta ¿Desea permitir el protocolo LDAPv2? Enter sobre No.

Verifique la nueva configuración.

root@login:~# ldapsearch -x -LLL \
-H ldap:/// -b dc=login,dc=dominio,dc=com dn
dn: dc=login,dc=dominio,dc=com

dn: cn=admin,dc=login,dc=dominio,dc=com
            
root@login:~# ldapsearch -D "cn=admin,dc=login,dc=dominio,dc=com"
\
-x -w xxclavexx -p 389 -h 10.0.2.10 \
-b "dc=login,dc=dominio,dc=com" \
-s sub "cn=admin"
# extended LDIF
#
# LDAPv3
# base <dc=login,dc=dominio,dc=com> with scope subtree
# filter: cn=admin
# requesting: ALL
#

# admin, login.dominio.com
dn: cn=admin,dc=login,dc=dominio,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9cTZkTi9hSUt0cnlXb0cvSnBuMFRHRkZ6Qzh4Vzh3TXE=

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

            

Agregue el esquema CORBA.

Cree un archivo schema_convert.conf en el directorio /etc/ldap.

vim /etc/ldap/schema_convert.conf

include /etc/ldap/schema/core.schema
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/duaconf.schema
include /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/ppolicy.schema
include /etc/ldap/schema/ldapns.schema
include /etc/ldap/schema/pmi.schema
            

Cierre el archivo.

Cree el directorio ldif_output.

mkdir /etc/ldap/ldif_output.

Indique el índice del esquema.

root@login:~# slapcat -f /etc/ldap/schema_convert.conf \
-F /etc/ldap/ldif_output -n 0 | grep corba,cn=schema
dn: cn={2}corba,cn=schema,cn=config
            

Realice la conversión.

slapcat -f schema_convert.conf -F ldif_output -n0 \ -H ldap:///cn={1}corba,cn=schema,cn=config -l cn=corba.ldif

Agregue el nuevo esquema.

root@login:~# ldapadd -Q -Y EXTERNAL \
-H ldapi:/// -f /etc/ldap/schema/corba.ldif
adding new entry "cn=corba,cn=schema,cn=config"

            
root@login:~# ldapsearch -Q -LLL -Y EXTERNAL \
-H ldapi:/// -b cn=schema,cn=config dn
dn: cn=schema,cn=config

dn: cn={0}core,cn=schema,cn=config

dn: cn={1}cosine,cn=schema,cn=config

dn: cn={2}nis,cn=schema,cn=config

dn: cn={3}inetorgperson,cn=schema,cn=config

dn: cn={4}corba,cn=schema,cn=config
            

Active el registro para OpenLDAP. Para ello cree un archivo de configuración.

vim /etc/ldap/logging.ldif

dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: stats
            

Active la configuración de registro.

root@login:/etc/ldap# ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f
logging.ldif
modifying entry "cn=config"
            

Gestión de usuarios y grupos

Instale las utilerías ldapscripts para administrar el servicio.

apt -y install ldapscripts

Cambiese al directorio /etc/ldapscripts.

cd /etc/ldapscripts

Respalde la configuración por defecto.

mv ldapscripts.conf ldapscripts.conf.default

mv ldapscripts.passwd ldapscripts.passwd.default

Cree un nuevo archivo de configuración.

vim /etc/ldapscripts/ldapscripts.conf

Coloque el siguiente contenido en el archivo:

SERVER=localhost
BINDDN='cn=admin,dc=login,dc=dominio,dc=com'
BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd"
SUFFIX='dc=login,dc=dominio,dc=com'
GSUFFIX='ou=Grupos'
USUFFIX='ou=Personas'
MSUFFIX='ou=Dispositivos'
GIDSTART=10000
UIDSTART=10000
MIDSTART=10000

LDAPSEARCHBIN="/usr/bin/ldapsearch"
LDAPADDBIN="/usr/bin/ldapadd"
LDAPDELETEBIN="/usr/bin/ldapdelete"
LDAPMODIFYBIN="/usr/bin/ldapmodify"
LDAPMODRDNBIN="/usr/bin/ldapmodrdn"
LDAPPASSWDBIN="/usr/bin/ldappasswd"
                

Cree el archivo ldapscript.passwd para acceso rootDN al directorio.

echo -n 'secreto' > /etc/ldapscripts/ldapscripts.passwd

Establezca los permisos del archivo.

chmod 400 /etc/ldapscripts/ldapscripts.passwd

Cree un directorio para guardar los archivos .ldif para el trabajo diario.

mkdir /etc/ldap/archivos

Cree el archivo ldif para agregar la unidad organizacional "Grupos".

vim /etc/ldap/archivos/grupos.ldif

El contenido del archivo será:

# Crear el primer nivel de Grupos

dn: ou=Grupos,dc=login,dc=dominio,dc=com
objectclass: organizationalunit
ou: Grupos
description: Grupos
                

Agregue la unidad organizacional "Grupos" al Árbol de Información del Directorio.

 root@login:~# ldapadd -H ldap://10.0.2.10 -x \
 -D "cn=admin,dc=login,dc=dominio,dc=com" \
 -f /etc/ldap/archivos/grupos.ldif -w xxxclavexxx
adding new entry "ou=Grupos,dc=login,dc=dominio,dc=com"
                

Cree un archivo llamado moodle_roles.ldif para "mapear" los roles de Moodle.

vim /etc/ldap/archivos/moodles_roles.ldif

El contenido del archivo es:

# Crea manager bajo Grupos

dn: cn=manager,ou=Grupos,dc=login,dc=dominio,dc=com
objectclass: top
cn: manager
objectClass: posixGroup
gidNumber: 10001
description: Administradores de Moodle


# Crea coursecreators bajo Grupos

dn: cn=coursecreator,ou=Grupos,dc=login,dc=dominio,dc=com
objectclass: top
cn: coursecreator
objectClass: posixGroup
gidNumber: 10002
description: Creadores de cursos online

# Crea editingteacher bajo Grupos

dn: cn=editingteacher,ou=Grupos,dc=login,dc=dominio,dc=com
objectclass: top
cn: editingteacher
objectClass: posixGroup
gidNumber: 10003
description: Profesores de cursos online

# Crea teacher bajo Grupos

dn: cn=teacher,ou=Grupos,dc=login,dc=dominio,dc=com
objectclass: top
cn: teacher
objectClass: posixGroup
gidNumber: 10004
description: Profesores de cursos online sin derecho a modificaciones

# Crea student bajo Grupos

dn: cn=student,ou=Grupos,dc=login,dc=dominio,dc=com
objectclass: top
cn: student
objectClass: posixGroup
gidNumber: 10005
description: Estudiantes de los cursos online

# Crea guest bajo Grupos

dn: cn=guest,ou=Grupos,dc=login,dc=dominio,dc=com
objectclass: top
cn: guest
objectClass: posixGroup
gidNumber: 10006
description: Invitados

# Crea user bajo Grupos

dn: cn=user,ou=Grupos,dc=login,dc=dominio,dc=com
objectclass: top
cn: user
objectClass: posixGroup
gidNumber: 10007
description: Usuarios identificados

# Crea user bajo Grupos

dn: cn=frontpage,ou=Grupos,dc=login,dc=dominio,dc=com
objectclass: top
cn: frontpage
objectClass: posixGroup
gidNumber: 10008
description: Usuarios identificados en el curso de la pagina principal
 

Guarde el archivo.

Cree los grupos.

root@login:~# ldapadd -H ldap://10.0.2.10 -x \
-D "cn=admin,dc=login,dc=dominio,dc=com" \
-f /etc/ldap/archivos/moodle_roles.ldif -w xxxclavexxx
adding new entry "cn=manager,ou=Grupos,dc=login,dc=dominio,dc=com"

adding new entry "cn=coursecreator,ou=Grupos,dc=login,dc=dominio,dc=com"

adding new entry "cn=editingteacher,ou=Grupos,dc=login,dc=dominio,dc=com"

adding new entry "cn=teacher,ou=Grupos,dc=login,dc=dominio,dc=com"

adding new entry "cn=student,ou=Grupos,dc=login,dc=dominio,dc=com"

adding new entry "cn=guest,ou=Grupos,dc=login,dc=dominio,dc=com"

adding new entry "cn=user,ou=Grupos,dc=login,dc=dominio,dc=com"

adding new entry "cn=frontpage,ou=Grupos,dc=login,dc=dominio,dc=com"
                

Agregue un usuario al grupo manager.

/usr/sbin/ldapadduser isaac

Agregue el usuario al grupo manager.

ldapaddusertogroup isaac manager

Establezca la clave para el nuevo usuario.

ldappasswd -H ldap://10.0.2.10 -x -D "cn=admin,dc=login,dc=dominio,dc=com" -w xxxclavexxx \ -S "uid=isaac,ou=Personas,dc=login,dc=dominio,dc=com"

Cierre la sesión SSH.

exit

Configuración del acceso SSH al servidor Moodle

Abra el programa VirtualBox en el anfitrión Windows

En el panel izquierdo haga clic derecho con el ratón sobre la máquina virtual nombrada moodle-archivos. Seleccione "Configuración..." del menú contextual emergente.

Seleccione el item "Red" a la izquierda en el cuadro "moodle-archivos - Configuración"

Haga clic sobre el botón "Reenvío de puertos"

En el cuadro "Reglas de reenvío de puertos" anote los siguientes valores:

  • Nombre: ssh

  • Protocolo: TCP

  • IP anfitrión: 127.0.0.1

  • Puerto anfitrión: 2211

  • IP invitado: 10.0.2.11

  • Puerto invitado: 22

  • Pulse el botón OK para cerrar el cuadro de diálogo "Reglas de reenvío de puertos"

Pulse sobre el OK para cerrar el cuadro de diálogo "moodle-archivos - Configuración".

Pulse sobre el botón Iniciar de la barra de herramientas de VirtualBox cuando una vez haya seleccionado la máquina virtual moodle-archivos.

Una vez haya cargado la máquina virtual, abra la aplicación usada para conectar vía ssh a sistemas remotos (PuTTY)

Diríjase -en el panel izquierdo de la aplicación, a Connection > SSH > Tunnels y anote los siguientes valores:

  • Source port: 2211
  • Destination: 10.0.2.11:22

Pulse sobre el botón Add una vez haya agregado los valores indicados

Diríjase al item Session -el primer item arriba en el panel izquierdo.

Escriba para "Host name (or IP address)" la dirección IP 127.0.0.1.

Anote para "Port" el valor 2211.

Pulse sobre el botón Open para abrir la conexión ssh

Anote el nombre de usuario y clave indicados cuando le sea solicitado.

Inicie sesión como root mediante sudo -s. Escriba la clave indicada.

Configuración de la Autenticación LDAP

Instale el software para realizar la autenticación.

apt -y install libnss-ldap

Escribe el URI para el servidor LDAP.

ldap://10.0.2.10:389 Enter en Aceptar.

Escribe el nombre distintivo solicitado:

dc=login,dc=dominio,dc=com Enter en Aceptar.

Seleccione "3" como número de versión LDAP a usar. Enter en Aceptar.

Seleccione "Sí" para "Make local root Database admin". Enter en Aceptar.

Seleccione "No" para "Does the LDAP database require login?". Enter en Aceptar.

Escriba cn=admin,dc=login,dc=dominio,dc=com para "LDAP account for root". Enter en Aceptar.

Escriba la clave configurada para la administración del servidor LDAP. Enter en Aceptar.

Configure el perfil LDAP para NSS.

auth-client-config -t nss -p lac_ldap

Configure el sistema para utilizar autenticación LDAP.

pam-auth-update

Enter en Aceptar.

Cierre la sesión SSH.

exit

Configuración de la Autenticación LDAP en el servidor Moodle

Abra Firefox e inicie sesión administrativa en el sitio http://10.0.2.11/

En el bloque "ADMINISTRACIÓN" diríjase a: Extensiones > Identificación > Gestionar identificación

Pulse sobre el icono "Habilitar" en la línea "Usar un servidor LDAP" para activar la autenticación LDAP.

Pulse sobre "Configuración" en la línea "Usar un servidor LDAP".

En URL de host escriba ldap://10.0.2.10:389.

En el campo "nombre distinguido" escriba: cn=admin,dc=login,dc=dominio,dc=com

En el campo Contraseña escriba la contraseña acordada.

En el campo Tipo de usuario elija posixAccount (rfc2307)

En el campo Contextos escriba ou=Personas,dc=login,dc=dominio,dc=com

En la sección Ajustes de búsqueda de usuario, item Atributo de usuario escriba uid.

Pulse sobre el botón Guardar cambios para guardar los cambios.

Cierre la sesión administrativa en Moodle.

Inicie sesión usando el usuario isaac y la clave establecida.

Llene el formulario con los datos del perfil de usuario.

  • Nombre: Jorge Isaac
  • Apellidos: Dávila López
  • Dirección de correo: jorgedavilalopez@gmail.com
  • Mostrar correo: Ocultar a todos mi dirección de correo.
  • Ciudad: Managua
  • Seleccione su país: Nicaragua
  • Zona horaria: Zona horaria del servidor (América/Managua)

Pulse sobre Actualizar información personal para actualizar la información personal.

Tareas pendientes

  1. Obtener lista de usuarios de la base de datos externa de autenticación.

  2. Generar archivo .ldif a partir de los datos obtenidos.

  3. Crear los usuarios LDAP en el contexto apropiado.

lunes, 8 de junio de 2020

Instalación de Pacemaker y Corosync en Ubuntu 16.04 LTS

Prerequisitios

Condición: 3 máquinas virtuales
Distribución SO: Ubuntu 16.04.5 LTS
Software: Pacemaker & Corosync
Servidor: 3 con 1GB de RAM, 2 discos de 10GB cada uno y un procesador
pre-instaladas y anotación de los nombres DNS para w1, w2 y w3.

Preparación

Edición del archivo /etc/hosts para todos los nodos (10.1.120.98, 10.1.120.99 y 10.1.120.100). El contenido del archivo será:
127.0.0.1 localhost
10.1.120.98 w1
10.1.120.99 w2
10.1.120.100 w3

Configuración de la dirección IP estática para cada nodo

En el nodo w1
iface enp0s3 inet static
    address 10.1.120.98
    netmask 255.255.255.0
    broadcast 10.1.120.255

En el nodo w2
iface enp0s3 inet static
    address 10.1.120.99
    netmask 255.255.255.0
    broadcast 10.1.120.255

En el nodo w3
iface enp0s3 inet static
    address 10.1.120.100
    netmask 255.255.255.0
    broadcast 10.1.120.255

Refrescar los repositorios

apt-get update

Configurar el idioma

apt-get -y install language-pack-es
dpkg-reconfigure tzdata

Editar el archivo referido y agregar la línea mostrada abajo:

vim /etc/environment

LC_ALL="es_NI.UTF-8"

Guardar el archivo

reboot

Actualizar el sistema

apt-get -y upgrade
apt-get -y dist-upgrade
reboot

Instalación de software (en todos los nodos)

apt-get -y install ntp
apt-get -y install policycoreutils python-sepolgen
apt-get -y install pacemaker
apt-get -y install pcs
apt-get -y install psmisc
apt-get -y install dlm
apt-get -y install fence-agents
apt-get -y install resource-agents
apt-get -y install ocfs2-tools
apt-get -y install drbd*
apt-get -y install haveged

Configuración de cluster

Genere y configure la clave de autenticación para Corosync

corosync-keygen
scp /etc/corosync/authkey isaac@10.1.120.99:/home/isaac
ssh isaac@10.1.120.99
cp ~/authkey /etc/corosync
chown root: /etc/corosync/authkey
exit

scp /etc/corosync/authkey isaac@10.1.120.100:/home/isaac
isaac@192.168.1.9
ssh isaac@10.1.120.100
cp ~/authkey /etc/corosync
chown root: /etc/corosync/authkey
exit

Configure Corosync en cada nodo

mv /etc/corosync/corosync.conf /etc/corosync/corosync.conf.default
vim /etc/corosync/corosync.conf

totem {
    version: 2
    secauth: off
    cluster_name: wwwCluster
    transport: udpu
    interface {
        ringnumber: 0
        bindnetaddr: 10.1.120.101
        broadcast: yes
        mcastport: 5405
    }
}
nodelist {
    node {
        ring0_addr: 10.1.120.98
        nodeid: 1
    }
    node {
        ring0_addr: 10.1.120.99
        nodeid: 2
    }
    node {
        ring0_addr: 10.1.120.100
        nodeid: 3
    }
}
quorum {
    provider: corosync_votequorum
}
logging {
    to_logfile: yes
    logfile: /var/log/corosync/corosync.log
    to_syslog: yes
}

Guarde el archivo

Cree el archivo referido en la configuración

touch /var/log/corosync/corosync.log
chown root:adm /var/log/corosync/corosync.log

Active el inicio de los servicios

mkdir -p /etc/corosync/service.d

Cree el archivo pcmk con el siguiente contenido

vim /etc/corosync/service.d/pcmk

service {
    name: pacemaker
    ver: 2
}

Edite el archivo corosync (vim /etc/default/corosync ) y agregue la línea.

START="yes"

Guarde el archivo

update-rc.d pacemaker defaults 20 01

Configuración del cluster

En todos los nodos

Establezca el parámetro “SELINUX=disabled” en todos los nodos
(vim /etc/selinux/config )
reboot
systemctl start pcsd
passwd hacluster
(Establezca la misma clave en todos los nodos)

En el nodo primario

pcs cluster --name wwwCluster --wait_for_all=1 \
auth 10.1.120.98 10.1.120.99 10.1.120.100 \
-u hacluster -p <clave>

(Use como clave la clave establecida en el paso anterior)

pcs cluster setup --force --name wwwCluster \
10.1.120.98 10.1.120.99 10.1.120.100
pcs cluster start --all
pcs cluster enable --all
pcs property set stonith-enabled=false
pcs property set cluster-recheck-interval=2min
pcs property set start-failure-is-fatal=true
pcs resource defaults resource-stickiness=100
pcs resource op defaults timeout=240s

Verifique que los nodos son miembros del cluster

corosync-cmapctl | grep members

Añadir la dirección IP del cluster

pcs resource create wwwClusterIP ocf:heartbeat:IPaddr2 \
ip=10.1.120.101 \
cidr_netmask=24 \
op monitor interval=30s

Verificar el estado del cluster

pcs status

Realizar prueba:

ping 10.1.120.101

pcs cluster stop w1
pcs cluster stop w2
pcs cluster start w1
pcs cluster stop w3
pcs cluster start w2
pcs cluster start w3
pcs status

(detener ping)


Agregar Apache y PHP (en todos los nodos)

apt-get -y install apache2 wget
apt-get -y install graphviz aspell php7.0-pspell php7.0-curl \
php7.0-gd php7.0-intl php7.0-xmlrpc php7.0-ldap \
php7.0-zip php7.0-mbstring php7.0-soap aspell-es \
ghostscript php7.0-xml unicode unoconv 

apt-get -y install libapache2-mod-php php-mcrypt

Cree el archivo index.php en /var/www/html
<!DOCTYPE html>
<html>
<body>
<p>Hola mundo!</p>
<?php
echo gethostname();
?>
</body>
</html>

pcs resource create wwwSitio ocf:heartbeat:apache \
configfile=/etc/apache2/apache2.conf \
statusurl="http://localhost/server-status" \
op monitor interval=1min
pcs constraint colocation add wwwSitio with wwwClusterIP INFINITY
pcs constraint
pcs constraint order wwwClusterIP then wwwSitio
pcs constraint
pcs constraint location wwwSitio prefers 10.1.120.98=100
pcs cluster cib wwwSitio
pcs cluster cib-push wwwSitio

Visitar http://10.1.120.101/index.php

Añadir el disco secundario al nodo

En todos los nodos

modprobe drbd
mv /etc/drbd.d/global_common.conf \
/etc/drbd.d/global_common.conf.default

Coloque el archivo /etc/drbd.d/global_common.conf en todos los nodos, el

contenido del archivo es:

global {
    usage-count no;
    }
common {
syncer { rate 90M; }
startup {
    #become-primary-on both;
    wfc-timeout 15;
    degr-wfc-timeout 60;
    #outdated-wfc-timeout wait-after-sb
}
options {
    # cpu-mask on-no-data-accessible
}
disk {
    # size on-io-error
    fencing resource-and-stonith;
    #
    # disk-barrier disk-flushes
    # disk-drain md-flushes resync-rate resync-after al-extents
    # c-plan-ahead c-delay-target c-fill-target c-max-rate
    # c-min-rate disk-timeout
}
net {
    # protocol timeout max-epoch-size max-buffers unplug-watermark
    # connect-int ping-int sndbuf-size rcvbuf-size ko-count
    # cram-hmac-alg shared-secret after-sb-0pri
    # after-sb-1pri after-sb-2pri always-asbp rr-conflict
    # ping-timeout data-integrity-alg tcp-cork on-congestion
    # congestion-fill congestion-extents csums-alg verify-alg
    # use-rle
    protocol C;
    cram-hmac-alg sha1;
    shared-secret "Sitio123..";
    allow-two-primaries;
    after-sb-0pri discard-zero-changes;
    after-sb-1pri discard-secondary;
    after-sb-2pri disconnect;
    }
}
systemctl start drbd

En todos los nodos

dpkg-reconfigure ocfs2-tools
update-rc.d -f o2cb defaults
update-rc.d -f ocfs2 defaults

Verificar que está correcto

/etc/init.d/o2cb offline
/etc/init.d/o2cb load
root@w1:~# /etc/init.d/o2cb online

Setting cluster stack "o2cb": OK

Starting O2CB cluster wwwCluster: OK

reboot

o2cb_ctl -C -n wwwCluster -t cluster -a name=wwwCluster

o2cb_ctl -C -n w1 -t node -a number=0 -a ip_address=10.1.120.98 \
-a ip_port=7777 -a cluster=wwwCluster

o2cb_ctl -C -n w2 -t node -a number=1 -a ip_address=10.1.120.99 \
-a ip_port=7777 -a cluster=wwwCluster

o2cb_ctl -C -n w3 -t node -a number=2 -a ip_address=10.1.120.100 \
-a ip_port=7777 -a cluster=wwwCluster

Copie el archivo /etc/ocfs2/cluster.conf a los nodos w2 y w3

Configurar DRBD (Distributed Replicated Block Device)

Cree el archivo del recurso (en todos los nodos)

vim /etc/drbd.d/wwwClusterDisk0.res

resource wwwClusterDisk0 {
    protocol C;
   meta-disk internal;
device /dev/drbd0;
syncer {verify-alg sha1;}
net {
    #allow-two-primaries;
    cram-hmac-alg sha1;
    shared-secret "Sitio123..";
}
on w1 {
    disk /dev/sdb1;
        address 10.1.120.98:7789;
    }
on w2 {
        disk /dev/sdb1;
        address 10.1.120.99:7789;
}
on w3 {
    disk /dev/sdb1;     address 10.1.120.100:7789;
}
}

Guarde el archivo.

En cada nodo

modprobe drbd
systemctl restart drbd
/etc/init.d/o2cb offline
/etc/init.d/o2cb load

root@w1:~# /etc/init.d/o2cb online

Setting cluster stack "o2cb": OK

Starting O2CB cluster wwwCluster: OK

En el nodo primario

drbdadm create-md wwwClusterDisk0

En el nodo w1

drbdadm --force primary wwwClusterDisk0

#drbdadm up wwwClusterDisk0

Si desea ver el progreso de la sincronización, ejecute:

watch -n1 cat /proc/drbd

Formatee el dispositivo

mkfs.ocfs2 -L "wwwClusterDisk0" -N 3 \
-T datafiles --cluster-name=wwwCluster \
--fs-features=unwritten,grpquota,usrquota,\
max-compat /dev/drbd0

Monte el sistema de archivos

mount -t ocfs2 /dev/drbd0 /var/www/html

Cree el archivo index.php en /var/www/html
<!DOCTYPE html>
<html>
<body>
<p>Hola mundo!</p>
<?php
echo gethostname();
?>
</body>
</html>
Visite http://10.1.120.101

Añadir el recurso (sistema de ficheros) al cluster wwwCluster

pcs cluster cib drbd_cfg
pcs -f drbd_cfg resource create WebData ocf:linbit:drbd \
drbd_resource=wwwClusterDisk0 op monitor interval=60s
pcs -f drbd_cfg resource master WebDataClone WebData \
master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 \
notify=true

pcs -f drbd_cfg resource show
pcs cluster cib-push drbd_cfg --config
pcs status
pcs cluster cib fs_cfg
pcs -f fs_cfg resource create WebFS Filesystem \
device="/dev/drbd0" directory="/var/www/html" fstype="ocfs2"

pcs -f fs_cfg constraint colocation add \
WebFS with WebDataClone INFINITY with-rsc-role=Master

pcs -f fs_cfg constraint order \
promote WebDataClone then start WebFS

pcs -f fs_cfg constraint colocation add wwwSitio with WebFS INFINITY
pcs -f fs_cfg constraint order WebFS then wwwSitio
pcs -f fs_cfg constraint
pcs -f fs_cfg resource show
pcs cluster cib-push fs_cfg --config
pcs status

pcs cluster cib dlm_cfg

pcs -f dlm_cfg resource create dlm ocf:pacemaker:controld \
op monitor interval=60s

pcs cluster cib-push dlm_cfg --config

pcs status

Documentación de pruebas

Prueba de falla (ping)

Verificar el estado del cluster

pcs status

Realizar prueba:

ping 10.1.120.101
pcs cluster stop w1
pcs cluster stop w2
pcs cluster start w1
pcs cluster stop w3
pcs cluster start w2
pcs cluster start w3
pcs status

(detener ping)

Prueba de falla (http://192.168.10/)

Verificar el estado del cluster

pcs status

Realizar prueba:

Visitar http://10.1.120.101/

pcs cluster stop w1

Visitar http://10.1.120.101/

pcs cluster stop w2

Visitar http://10.1.120.101/

pcs cluster start w1

Visitar http://10.1.120.101/

pcs cluster stop w3

Visitar http://10.1.120.101/

pcs cluster start w2

Visitar http://10.1.120.101/

pcs cluster start w3

Visitar http://10.1.120.101/

pcs status


lunes, 17 de febrero de 2020

Educación vial

Educación Vial
21 DE ABRIL DE 2017
Según las estadísticas [1] de la Policía Nacional de Nicaragua en el año 2016 hubo 41,588 (cuarenta y un mil quinientos ochenta y ocho) accidentes de tránsito en el territorio nacional. Producto de los accidentes de tránsito se contabilizaron 791 muertes y 4,781 lesionados.
Esto es 13 muertos y 76 lesionados en accidentes de tránsito por cada cien mil habitantes. Asimismo la Policía Nacional reporta 5 accidentes de tránsito por cada 100 vehículos.
En la vida, en las relaciones humanas, en las relaciones laborales, en la familia, es muy importante la cortesía amabilidad en el trato con las personas que nos rodean. La cortesía y amabilidad favorecen un ambiente agradable y libre de tensiones.
En el año 2016 se produjeron 5487 accidentes ocasionados por giros indebidos, 11964 por no guardar distancia, 5408 por faltar precaución al retroceder. 38070 vehículos colisionaron entre sí.
Un vehículo automotor a 70 kilómetros por hora se desplaza 19.44 metros en un segundo. En cinco segundos a la misma velocidad el desplazamiento es de 97.22 metros. ¿Cuánto tiempo le toma buscar en el bolso el teléfono celular para contestar una llamada o decidir contestar? ¿Usa manos libres? ¿Debe dar una respuesta que requiere distraerse de la pista para continuar la conversación? ¿Gusta observar a los peatones y las peatonas mientras caminan en la vía?
En la carretera, la cortesía implica ceder el paso, no girar indebidamente, el conductor tras suyo no espera que usted gire donde no está supuesto ni permitido girar. Un ser humano en promedio alcanza la velocidad de 5 kilómetros por hora pero todos en su inmensa mayoría llegan a sus oficinas a tiempo en la mañana. ¿Por qué lleva tanta prisa? ¿Por qué, como dicen muchos, no se levanta más temprano? ¿Conoce una vía alterna menos traficada aunque implique un trayecto más largo?
1251 accidentes de tránsito implicaron la colisión contra un objeto fijo. 38070 accidentes de tránsito fueron colisiones entre vehículos. Los objetos fijos no se desplazan para colisionar a los vehículos y los vehículos no son objetos pequeños a la vista. Sea consciente de la velocidad a la que maneja.
¿Un largo trayecto de viaje? ¿Ha descansado suficiente antes de emprender el largo viaje? ¿Lleva consigo elementos que podrían hacer su viaje más cómodo? ¿Medicinas? ¿Agua? ¿Su bebida favorita? ¿Hace las llamadas a los contactos con el vehículo estacionado? ¿Estaciona el vehículo antes de contestar? ¿Guarda la distancia? ¿Espera que otro conductor desvíe la marcha porque tomó el carril equivocado o giró indebidamente? ¿Lleva mapas impresos? ¿El sistema de posicionamiento global es completamente funcional? ¿Revisó el estado mecánico del vehículo?
Los pilotos de vuelos aéreos siguen estrictamente una lista de chequeo antes de iniciar el vuelo. Puede ser una buena práctica crear una lista de chequeo y seguir el paso a paso antes de subir al vehículo. ¿Combustible? ¿Aceite? ¿Frenos? ¿Presión de llantas? ¿Documentos? ¿Seguros en las puertas? ¿Ventanas de los vehículos? ¿Parabrisas?
Usted es el único responsable de su vida. Cuide su vida y la vida de su familia. Todos esperan su presencia para la cena.
No recuerdo haber visto en los periódicos accidentes entre peatones, no viajan a altas velocidades los peatones. He visto algunos peatones detener la marcha para ubicarse en un sitio sombreado para conversar.
Cuando niño mis padres y hermanos me indicaron no acelerar la bicicleta cuando el trayecto era en “bajada”. También aprendí a tener cuidado en los cruces y al doblar las esquinas.
Muchos accidentes de tránsito ocurren en curvas, otros tantos en carreteras de trayectos largos en línea recta.
Las leyes tienen un enorme sentido de realidad y las señales de tránsito están para facilitar su trayecto y aportar a la seguridad suya y la de su familia. ¿Acelera en curvas? ¿Compite en la carretera?.
La vida cotidiana, el día a día, el trayecto de ida al trabajo, el trayecto de regreso. Tiene peligros la carretera. Curvas, rectas. Subidas, bajadas. ¿Otro conductor va cansado? ¿Otro transnochado? ¿Algún conductor con poca pericia? ¿El auto está en excelente estado mecánico?.
Tenga un buen día, sea cortés, maneje a la defensiva y respete las leyes y señales de tránsito.
Jorge Dávila

miércoles, 30 de agosto de 2017

Internet, las redes sociales y el comportamiento social

La maravilla de Internet es sorprendente. La Web1.0 -si podemos nombrar de esa forma para fines históricos a la red mundial global- proveía acceso en modo texto vía modem a través de la red telefónica con un ancho de banda de 56Kbps. Impresionante ancho de banda para los 10Mbps o más anunciados para conexiones domiciliares. Para los nostálgicos y los catastróficos, queda para la historia casi el packet radio y la radio.

La explosión de ancho de banda se debió fundamentalmente a la mejora en infraestructura que llegó a ser fibra óptica en lugar de antiguas líneas de cobre. También, servidores raíz de Internet [1] dispersos por el mundo y la avalancha de solicitudes de resolución de nombres de dominio de Internet que se manejan de mejor manera ahora.

Los avances en las telecomunicaciones han llevado a la humanidad de los sistemas de correo "convencionales" a comunicaciones satelitales, pasando por el correo ordinario -carta, lápiz, papel- al telégrafo, teléfono, fax, Internet, correo electrónico.

En algún momento de la historia de Internet aparece la fibra óptica y la banda ancha y nace la Web2.0 y después las redes sociales. Todos conectados, en cualquier lugar, en cualquier momento.

El ser humano que hunde sus raíces en la red, extiende su presencia digital, crea conexiones, agrega contactos, comparte, colabora, contribuye a una identidad digital que sobrepasa los nacionalismos y ¿podemos llamarnos "nosotros" la humanidad?

Con la Web2.0 llegaron los contenidos digitales interactivos, la difusión de video personal, la creación de presentaciones, la miríada de galerías de fotos personales, queremos decir al mundo que existimos, que somos únicos. El último evento personal grabado en video de alta definición y publicado en la red social, más las galerías de los momentos memorables, ni la Kodak habría creado mejor propaganda. Ni tú, ni yo, sino nosotros. Y nos casamos con la tecnología, el móvil, la conexión móvil, la membresía de la red, los contactos, mi finde en la disco, ¿nos despersonalizamos o nos reafirmamos? Allá los filósofos, antrópologos, ellos son el qué dirán para la red.

Las herramientas y recursos que provee la red nos permiten ahora crear el mejor contenido digital que podría imaginarse. Los procedimientos más elaborados para crear una fórmula química o crear un experimento físico pueden ser mostrados en video, en una secuencia de fotos, en una presentación, el discurso audiovisual donde solo falta tu presencia, tu deseo de aprender, de ejercitar, de alcanzar las metas.

YouTube, Drive, Gmail posibilitan solo ellos la difusión de contenido digital a todos los participantes de una clase, curso, escuela, universidad. Repeticiones, elaboraciones, retroalimentación. Todo a un clic, a una pantalla.

Es posible crear con el móvil el video, realizar capturas de pantalla para ilustrar el procedimiento. Escribir un documento y luego publicar para los participantes.

Facebook y luego existo. Todas las cuentas conectadas. Un propósito: Enseñar-Aprender.

Debe promoverse el uso sano de la red mundial global y de las redes sociales. Encontrar un propósito y no perderse en la multitud de alternativas. Tomar un tiempo para la red, otro para la red social -la digital y la nuestra. Promover y no olvidar los valores morales, éticos que nos han fundado y dado sentido como seres humanos.

Luego, la ficción podría haberse adelantado como antes, a la realidad y la educación sea favorecida por la tecnología:




Referencias


[1] http://www.root-servers.org/

lunes, 21 de agosto de 2017

El software libre y la educación

¿Qué es el software libre?



El software libre es aquel que respeta la libertad de los usuarios y la comunidad. También puede definirse en términos de las libertades del software libre:
  • La libertad de ejecutar el programa como se desea, con cualquier propósito (libertad 0).
  • La libertad de estudiar cómo funciona el programa, y cambiarlo para que haga lo que usted quiera (libertad 1). El acceso al código fuente es una condición necesaria para ello.
  • La libertad de redistribuir copias para ayudar a su prójimo (libertad 2).
  • La libertad de distribuir copias de sus versiones modificadas a terceros  (libertad 3). Esto le permite ofrecer a toda la comunidad la oportunidad de beneficiarse de las modificaciones. El acceso al código fuente es una condición necesaria para ello.
El software libre en la educación

El software libre en la educación libre reduce el uso ilegal de software porque tanto estudiantes y profesores instalar, usar y distribuir programas de software libre puesto que la licencia de software libre no impide la distribución del software.

Acá se muestran dos gráficas del eclipse luna del 21 de Agosto de 2017 obtenidas a través del software Marble Virtual Globe



A través del uso de software libre el profesor o estudiante tiene acceso a software que permite realizar cálculos y gráficos matemáticos como GeoGebra o visualizar todo nuestro planeta a través del uso de Marble Virtual Globe. 

KStars permite visualizar el espacio, estrellas, constelaciones. Dicho de otra forma, la asimilación de los contenidos cada asignatura dentro del plan de estudio por parte de cada estudiante podría verse beneficiada a través del uso del software libre. Step es otro software libre que puede usarse para realizar simulaciones físicas.

Sistemas operativos de software libre

Sistemas operativos de software libre son:
  • Debian
  • Ubuntu (Kubuntu, EduBuntu)
  • Fedora
  • openSUSE
La adquisión del sistema operativo para instalación es tan simple como ir al sitio del sistema operativo -Kubuntu en este ejemplo- como http://www.kubuntu.org/, ir al enlace de descarga, Download y escoger la versión 16.04.3 LTS o la versión 17.04 si la prefiere y finalmente haga clic sobre el botón Download a la derecha para iniciar la descarga de la imagen ISO del sistema operativo elegido.

Una vez descargada la imagen de Kubuntu 16.04.3 LTS debe "quemar" la imagen en un DVD para su instalación en la computadora. Cuando la instalación haya finalizado puede visitar el centro de software yendo al menú K -> Aplicaciones -> Sistema -> Centro de software y escoger el software de su preferencia.


En el centro de software el software se encuentra organizada en categorías (listadas a la derecha) y en el software más popular (listado a la izquierda).

Podría elegirse Kalzium para química, Step para física, Marble y KStars para geografía, GeoGebra para matemáticas.

Siempre puede compartir los objetos de aprendizaje virtual creados usando software libre a través de las herramientas que la Web2.0 provee, como Google Drive, blogs, wikis, videos en YouTube.com o alguna otra herramienta de su preferencia. Por supuesto, también los materiales o recursos educativos pueden ser visualizados a través de un proyector y computadora.

Feliz planificación.


Referencias

Fundación de Software Libre. 2017. ¿Qué es el software libre?. Tomado de https://www.gnu.org/philosophy/free-sw.es.html

jueves, 17 de agosto de 2017

La educación y las herramientas de la Web 2.0

Introducción

La educación tradicional en el aula ha dado paso a formas de educación no tradicional. Del ábaco a la calculadora científica, del rota-folios a las presentaciones de diapositivas; los cambios que las tecnologías de la información y la comunicación han provocado son inmensos.

Herramientas de la web 2.0

Blog: "Un blog​ o bitácora​ es un sitio web que incluye, a modo de diario personal de su autor o autores, contenidos de su interés, actualizados con frecuencia y a menudo comentados por los lectores". Sitios populares para blogs son: Blogger.com y WordPress.com. El maestro puede usar esta herramienta para poner a disposición contenidos de aprendizaje virtual que los estudiantes podrían consultar en cualquier momento desde cualquier lugar.

Wiki: Es un sitio web colaborativo en el cual los usuarios del mismo pueden editar contenido. Pueden ser usadas para la puesta en común de conocimientos.

Videos: Contenidos de aprendizaje virtual pueden ser creados en video para mostrar procedimientos técnicos o contenidos de aprendizaje que se desea que puedan ser consultados durante el curso. Los videos tienen muchos formatos. Al momento de creación de vídeos como objetos de aprendizaje virtual deben considerarse el dispositivo final en el cual se reproducirá el vídeo para minimizar los inconvenientes del uso de la tecnología al intentar reproducir vídeos de grandes dimensiones en dispositivos con una reducida pantalla o circunstancias tecnológicas similares. Sitios populares para publicación de vídeos son YouTube.com y Vimeo.com. El canal "YouTube Edu" es una muestra de las posibilidades que ofrece la creación de vídeos con contenidos de aprendizaje.

Podcast: El podcast está referido a la difusión de grabaciones de audio a través de plataformas en línea para su escucha. Puede grabarse un texto literario o un texto técnico y escuchar una vez, otra vez y otra vez el contenido para mejorar la comprensión total de la materias escolares. Un sitio popular para podcast es SoundCloud.com.

Sindicación (RSS): Se refiere a la publicación de contenidos actualizados de parte de creadores de contenidos y la obtención de los contenidos de parte de usuarios suscriptores del servicio. Los clientes de correo electrónico poseen opciones para configuración de fuentes RSS y así tener disponible los contenidos de interés únicamente. Por ejemplo, puede configurar la fuente RSS de El Nuevo Diario ( http://www.elnuevodiario.com.ni/rss/ ) para obtener una lista breve de noticias con un pequeño resumen de las mismas.

Marcadores sociales: Los marcadores social sirven para guardar listas de recursos (por categorías si desea). Pueden servir para listar contenidos por áreas de interés, por tópicos académicos y brindar a estudiantes y maestros un compendio de contenidos digitales. Los marcadores en redes sociales se han vuelto populares para agrupar gente y recursos por área de interés o por desarrollo de actividades.

Google Drive: Google Documentos es un sitio conveniente para guardar archivos si no desea recorrer todos sus dispositivos en la búsqueda de algún documento. Los documentos de uso frecuente podrían ser colocados en https://docs.google.com/ y editados en la nube directamente para ser accedidos desde cualquier ubicación.

Conclusión

El uso de las herramientas que provee la Web2.0 implican ancho de banda, uno o varios dispositivos para acceder a la red y una selección paciente dentro de la enorme cantidad de opciones que la red ofrece para escoger servicios y contenidos.

Referencias

Wikipedia, 2017. Blog. https://es.wikipedia.org/wiki/Blog

Wikipedia, 2017. Wiki. https://es.wikipedia.org/wiki/Wiki