Comunicación entre servidores usando clave pública y privada

En esta entrada vamos a ver como establecer una conexión entre dos servidores linux de nuestra infraestructura usando clave publica y privada. Para tener mas información sobre la criptografía de clave simétrica https://es.wikipedia.org/wiki/Criptograf%C3%ADa_asim%C3%A9trica

Problema:

Nuestro servidor marge quiere conectarse y poder enviar ficheros sin tener que insertar una clave en el terminal a nuestro otro servidor homer

Solución:

    1.     Nos conectamos al servidor marge y generamos una clave pública y privada que será las que usará el protocolo ssh o scp para el interncambio de ficheros o para conectarnos al servidor
      [test@marge .ssh]# ssh-keygen 
      Generating public/private rsa key pair.
      Enter file in which to save the key (/root/.ssh/id_rsa): 
      Enter passphrase (empty for no passphrase): 
      Enter same passphrase again: 
      Your identification has been saved in /root/.ssh/id_rsa.
      Your public key has been saved in /root/.ssh/id_rsa.pub.
      The key fingerprint is:
      SHA256:pK10FEkERyrZBSKbOlFkISdw8GNnoqeiZUohMuW4wxk root@marie
      The key's randomart image is:
      +---[RSA 2048]----+
      |*oO.. o*B. |
      | O + + +.. |
      |. O = o o |
      | O = . = |
      |OEo o S |
      |+*+ . o |
      |=+o . |
      |+= |
      |o |
      +----[SHA256]-----+
    2. La clace publica, el fichero .pub lo copiamos para insertarlo dentro del fichero authorized_keys de la máquina homer
      [test@marge .ssh]# cat id_rsa.pub
      ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkpm5flLt6KuP2DkcNZYVqP27ySTKUJB1fvzQmnNZv9foUOU/0jBIMu58XOnGC/7U7YHDilmE3df12+zv5iTuGQy0m2RMfM5bHBBbudcxYw/4qQ6q/IQjC7O2sQ1gQhBXGwszRFwVDUX8LFxOkncSiQjzOAA6vnUGgSsiEP9GW2h789wDhMLBwg2+KixvdGGog6kaJbZcUtk0OqQ30ZsbDv45daoFgf0X6hEXnkOfsvvZEKwmqtdXp2y7tZlMl4Rb07jwv131vhmo+u71mhOIR5/Xf2CSJfWk2ttGQ8NXuNRBfP8F4wDu7Vermtjt0MpcwzEZLaRX3x4YgQTIF5mBT test@marge
      
      
    3. Con esto ya nos podríamos conectar desde la máquina marge a la máquina homer sin necesidad de insertar una clave mediante teclado
[test@marge ~]# ssh test@homer
 Last login: Thu Jan 11 11:55:15 2018 from marca.com
 [test@homer ~]#

Notas: Hemos utilizado una distribucion RHEL 7.4 para los ejemplos, la ubicacion de la ruta ../.ssh/ puede variar de una distribución a otra

 

Reiniciar Fabric Interconnect y cambiar Fabric Interconnect Primary/Subordinate

Comprobar que FI es Primary o Subordinate:

FI-A# show cluster state
 A: UP, PRIMARY
 B: UP, SUBORDINATE

Conectamos a FI-B para reiniciarlo:

FI-A# connect local-mgmt B

Desde FI-B local-mgmt lanzamos comando de reinicio:

FI-B(local-mgmt)# reboot
 Before rebooting, please take a configuration backup.
 Do you still want to reboot? (yes/no):yes

Comprobamos que se está reiniciando:

FI-A(local-mgmt)# show cluster state
 A: UP, PRIMARY
 B: DOWN, INAPPLICABLE
 HA NOT READY
 Peer Fabric Interconnect is down

Ponemos el FI-B como primario:

FI-A(local-mgmt)# cluster lead b

Reiniciamos FI-A:

FI-B# connect local-mgmt a
 FI-A(local-mgmt)# reboot
 Before rebooting, please take a configuration backup.
 Do you still want to reboot? (yes/no):yes

Comprobamos el estado:

FI-B# show cluster state
 B: UP, PRIMARY
 A: UP, SUBORDINATE
 HA READY

Si HA no está habilitado, habilitarlo con ENABLE HA.

Ponemos FI-A como primario:

FI-B# connect local-mgmt b
 FI-B(local-mgmt)# cluster lead a

Cómo saber si un índice de oracle se está usando.

Es lógico que queramos saber si los índices que hemos creado realmente son útiles y se están usando. En oracle podemos hacerlo con ALTER INDEX …. MONITORING USAGE;

Por ejemplo, si tenemos un índice llamado opt_idx1, lo haremos de la siguiente forma:

alter index opt_idx1 monitoring usage;

Continuar leyendo «Cómo saber si un índice de oracle se está usando.»

CREATE TABLE AS: Copiando tablas en oracle

En ocasiones necesitamos crear una tabla basada ya en una existente. Por ejemplo, queremos hacer un backup rápido de una tabla antes de modificar su estructura o datos.
Una forma de hacerlo es usando la sentencia «CREATE TABLE AS»

Por ejemplo, vamos a crear la tabla personas_backup que será una copia de la tabla personas.

create table personas_backup
as select * personas;

Continuar leyendo «CREATE TABLE AS: Copiando tablas en oracle»

¿Para qué sirve y dónde se encuentra nuestro Automatic Diagnostic Repository de Oracle?

Automatic Diagnostic Repository (ADR) es la ubicación donde se guardarán todos los archivos que nos van a permitir trazar algún problema dentro de una base de datos Oracle.
A partir de Oracle 11g  ADR_HOME nos especifica dónde tenemos este directorio.

Este directorio, lo podemos encontrar en la siguiente ubicación

ORACLE_BASE/diag/rdbms/db_unique_name)/instance_name.

Por ejemplo, si nuestro db_unique_name es prueba12c y el instance_name es también prueba12c nuestro directorio ADR estará en ORACLE_BASE/diag/rdbms/prueba12c/prueba12c

Continuar leyendo «¿Para qué sirve y dónde se encuentra nuestro Automatic Diagnostic Repository de Oracle?»

Creando un usuario de base de datos oracle con autenticación en base de datos

Para crear un usuario en una base de datos Oracle y que autentique sobre la base de datos lo hacemos con CREATE USER.

Si quieres crear un usuario en tu base de datos, lo tienes que hacer con un usuario que tenga permisos para ello. Un usuario administrador (DBA) puede hacerlo porque tiene privilegios para realizar esa operación.

En este ejemplo, crearemos un usuario llamado PRUEBA con contraseña «pru3ba» y le asignaremos como tablespace permanente el tablespace USERS y como tablespace temporal el tablespace TEMP y la quota que tenga sobre el tablespace USERS será ilimitada.

create user PRUEBA identified by pru3ba
default tablespace USERS
temporary tablespace TEMP
quota unlimited on USERS;

Continuar leyendo «Creando un usuario de base de datos oracle con autenticación en base de datos»

Cómo renombrar un índice en Oracle

Lo mismo, en alguna ocasión, tienes la necesidad de renombrar un índice. Por ejemplo, hemos creado el índice con un nombre que no nos gustó o nos hemos confundido de nombre al crearlo.

Para poder renombrar un índice, usamos ALTER INDEX

Por lo que si queremos renombrar un índice cuyo nombre inicial fue inxprueb y queremos que se llame inxprueba, lo haremos de la siguiente forma:

alter index inxprueb rename to inxprueba;

Continuar leyendo «Cómo renombrar un índice en Oracle»

ERROR Invalid username and or password en Enterprise Manager Control 13 al lanzar trabajo sobre máquina windows

Problema:

Queremos lanzar un script desde el Enterprise Manager Control 13, sobre una maquina windows, en nuestro caso windows server 2012 R2.

Al ejecutar el trabajo obtenemos el siguiente error «Host Credentials ERROR Invalid username and or password» Pero el acceso por ssh a la máquina o la monitorización de la base de datos es correcta.

Solución:

Es permitir que el trabajo se pueda ejecutar con los siguientes permisos «Log on as batch job», para ello:

Herramientas administrativas->Política loca de seguridad-> Política local->Permisos de usuario y buscamos la siguiente propiedad «Log on as batch job”; y añadimos el usuario y el grupo que son usadas como credenciales desde el cloud control

Cambiar un tablespace de oracle a modo lectura

Quizás, en algunos entornos como los de datawarehouse en los que se realizan cargas masivas de datos, que no van a ser modificados o que no queremos que sean modificados, es interesante cambiar el tablespace donde se ubican estos datos y ponerlo en modo lectura. Así nos aseguramos cambios indeseados.

¿Cómo cambiamos un tablespace a modo lectura?

Lo haremos con el comando alter tablespace.

Ejemplo:

alter tablespace repositorio read only;

En este caso modificamos el tablespace de nombre repositorio y lo ponemos en modo lectura.

Continuar leyendo «Cambiar un tablespace de oracle a modo lectura»

Arrancar o parar instacias o bases de datos de Oracle RAC con srvctl

srvctl es el comando que nos permite arrancar o parar bases de datos o instancias dentro de una infraestructura de Oracle en modo RAC.

Para levantar una base de datos, lo haremos  de la siguiente forma:

srvctl start database –db <db_name>

Ejemplo:

srvctl start database –db orcl

Con esto conseguimos levantar todas las instancias y servicios relativos a la base de datos.

Continuar leyendo «Arrancar o parar instacias o bases de datos de Oracle RAC con srvctl»