Túnel reverso

Túnel reverso para utilizando una maquina puente redirigir el listener a nuestro puerto local. Imaginemos que tenemos una base de datos en un ared y un cliente en otra y una maquina intermedia con acceso a las dos redes. Para conectarse entre ellas, lo que haremos es abrir un túnel en la maquina con acceso a las dos redes redirigiendo el puerto del listener a un puerto en el cliente:

En la maquina intermedia lanzaremos el siguiente comando:

ssh -f -N -l tutu -R 4494:10.44.34.176:1521 root@159.33.77.17
ssh -f -N -l usuariomaquinaintermedia -R <puertocliente>:<ipbasedatos>:<puertolistener> root@<ipcliente>

 

El tnsnames del cliente los configuraremos de la siguiente manera:

CDB63=
  (DESCRIPTION=
    (ADDRESS=
      (PROTOCOL=TCP)
      (HOST=127.0.0.1)
      (PORT=4494)
    )
    (CONNECT_DATA=
      (SERVER = dedicated)
      (SERVICE_NAME=mibasededatos)
    )
  )

Montar un servidor NFS en Solaris:

Para ver los directorios compartidos

dfshares 10.23.30.10  (Servidor NFS)
RESOURCE                                  SERVER ACCESS    TRANSPORT
10.23.30.10:/msdevega                10.23.30.10  -         -
10.23.30.10:/backup                  10.23.30.10  -         -
10.23.30.10:/Qweb                    10.23.30.10  -         -
10.23.30.10:/Qusb                    10.23.30.10  -         -
10.23.30.10:/Qrecordings             10.23.30.10  -         -
10.23.30.10:/Qmultimedia             10.23.30.10  -         -
10.23.30.10:/Qdownload               10.23.30.10  -         -
10.23.30.10:/Public                  10.23.30.10  -         -
10.23.30.10:/Network Recycle Bin 3   10.23.30.10  -         -
10.23.30.10:/Network Recycle Bin 1   10.23.30.10  -         -

O también se puede utilizar el comando

showmount -e 10.23.30.10

Montar el servidor sobre  un directorio existente

mount 10.23.30.10:/backup /mnt/repo

Comprobar que está montado

 df -k
Filesystem            kbytes    used   avail capacity  Mounted on
rpool/ROOT/s10s_u9wos_14a
                     81027072 12341093 26500859    32%    /
/devices                   0       0       0     0%    /devices
ctfs                       0       0       0     0%    /system/contract
proc                       0       0       0     0%    /proc
mnttab                     0       0       0     0%    /etc/mnttab
swap                 22341664    1584 22340080     1%    /etc/svc/volatile
objfs                      0       0       0     0%    /system/object
sharefs                    0       0       0     0%    /etc/dfs/sharetab
/platform/SUNW,SPARC-Enterprise-T5220/lib/libc_psr/libc_psr_hwcap2.so.1
                     38841952 12341093 26500859    32%    /platform/sun4v/lib/libc_psr.so.1
/platform/SUNW,SPARC-Enterprise-T5220/lib/sparcv9/libc_psr/libc_psr_hwcap2.so.1
                     38841952 12341093 26500859    32%    /platform/sun4v/lib/sparcv9/libc_psr.so.1
fd                         0       0       0     0%    /dev/fd
rpool/ROOT/s10s_u9wos_14a/var
                     8388608 3188427 5200181    39%    /var
swap                 22340112      32 22340080     1%    /tmp
swap                 22340120      40 22340080     1%    /var/run
rpool/opt-alu        10485760    4251 10481508     1%    /opt/alu
rpool/opt-oracle     20971520 19894704 1076815    95%    /opt/app
rpool                81027072      97 26500859     1%    /rpool
upool                59351040      21 35168820     1%    /upool
upool/users          59351040 24180895 35168820    41%    /users
rpool/var-alu        10485760  207256 10278503     2%    /var/opt/alu
10.23.30.10:/backup 1921316716 409163512 1512153204    22%    /mnt/repo

Recordar que esto es temporal (cuando se reinicie la máquina se perderá la ruta) que para que se quede de manera definitiva hay que modificar el vfstab y añadirle una línea como esta:

10.23.30.10:/backup -           /mnt/repo       nfs     no        yes     rw

Configurar un cliente NTP (Network Time Protocol) en Solaris

Para configurar un cliente NTP (Network Time Protocol) en Solaris 10. Lo primero que hay que hace es crear el archivo /etc/inet/ntp.conf indicando la ip del servidor NTP, para que sincronicen contra el servidor de la hora.

vi /etc/inet/ntp.conf
#Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
#ident  "@(#)ntp4.client        1.1     09/06/25 SMI"
#
# If you want to configure your client to listen for multicast, uncommnet
# this line. This should only be used for casual time keeping, like keeping
# a desktop system in sync.

#multicastclient 224.0.1.1

# To configure NTP servers, replace the server_name with either the IP addre
ss
# or hostname of the server you wish to use. If you just want to keep the ti
me
# in a causual way, one server may be enough for you. If you wish to keep it
# to a more accurate level, 3 or more is recommended. Do not choose 2, becau
se
# 2 servers is an unstable configuration. By the same token 3 is only accept
able
# if all are always available, since when a single one reboots or otherwise
# becomes unavailable, you have just 2.
#
# For a list of Internet NTP servers see
# http://support.ntp.org/bin/view/Servers/WebHome
# If you use this list, be sure to read, understand and abide by the rules
# each server has published for accessing themselves.
#
# There is also a DNS round-robin pool of public access NTP servers. The
# instructions for accessing these are at http://www.pool.ntp.org
# Please consider adding your own servers to the pool if possible.
#
# Many ISP's also provide NTP servers for use by their customers.

#server <IP> iburst
server <IP>

# Always configure the drift file. It can take days for ntpd to completely
# stabilize and without the drift file, it has to start over on a reboot
# of if ntpd restarts.

driftfile /var/ntp/ntp.drift

# It is always wise to configure at least the loopstats and peerstats files.

# Otherwise when ntpd does something you don't expect there is no way to
# find out why.

statsdir /var/ntp/ntpstats/
filegen peerstats file peerstats type day enable
filegen loopstats file loopstats type day enable

# To track the events regarding the system clock, the protostats file can be
 useful
# as well.
#filegen protostats file protostats type day enable

# To see the current state of the crypto authentication protocols, enable th
e
# cryptostats file.
#filegen cryptostats file cryptostats type day enable

# The clockstats files are only useful if a hardware reference clock is
# configured. See the /etc/inet/ntp.server file for more information about
# that.
#filegen clockstats file clockstats type day enable

# The sysstats and rawstats output might be useful in debugging.
#filegen sysstats file sysstats type day enable
#filegen rawstats file rawstats type day enable

# The timingstats file is probably not useful at all. It is designed for
# perfomance debugging by the developers of NTP.
#filegen timingstats file timingstats type day enable

# There are several types on authentication supported by NTP. The easiest
# to use is a set of passwords, called "keys". They should be stored
# the /etc/inet/ntp.keys file. Each key in the ntp.keys file can be
# assigned to certain types of trust levels. See ntpd(1m) for more
# information on setting up key.

#keys /etc/inet/ntp.keys
#trustedkey 1
#requestkey 1
#controlkey 1

#
# To configure leap seconds processing, download the latest NIST leap seconds
# file to /etc/inet, and then create a symbolic link to it from the ntp.leap
# file. Without this file, NTP will still be able to accept leap announcements
# from its upstream sources. If this file exists and is less than 6 months old
# then the contents of this file will take precedence over the upstream servers.
# The latest leap seconds file is always available at ftp://time.nist.gov/pub

#leapfile /etc/inet/ntp.leap

Después hay que habilitar y reiniciar el servicio con svcs/svcadm. Y finalmente verificamos:

Solaris 10
svcs | grep ntp
 offline*        svc:/network/ntp:default
svcadm enable svc:/network/ntp
 svcadm refresh svc:/network/ntp
 svcadm restart svc:/network/ntp
svcs | grep ntp
 nline         2003     svc:/network/ntp:default

Solaris 9
/usr/lib/inet/xntpd

Comprobación de que se ha realizado correctamente:
ntpq -p

Cómo crear una base de datos en ASM si no tengo posibilidad de crear un raw

Vamos a explicar los pasos necesarios para crear fichero en blanco en vez de dispositivo row  real, para instalar una base de datos de prueba en Solaris. Esto puede ser práctico para crear una base de datos en una máquina que no tiene particiones libres o no tiene discos disponibles.

El primer paso es identificar una partición que tenga el espacio suficiente para que crear el dispositivo de disco de ASM

Lo primero que haremos es crear un  fichero con el comando  “dd”. Este es un comando de la familia de los Sistemas Operativos Unix que permite copiar y convertir datos de archivos a nivel bajo.En nuestro caso creamos un fichero data1 de 9GB en /var/opt/alu/asmdata/

 mkdir /var/opt/alu/asmdata
chown oracle:dba /var/opt/alu/asmdata
su - oracle
dd if=/dev/zero of=/var/opt/alu/asmdata/data1 bs=1k count=9000000

if=origen
Lee desde el archivo indicado como origen. Por defecto lee de la entrada estándar.
of=destino
Escribe al archivo indicado como destino. Por defecto escribe en la salida estándar.
bs=N
Lee y escribe N bytes. Alternativa a usar ibs y obs con un mismo valor.
count=numero
Copia un número de bloques del origen, en vez de procesar hasta el final. El tamaño del bloque es indicado por ibs.

Una vez que tenemos el fichero lo convertimos en loop device con lofiadm. Esta herramienta lo que hace es convertir un fichero en seudo dispositivo accesible

Como si fuera un dispositivo de bloque y por la tanto se puede montar hacer un mkfs, etc. Está instrucción se necesita hacer como root.

lofiadm -a /var/opt/alu/asmdata/data1
 ls -lL /dev/lofi/*
brw-------   1 root     sys      147,  1 Apr 21 13:28 /dev/lofi/1

Una vez creado el dispositivo de bloque crearemos el dispositivo de caracteres, para esto utilizaremos mknod con el nombre del dispositivo que queremos crear y la opción c para caracteres y utilizando el número mayor y menor del dispositivo que hemos creado previamente

mknod /dev/rdsk/data1 c 147 1
chown oracle:dba /dev/rdsk/data1

Una vez creado ya seremos capaces de verlo desde ASM

Cambiar las preferencias del tamaño y complejidad de y un password en solaris.

/etc/default/passwd

 

Los principales parámetros de este archivo son:

El máximo número de semanas que el password es válido.

El mínimo número de semanas que el password es válido

El número de semanas antes del password pase a ser inválido en las que se advertirá al usuario

El mínimo número de caracteres que tiene que contener el password.

Modificar la ip de una sun solaris

Y para la IP modificaremos:

 /etc/hosts
 /etc/netmasks mascara de red si es necesario
 /etc/defaultrouter Gateway por defecto
 /etc/ssh/sshd_config
 /etc/inet/hosts

Tenemos que comprobar que /etc/hostname.<interface> tiene el nombre de la máquina no la ip, si tienen la ip sustituirlo por el hostname

Recordar que el /etc/hosts es un link a  ./inet/hosts y qu este está protegido

 ls -ltr hosts
 lrwxrwxrwx 1 root root 12 Dec 14 14:38 hosts -> ./inet/hosts
 bash-3.2# chmod 744 ./inet/hosts

Después de modificar lo hay que recordar cambiarle los permisos:

chmod 444 ./inet/hosts

Reiniciar:

bash-3.2#reboot
bash-3.2# netstat -rn

Demonio syslogd

Demonio que provee un sistema de registro de mensajes en los sistemas *nix. Es el encargado de escribir los errores en /var/adm/messages. Puede ser configurado en el fichero /etc/syslog.conf

Aquí tenemos un ejemplo del fichero /etc/syslog.conf:

#ident "@(#)syslog.conf 1.5 98/12/14 SMI" /* SunOS 5.0 */
#
# Copyright (c) 1991-1998 by Sun Microsystems, Inc.
# All rights reserved.
#
# syslog configuration file.
#
# This file is processed by m4 so be careful to quote (`') names
# that match m4 reserved words. Also, within ifdef's, arguments
# containing commas must be quoted.
#
*.err;kern.notice;auth.notice /dev/sysmsg
*.err;kern.debug;daemon.notice;mail.crit /var/adm/messages
*.alert;kern.err;daemon.err operator
*.alert root
*.emerg *
# if a non-loghost machine chooses to have authentication messages
# sent to the loghost machine, un-comment out the following line:
#auth.notice ifdef(`LOGHOST', /var/log/authlog, @loghost)
mail.debug ifdef(`LOGHOST', /var/log/syslog, @loghost)
#
# non-loghost machines will use the following lines to cause "user"
# log messages to be logged locally.
#
ifdef(`LOGHOST', ,
user.err /dev/sysmsg
user.err /var/adm/messages
user.alert `root, operator'
user.emerg *
)