Configuración sudoers con nopassword

Recomentamos hacer los cambios siempre en la sección de usuario de sudoers. Aunque en la práctica da igual, es mejor a efectos de orden, saber donde buscar la configuración.

Cuando queremos que un usuario ejecute sin
contraseña cualquier script, como si fuera root:

# User privilege specification
root ALL=(ALL:ALL) ALL
user1 ALL=NOPASSWD: ALL

Para que un usuario ejecute un comando concreto, os pongo el ejemplo de nagios:

nagios ALL=NOPASSWD: /usr/sbin/nagiostats

Deshabilitar el límite de conexiones de terminal services en windows XP

El 8 de abril es la fecha en que se deja de dar soporte a windows XP, y es alucinante la cantidad de XP’s que quedan aún vivos. De hecho, a nivel mundial, parece que es el segundo sistema operativo más instalado.

Windows XP sigue siendo el segundo sistema operativo más usado del mundo

Os dejo también un tutorial para poder activar varias sesiones en windows XP, basada en una versión más antigua de las librerías de terminal.

  1. Entrar en modo a prueba de fallos en windows / Modo seguro. Pulsando F8 en el arranque.
  2. Parar el servicio de terminal services.
  3. Sustituir termsrv.dll en dos ubicaciones:
    C:\windows\system32\dllcache;
    C:\windows\system32
  4. Nueva clave en el registro: regeditHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Licensing Core
    EnableConcurrentSessions (DWORD) = 1
  5.  Cambiar el límite de conexiones. Nosotros hemos puesto 10 el límite:
    gpedit.msc
    Computer Configuration > Administrative Templates > Windows Components > Terminal Services
    Limit number of connections = Enabled
    Number Connections = 10
    Si hubiéramos puesto 99999 las conexiones ya son ilimitadas.
  6. Habilitar en windows el acceso remoto, y concretamente para los usuarios que haga falta.
  7. Reiniciar el sistema.

Instalación phpmyadmin

Instalación sobre Debian 7:

La instalación sobre debian es bastante trivial, ya que no suele haber problemas con paquetes y librerías de php.

apt-get install phpmyadmin -y

Os pongo también nuestro sources.list

cat /etc/apt/sources.list | grep -v '#'
deb http://ftp.es.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.es.debian.org/debian/ wheezy main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free
deb http://ftp.es.debian.org/debian/ wheezy-updates main contrib non-free
deb-src http://ftp.es.debian.org/debian/ wheezy-updates main contrib non-free

A diferencia de la instalación sobre centos, en este caso tampoco hay que editar a mano la clave secret del fichero config.inc.php.

Instalación  sobre CentOS 6.5

Para ver la versión:
cat /etc/centos-release
CentOS release 6.5 (Final)

Instalar paquetes de phpmyadmin mediante yum:

[root@server~]# yum list installed | grep php
php.x86_64              5.3.3-27.el6_5  @updates
php-cli.x86_64          5.3.3-27.el6_5  @updates
php-common.x86_64       5.3.3-27.el6_5  @updates
php-devel.x86_64        5.3.3-27.el6_5  @updates
php-gd.x86_64           5.3.3-27.el6_5  @updates
php-ldap.x86_64         5.3.3-27.el6_5  @updates
php-mbstring.x86_64     5.3.3-27.el6_5  @updates
php-mysql.x86_64        5.3.3-27.el6_5  @updates
php-pdo.x86_64          5.3.3-27.el6_5  @updates
php-pear.noarch         1:1.9.4-4.el6   @anaconda-CentOS-201303020151.x86_64/6.4
php-xml.x86_64          5.3.3-27.el6_5  @updates
phpmyadmin.noarch       2.11.11.3-2.el6.rf

Si preferís usar pear, aquí os dejo un enlace para configurar pear

 

Instalar mcrypt:

yum install php-mcrypt

Cambiar clave para cookies:

Recién instalado, da un error de configuración:

phpMyAdmin indicates  “configuration files now needs a secret passphase (blowfish_secret)”.

Es necesario editar el fichero de configuración, añadiendo una clave para las cookies.

[root@server~]# cat /usr/share/phpmyadmin/config.inc.php | grep blow
$cfg[‘blowfish_secret’] = ‘mypass’; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

 

Instalar drivers adicionales en vmware ESXi 5.5

Bajar los drivers que nos faltan de la página de vmware.

Leer doc/README para ver cómo se instalan.

En nuestro caso, se copia el bundle por scp, y se ejecuta en el servidor:

 

/tmp/BCM-NetXtremeII-2.0-1407733 # esxcli software vib install -d BCM-NetXtremeII-2.0-offline_bundle-1407733.zip
[MetadataDownloadError]
Could not download from depot at zip:/var/log/vmware/BCM-NetXtremeII-2.0-offline_bundle-1407733.zip?index.xml, skipping ((‘zip:/var/log/vmware/BCM-NetXtremeII-2.0-offline_bundle-1407733.zip?index.xml’, ”, “Error extracting index.xml from /var/log/vmware/BCM-NetXtremeII-2.0-offline_bundle-1407733.zip: [Errno 2] No such file or directory: ‘/var/log/vmware/BCM-NetXtremeII-2.0-offline_bundle-1407733.zip'”))
url = zip:/var/log/vmware/BCM-NetXtremeII-2.0-offline_bundle-1407733.zip?index.xml
Please refer to the log file for more details.

Sin embargo, si ponemos la ruta completa:

 

/tmp/BCM-NetXtremeII-2.0-1407733 # esxcli software vib install -d /tmp/BCM-NetXtremeII-2.0-1407733/BCM-NetXtremeII-2.0-offline_bundle-1407733.zip
Installation Result
Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
Reboot Required: true
VIBs Installed: Broadcom_bootbank_misc-cnic-register_1.78.50.v55.4-1OEM.550.0.0.1331820, Broadcom_bootbank_net-bnx2_2.2.4d.v55.2-1OEM.550.0.0.1331820, Broadcom_bootbank_net-bnx2x_1.78.58.v55.1-1OEM.550.0.0.1331820, Broadcom_bootbank_net-cnic_1.78.53.v55.4-1OEM.550.0.0.1331820, Broadcom_bootbank_scsi-bnx2fc_1.78.51.v55.2-1OEM.550.0.0.1331820, Broadcom_bootbank_scsi-bnx2i_2.78.52.v55.2-1OEM.550.0.0.1331820
VIBs Removed: Broadcom_bootbank_misc-cnic-register_1.78.1.v55.7-1OEM.550.0.0.1198611, Broadcom_bootbank_net-bnx2_2.2.3t.v55.7-1OEM.550.0.0.1198611, Broadcom_bootbank_net-bnx2x_1.78.28.v55.2-1OEM.550.0.0.1198611, Broadcom_bootbank_net-cnic_1.78.12.v55.6-1OEM.550.0.0.1198611, Broadcom_bootbank_scsi-bnx2fc_1.78.16.v55.4-1OEM.550.0.0.1198611, Broadcom_bootbank_scsi-bnx2i_2.78.11.v55.4-1OEM.550.0.0.1198611
VIBs Skipped:

Centreon 2.4.5 Añadir nuevo poller o satélite (debian 7)

Nagios empieza a tener mucha carga, y queremos usar otros poller desde otras subredes. Por ello, nos hace falta crear nuevas máquinas, y añadirlas para gestionarlas de forma unificada desde Centreon.

Vamos a seguir la arquitectura distribuida de centreon, basándonos en este tutorial de linux.org

AVISO: Aún no lo hemos logrado configurar.

Os recomiendo seguir el foro de centreon, para lograr configurar esto. Y, por supuesto, los comentarios están abiertos para que nos enviéis sugerencias y correcciones.

Configuración en el Satélite (debian 7). Acceso vía SSH

En el nuevo poller, damos un home a los usuarios nagios y centreon, y capacidad de bash

root@poller:~# grep nagios  /etc/passwd
nagios:x:102:121::/var/lib/nagios:/bin/bash

Creamos un usuario centreon con grupo nagios. Es el usuario que

  centreon:x:1001:1001:,,,:/home/centreon:/bin/bash

Configuramos SUDO para nagios y centreon

visudo:

User_Alias CENTREON=nagios,centreon
CENTREON ALL=NOPASSWD: /etc/init.d/nagios restart
CENTREON ALL=NOPASSWD: /etc/init.d/nagios stop
CENTREON ALL=NOPASSWD: /etc/init.d/nagios start
CENTREON ALL=NOPASSWD: /etc/init.d/nagios reload
CENTREON ALL=NOPASSWD: /usr/bin/nagiostats
CENTREON ALL=NOPASSWD: /usr/local/etc/bin/nagios *

Si no creamos este usuario, sale repetitivamente siguiente error de autenticación en /var/log/auth. Según el manual de centreon, es suficiente con tener un usuario nagios en los poller, pero, nuestra experiencia, dice que necesita también el usuario centreon:

Dec 13 08:19:15 poller sshd[14233]: Connection closed by centreon_ip [preauth]
Dec 13 08:21:02 poller sshd[14242]: Invalid user centreon from centreon_ip
Dec 13 08:21:02 poller sshd[14242]: input_userauth_request: invalid user centreon [preauth]

Instalamos centreon broker en el poller, para la comunicación desde Centreon. La instalación del broker, está mucho más detallada en la web de centreon.

apt-get install build-essential cmake
apt-get install librrd-dev
apt-get install libqt4-dev libqt4-sql-mysql
apt-get install libgnutls-dev  libgnutls26
cd centreon-broker/build
cmake \
-DWITH_DAEMONS='central-broker;central-rrd' \
-DWITH_GROUP=centreon-broker \
-DWITH_PREFIX=/usr \
-DWITH_PREFIX_BIN=/usr/sbin \
-DWITH_PREFIX_CONF=/etc/centreon-broker \
-DWITH_PREFIX_INC=/usr/include/centreon-broker \
-DWITH_PREFIX_LIB=/usr/lib/nagios3 \
-DWITH_PREFIX_MODULES=/usr/share/centreon/lib/centreon-broker \
-DWITH_STARTUP_DIR=/etc/init.d \
-DWITH_STARTUP_SCRIPT=auto \
-DWITH_TESTING=0 \
-DWITH_USER=centreon-broker
make install
# Start service:
adduser centreon-broker
service cbd start

Tenemos que agregar el usuario centreon-broker para evitar esto:

service cbd start
[....] Starting cbd_central-broker: cbdstart-stop-daemon: user 'centreon-broker' not found
start-stop-daemon: user 'centreon-broker' not found
failed!

Tiene que iniciar:


root@poller:~/src/centreon-broker/build# service cbd start
[ ok ] Starting cbd_central-broker: cbd.
[ ok ] Starting cbd_central-rrd: cbd.

Verificamos las rutas de centreon broker, para asegurar que está bien instalado:

 

Como nuestro satélite es debian, y por problemas con nagvis, vamos a usar mklivestatus, en vez de ndomod. Recomendamos leer <a href=”http://mathias-kettner.de/checkmk_livestatus.html”>este artículo </a>de Matthias Kettner.

Instalamos mklive  y su socket (en nuestra instalación no se creó de forma automática).

apt-get install check-mk-livestatus
mkfifo /var/log/nagios3/rw/live
chown nagios:nagios /var/log/nagios3/rw/live

Probamos desde nagios, la comunicación con mklivestatus

root@poller:~# grep broker /etc/nagios3/nagios.cfg
broker_module=/usr/lib/check_mk/livestatus.o /var/log/nagios3/rw/live
event_broker_options=-1

En nagios.log

Sin embargo, sí vamos a instalar ndoutils

Centreon. SSH

Creamos para nagios una clave asimétrica y se la pasamos al nuevo poller o satélite:

nagios@centreon:~#  ssh-keygen
nagios@centreon:~#  chmod 600 id_rsa

# Copiamos para nagios y para usuario centreon:
nagios@centreon:~#  ssh-copy-id  -i id_rsa.pub nagios@poller
nagios@centreon:~#  ssh-copy-id  -i id_rsa.pub centreon@poller
# Prueba de la conexión:
nagios@centreon:~#  ssh nagios@poller
nagios@centreon:~#  ssh centreon@poller

Pasamos todos los plugins al satélite:

scp /usr/local/nagios/libexec/* nagios@{IP_ADDRESS}:/usr/local/nagios/libexec/

Centreon GUI

Creamos el poller

Esta es la configuración del poller para debian 7.1

 

Creamos el ndomod, con su ip, y habilitado

Creamos el nuevo nagios.cfg

Es importante verificar todas las rutas de archivos.

En nuestro caso, al ser el satélite Debian 7, necesitamos que todas las rutas hagan referencia a nagios3.

Además, configuramos el broker, para usar mklive.

Cambiamos los permisos de /var/nagios/spool/checkresults, para evitar el errorde permisos durante “Run monitoring engine debug (-v)”

Error Unable to write to check_result_path (‘/var/nagios/spool/checkresults’) – Permission denied.

 

root@central# chmod 777 /var/nagios/spool/checkresults

Vmware: Depuración de errores de ESXi

Esta es la guía de pasos para depurar un error de un host ESXi de vmware.

Diagnóstico: El host ESXi aparece en el inventario como Disconnected.

Intentar reconectar

Si funciona, ha sido un error de red puntual.

Intentar acceder directamente al host con vsphere vclient

Ver si las máquinas aún están ejecutando. Si están ejecutando, parece un error de conexión host esxi con vcenter.

Si no podemos acceder al host, ni desde la misma subred, parece que parte de los servicios de esx se han caido. Intentamos acceder a través de la consola o de ssh.

Ver la consola local del host (esxi console)

Si hay un pantallazo morado, es momento de reiniciar, y luego leerse los logs a ver qué ha pasado.

Si no hay pantallazo morado, activar la consola ESXi

  1. Ver los logs: tail -f /var/log/?
  2. Probar la conectividad con vcenter mediante ping y traceroute
  3. Ver si es un problema con la vlan de conexión

 

 

Vmware powercli: Scripts útiles

Los scripts aquí definidos están para descargar en github.

Activar y desactivar de forma masiva ssh en los hosts

Desde la 4.1, se puede activar ssh, sin necesidad de entrar por las ilos de los servidores.

Es importante el -Confirm $false, por que si no , pregunta 100 veces.

Nos hemos basado en esta utilísima entrada de techshifter

Get-Cluster | Foreach {
$cl=$_
Get-Cluster -name $cl | Get-VMHost | Foreach {
# Start-VMHostService -HostService ($_ | Get-VMHostService | Where { $_.Key -eq "TSM-SSH" } )
# Stop-VMHostService -HostService ($_ | Get-VMHostService | Where { $_.Key -eq "TSM-SSH" } ) -Confirm:$false
}
}

Activar snmp de forma masiva en todos los nodos

Este script es algo más complicado, porque es necesario iniciar sesión contra el servidor vcenter, y depués contra cada uno de los hosts.

vmware vcenter 5.5.0a: El inventario deja de actualizarse en el cliente web

Ya nos ha pasado 2 veces. Después de unos 30 días, el inventario de vmware deja de actualizarse a nivel del cliente web. Se nota mucho porque:

  1. El panel de tareas se queda congelado con tareas antiguas y no se refrescan
  2. Las máquinas virtuales se quedan asignadas a hosts en los que ya no están (tras drs) y no se puede acceder a ellas. Al abrir la consola da un error: “you have no privileges to view this object or it does not exist”.

Ya hay un hilo reportando este problema en las communities, también hemos escrito la resolución allí.

Tambien Gabesvirutalworld, lo ha reportado para la versión 5.1.

Solución

Con un caso de soporte con vmware, nos han dado la solución para este problema.  Hay distintos comandos para versiones anteriores de vmware a los que también les pasa este problema:

service vmware-inventoryservice stop
# Remove stored data:
rm -rf /storage/db/inventoryservice/data
/usr/lib/vmware-vpx/inventoryservice/scripts/ds-invoke.sh -Dvim.logdir=/var/log/vmware/vpx/inventoryservice com.vmware.vim.dataservices.CreateDb /storage/db/inventoryservice/data changeme default changeme
service vmware-inventoryservice start
vcenterhost=vchost.mydomain.com
/usr/lib/vmware-vpx/inventoryservice-registration/vcregtool.sh -Dvim.logdir=/var/log/vmware/vpx/inventoryservice-registration com.vmware.vim.dataservices.vcregtool.RegisterVC -action register -lookupserviceurl https://$vcenterhost:7444/lookupservice/sdk -isurl https://$vcenterhost:10443 -vcurl https://$vcenterhost/sdk/vimService -vccert /etc/vmware-vpx/ssl/rui.crt -vcprivkey /etc/vmware-vpx/ssl/rui.key -vcinstancecfg /etc/vmware-vpx/instance.cfg -vcendpointsdir /usr/lib/vmware-vpx/endpoints -vcextensionsdir /usr/lib/vmware-vpx/extensions
service vmware-vpxd restart

En nuestro caso, el servidor tiene dos nombres hacia fuera: vcenter y vspherecsl. Por ello, fue necesario también añadir en el /etc/hosts, una entrada con la IP externa y con el segundo nombre de servidor

En /var/log/vmware/vpx/inventoryservice/ds.log teníamos este mensaje:


inherited from com.vmware.vim.binding.vim.fault.InvalidLogin: Cannot complete login due to an incorrect user name or password.

Fue necesario editar el fichero hosts, y poner el segundo nombre dns de la máquina. Ignoro porqué había funcionado hasta entonces.

vcenter:~ # cat /etc/hosts
127.0.0.1  vcenter.domain.com vcenter localhost
external-ip vspherecsl.domain.com vspherecsl