Solaris ofrece muchas interfaces de acceso remoto como ssh, X11, server remote redirection, etc.
En muchas ocasiones nos es requerido ejecutar tareas o procesos sin que estas se pierdan o se detengan cuando se pierde la conexion al Servidor o Sistema Operativo. Para esto lo mejor es usar VNC, para lo cual Solaris 10 ya incluye su propio vnc basado en servidor X standard lo cual nos permite redireccionar la pantalla o display en modo virtual a traves de vnc como si fuera un X Display.
A continuación presento un script el cual pueden copiar y ejecutar en el Sistema Operativo Solaris 10 para habilitar el xvnc sin tener que instalar software VNC de terceros:
#!/bin/sh
#
# habilitavnc.sh
# Script para habilitar el vnc en Solaris 10
#
# Ejecutar este script con usuario root
#
# Despues de ejecutar el script puede ingresar con VNC Viewer a
# la ip del servidor a los display :1 y :2
#
# Agrega el display 1 a la configuracion del vnc
svccfg -s application/x11/x11-server add display1
svccfg -s application/x11/x11-server:display1 addpg options application
svccfg -s application/x11/x11-server:display1 addpropvalue options/server astring: "/usr/X11/bin/Xvnc"
svccfg -s application/x11/x11-server:display1 addpropvalue options/server_args astring: '"SecurityTypes=None"'
# Agrega el display 2 a la configuracion del vnc, para poder
# utilizar dos display
svccfg -s application/x11/x11-server add display2
svccfg -s application/x11/x11-server:display2 addpg options application
svccfg -s application/x11/x11-server:display2 addpropvalue options/server astring: "/usr/X11/bin/Xvnc"
svccfg -s application/x11/x11-server:display2 addpropvalue options/server_args astring: '"SecurityTypes=None"'
svccfg -s application/x11/x11-server:display2 addpropvalue options/server_args astring: '"-alwaysshared"'
# Configura el dtlogin para que cargue configuración en cada
# reboot
if [ ! -d /etc/dt/config ] ; then
mkdir -p /etc/dt/config
fi
if [ ! -f /etc/dt/config/Xservers ] ; then
cp /usr/dt/config/Xservers /etc/dt/config/Xservers
fi
echo " :1 Local local_uid@none root /usr/X11/bin/Xserver :1" >> /etc/dt/config/Xservers
echo " :2 Local local_uid@none root /usr/X11/bin/Xserver :2" >> /etc/dt/config/Xservers
pkill -HUP dtlogin
El Objetivo de este blog es mostrar ejemplos de configuraciones y procedimientos en la administración de Sistemas Operativos Unix(Solaris y Linux) y Bases de Datos Oracle. Los ejemplos ya han sido probados y utilizados en la implementacion de muchos ambientes.
miércoles, 27 de julio de 2016
lunes, 18 de julio de 2016
Administración de Privilegios y Roles en Solaris, RBAC
Se puede dar privilegios especificos a usuarios no root para que ejecuten tareas avanzadas o solo permitidas a usuarios root, esto se puede completar con los siguientes y sencillos pasos:
1. Crear una Cuenta de Role.
2. Setear Password a la cuenta Role.
3. Editar el archivo /etc/security/prof_attr y crear o buscar el profile con la descripcion de las tareas que queremos permitir ejecutar al usuario.
4. Editar el archivo /etc/security/exec_attr para ver o definir lo que el profile puede hacer o ejecutar.
5. Asociar el profile con la cuenta de role con el siguiente comando /usr/bin/rolemod.
6. Agregar el role al usario con el comando usermod.
Ejemplo:
Usar RBAC para permitir a un usuario general o no root reiniciar o apagar el servidor en ventanas de mantenimiento.
Rolename: mantenimiento
Username: operador
Profile Name: Maintenance and Repair
1. Crear la cuenta de role:
# roleadd -d /export/home/mantenimiento -m mantenimiento
Asignar password a la cuenta de role
# passwd mantenimiento
2. validar el profil Maintenance and Repair.
Ver el archivo /etc/security/prof_attr y buscar la linea de Maintenance and Repair:
Maintenance and Repair:::Maintain and repair a system:auths=solaris.smf.manage.system-log,solaris.label.range,solaris.admin.logsvc.write,solaris.admin.logsvc.read,solaris.compsys.write,solaris.compsys.read,solaris.system.shutdown;help=RtMaintAndRepair.html
3. Validar los atributos de ejecución en el archivo /etc/security/exec_attr.
Este define el comando o script a ejecutar y el uid que el role asume al ejecutarlo.
Ver el archivo /etc/security/exec_attr:
Maintenance and Repair:suser:cmd:::/sbin/bootadm:uid=0
Maintenance and Repair:suser:cmd:::/sbin/init:euid=0
Maintenance and Repair:suser:cmd:::/usr/bin/date:euid=0
Maintenance and Repair:suser:cmd:::/usr/bin/ldd:euid=0
Maintenance and Repair:suser:cmd:::/usr/bin/mdb:euid=0
Maintenance and Repair:suser:cmd:::/usr/bin/vmstat:euid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/eeprom:euid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/halt:euid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/poweroff:uid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/prtconf:euid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/reboot:uid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/syslogd:euid=0
4. Use el comando rolemod para agregar los profiles Maintenance and Repair y All al role de la siguiente manera:
# rolemod -P "Maintenance and Repair",All Mantenimiento
5. El comando rolemod actualiza el archivo /etc/user_attr file. Verifique que los cambios fueron hechos.
# more /etc/user_attr
mantenimiento::::type=role;profiles=Maintenance and Repair,All
operador::::type=normal;roles=mentenimiento
Aqui puede ver facilmente que el role mantenimiento a sido asignado al usuario operador. El profile Maintenance and Repair esta ahora asociado al role mantenimiento.
6. Use el comando usermod para agregar el role al usuario.
# usermod -R mantenimiento <username>
Listo!
Instrucciones para el Usuario:
Debe estar logeado con la cuenta de usuario requerida (en este caso usuario operador).
Cambiar el usuario al Role de la siguiente manera:
$ su - mantenimiento
Password: <enter password>
Una vez que se ha autenticado con el Role puede ejecutar cualquier comando del Profile Maintenance and Repair de la siguiente manera:
$ /sbin/init 5 #para apagar
$ /usr/sbin/reboot #para reiniciar
etc!
Para salir del Role y regresar al usuario inicial escriba exit.
1. Crear una Cuenta de Role.
2. Setear Password a la cuenta Role.
3. Editar el archivo /etc/security/prof_attr y crear o buscar el profile con la descripcion de las tareas que queremos permitir ejecutar al usuario.
4. Editar el archivo /etc/security/exec_attr para ver o definir lo que el profile puede hacer o ejecutar.
5. Asociar el profile con la cuenta de role con el siguiente comando /usr/bin/rolemod.
6. Agregar el role al usario con el comando usermod.
Ejemplo:
Usar RBAC para permitir a un usuario general o no root reiniciar o apagar el servidor en ventanas de mantenimiento.
Rolename: mantenimiento
Username: operador
Profile Name: Maintenance and Repair
1. Crear la cuenta de role:
# roleadd -d /export/home/mantenimiento -m mantenimiento
Asignar password a la cuenta de role
# passwd mantenimiento
2. validar el profil Maintenance and Repair.
Ver el archivo /etc/security/prof_attr y buscar la linea de Maintenance and Repair:
Maintenance and Repair:::Maintain and repair a system:auths=solaris.smf.manage.system-log,solaris.label.range,solaris.admin.logsvc.write,solaris.admin.logsvc.read,solaris.compsys.write,solaris.compsys.read,solaris.system.shutdown;help=RtMaintAndRepair.html
3. Validar los atributos de ejecución en el archivo /etc/security/exec_attr.
Este define el comando o script a ejecutar y el uid que el role asume al ejecutarlo.
Ver el archivo /etc/security/exec_attr:
Maintenance and Repair:suser:cmd:::/sbin/bootadm:uid=0
Maintenance and Repair:suser:cmd:::/sbin/init:euid=0
Maintenance and Repair:suser:cmd:::/usr/bin/date:euid=0
Maintenance and Repair:suser:cmd:::/usr/bin/ldd:euid=0
Maintenance and Repair:suser:cmd:::/usr/bin/mdb:euid=0
Maintenance and Repair:suser:cmd:::/usr/bin/vmstat:euid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/eeprom:euid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/halt:euid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/poweroff:uid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/prtconf:euid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/reboot:uid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/syslogd:euid=0
4. Use el comando rolemod para agregar los profiles Maintenance and Repair y All al role de la siguiente manera:
# rolemod -P "Maintenance and Repair",All Mantenimiento
5. El comando rolemod actualiza el archivo /etc/user_attr file. Verifique que los cambios fueron hechos.
# more /etc/user_attr
mantenimiento::::type=role;profiles=Maintenance and Repair,All
operador::::type=normal;roles=mentenimiento
Aqui puede ver facilmente que el role mantenimiento a sido asignado al usuario operador. El profile Maintenance and Repair esta ahora asociado al role mantenimiento.
6. Use el comando usermod para agregar el role al usuario.
# usermod -R mantenimiento <username>
Listo!
Instrucciones para el Usuario:
Debe estar logeado con la cuenta de usuario requerida (en este caso usuario operador).
Cambiar el usuario al Role de la siguiente manera:
$ su - mantenimiento
Password: <enter password>
Una vez que se ha autenticado con el Role puede ejecutar cualquier comando del Profile Maintenance and Repair de la siguiente manera:
$ /sbin/init 5 #para apagar
$ /usr/sbin/reboot #para reiniciar
etc!
Para salir del Role y regresar al usuario inicial escriba exit.
viernes, 15 de julio de 2016
Actualizar Sistema Operativo Solaris 11 desde el repositorio de soporte de Oracle
# 1) Descargar los archivos de Llave y Certificado pkg.oracle.com.key.pem y pkg.oracle.com.certificate.pem del sitio de soporte de Oracle http://pkg-register.oracle.com.
# 2) Crear el directorio /var/pkg para almacenar los archivos de llave y certificado y copiar los archivos descargados a este directorio.
mkdir -m 0755 -p /var/pkg/ssl
cp -i ~/pkg.oracle.com.key.pem /var/pkg/ssl
cp -i ~/pkg.oracle.com.certificate.pem /var/pkg/ssl
# 3) Agregar el publisher que apunte al sitio de soporte de la siguiente manera:
pkg set-publisher \
-k /var/pkg/ssl/pkg.oracle.com.key.pem \
-c /var/pkg/ssl/pkg.oracle.com.certificate.pem \
-G '*' -g https://pkg.oracle.com/solaris/support/ solaris
# 4) Validar la configuración ingresada con:
pkg publisher
# 5) Para listar los paquetes soportados utilizar el siguiente comando:
pkg list -a 'pkg://solaris/*'
# 6) Actualizar el Sistema operativo con el comando:
pkg update
# 2) Crear el directorio /var/pkg para almacenar los archivos de llave y certificado y copiar los archivos descargados a este directorio.
mkdir -m 0755 -p /var/pkg/ssl
cp -i ~/pkg.oracle.com.key.pem /var/pkg/ssl
cp -i ~/pkg.oracle.com.certificate.pem /var/pkg/ssl
# 3) Agregar el publisher que apunte al sitio de soporte de la siguiente manera:
pkg set-publisher \
-k /var/pkg/ssl/pkg.oracle.com.key.pem \
-c /var/pkg/ssl/pkg.oracle.com.certificate.pem \
-G '*' -g https://pkg.oracle.com/solaris/support/ solaris
# 4) Validar la configuración ingresada con:
pkg publisher
# 5) Para listar los paquetes soportados utilizar el siguiente comando:
pkg list -a 'pkg://solaris/*'
# 6) Actualizar el Sistema operativo con el comando:
pkg update
Solaris11 Habilitar Desktop y VNC
# En una instalación normal del Sistema Operativo Solaris 11 este no incluye los paquetes de Escritorio ni conexion remota vnc
# Para habilitar el acceso a Desktop desde consola o remotamente desde VNC es requisito instalar primero el paquete solaris-desktop
# 1) Instalar Paquete solaris-desktop a Sistema Operativo
# Para esto puede ser requerido configurar el support-repository antes de ejecutar el comando pkg install
pkg install solaris-desktop
# 2) Configurar el archivo /etc/gdm/custom.conf con las Siguientes Opciones
[xdmcp]
Enable=true
[security]
DisallowTCP=false
AllowRoot=true
AllowRemoteRoot=true
# 3) Habilitar el Servicio xvnc-inetd
inetadm -e xvnc-inetd
# 4) Reiniciar el servicio svc:/application/graphical-login/gdm:default
svcadm restart svc:/application/graphical-login/gdm:default
# 5) Configurar los servicios x11-server, xvnc-inetd :
svccfg -s x11-server setprop options/tcp_listen=true
svccfg -s xvnc-inetd setprop inetd/wait=true
svccfg -s xvnc-inetd
setprop inetd_start/exec=astring:"/usr/bin/Xvnc -geometry 1280x720 -inetd -query localhost -once securitytypes=none"
exit
# 6) Reiniciar los servicio gdm y xvnc-inetd
svcadm restart gdm xvnc-inetd
svcadm disable gdm xvnc-inetd
svcadm enable gdm xvnc-inetd
# Con esto se puede probar ya el acceso con cliente vnc o mediante consola al desktop del servidor.
# Para habilitar el acceso a Desktop desde consola o remotamente desde VNC es requisito instalar primero el paquete solaris-desktop
# 1) Instalar Paquete solaris-desktop a Sistema Operativo
# Para esto puede ser requerido configurar el support-repository antes de ejecutar el comando pkg install
pkg install solaris-desktop
# 2) Configurar el archivo /etc/gdm/custom.conf con las Siguientes Opciones
[xdmcp]
Enable=true
[security]
DisallowTCP=false
AllowRoot=true
AllowRemoteRoot=true
# 3) Habilitar el Servicio xvnc-inetd
inetadm -e xvnc-inetd
# 4) Reiniciar el servicio svc:/application/graphical-login/gdm:default
svcadm restart svc:/application/graphical-login/gdm:default
# 5) Configurar los servicios x11-server, xvnc-inetd :
svccfg -s x11-server setprop options/tcp_listen=true
svccfg -s xvnc-inetd setprop inetd/wait=true
svccfg -s xvnc-inetd
setprop inetd_start/exec=astring:"/usr/bin/Xvnc -geometry 1280x720 -inetd -query localhost -once securitytypes=none"
exit
# 6) Reiniciar los servicio gdm y xvnc-inetd
svcadm restart gdm xvnc-inetd
svcadm disable gdm xvnc-inetd
svcadm enable gdm xvnc-inetd
# Con esto se puede probar ya el acceso con cliente vnc o mediante consola al desktop del servidor.
Limpiar fallas y alarmas en Servidores Oracle/Sun Fire Vxxx y Txxxx
###Limpiar FMA faults en Servidores Oracle/Sun Fire T1000/T2000 Vxxx
# Después de reemplazar una parte en un Servidor Sun Fire T1000/T2000 o Sun Fire Vxxx, puede ser necesario limpiar las fallas y alarmas.
# Esto se puede realizar de dos maneras:
# 1) Via la consola SC:
# Es preferible ejecutar esto desde la consola SC ya que no requiere reinicio del sistema operativo
# a) Limpiar Fallas y Alarmas desde la Consola SC:
# Mostrar, listar las fallas en la consola SC
sc> showfaults -v
# Para cada falla listada ejecutar:
sc> clearfault <uuid>
# Si existe algun componente deshabilitado o algun componente quedó en estado disabled ejecutar:
sc> clearasrdb
# b) Limpiar los reportes de fallas y alarmas en la consola SC
sc> setsc sc_servicemode true
sc> clearereports -y
sc> setsc sc_servicemode false
# 2) Via el Sistema Operativo Solaris:
# a) Para limpiar las fallas FMA o logs de errores desde el sistema operativo Solaris:
# Listar las Fallas registradas en el FMA
root@solaris# fmadm faulty
# Para cada falla mostrada por el comando ‘fmadm faulty’ ejecutar:
root@solaris# fmadm repair <uuid>
# Vaciar los ereports y resource cache
root@solaris# cd /var/fm/fmd
root@solaris# rm e* f* c*/eft/* r*/*
# Resetear los modulos fmd y serd
root@solaris# fmadm reset cpumem-diagnosis
root@solaris# fmadm reset cpumem-retire
root@solaris# fmadm reset eft
root@solaris# fmadm reset io-retire
# Reiniciar el sistema operativo:
root@solaris# reboot
# o
root@solaris# shutdown -y -g0 -i6
# Después de reemplazar una parte en un Servidor Sun Fire T1000/T2000 o Sun Fire Vxxx, puede ser necesario limpiar las fallas y alarmas.
# Esto se puede realizar de dos maneras:
# 1) Via la consola SC:
# Es preferible ejecutar esto desde la consola SC ya que no requiere reinicio del sistema operativo
# a) Limpiar Fallas y Alarmas desde la Consola SC:
# Mostrar, listar las fallas en la consola SC
sc> showfaults -v
# Para cada falla listada ejecutar:
sc> clearfault <uuid>
# Si existe algun componente deshabilitado o algun componente quedó en estado disabled ejecutar:
sc> clearasrdb
# b) Limpiar los reportes de fallas y alarmas en la consola SC
sc> setsc sc_servicemode true
sc> clearereports -y
sc> setsc sc_servicemode false
# 2) Via el Sistema Operativo Solaris:
# a) Para limpiar las fallas FMA o logs de errores desde el sistema operativo Solaris:
# Listar las Fallas registradas en el FMA
root@solaris# fmadm faulty
# Para cada falla mostrada por el comando ‘fmadm faulty’ ejecutar:
root@solaris# fmadm repair <uuid>
# Vaciar los ereports y resource cache
root@solaris# cd /var/fm/fmd
root@solaris# rm e* f* c*/eft/* r*/*
# Resetear los modulos fmd y serd
root@solaris# fmadm reset cpumem-diagnosis
root@solaris# fmadm reset cpumem-retire
root@solaris# fmadm reset eft
root@solaris# fmadm reset io-retire
# Reiniciar el sistema operativo:
root@solaris# reboot
# o
root@solaris# shutdown -y -g0 -i6
Suscribirse a:
Entradas (Atom)