Configurando un servidor propio de owncloud

Interfaz web owncloud
Interfaz web oncloud

Instalación del servidor

CentOS: CentOS release 6.5 (Final)

Paquetes instalados:

owncloud-3rdparty.noarch                  6.0.4-8.1                     @isv_ownCloud_community
 owncloud-httpd.noarch                     4.5.13-3.el6                  epel
 owncloud-mysql.noarch                     4.5.13-3.el6                  epel
 owncloud-nginx.noarch                     4.5.13-3.el6                  epel
 owncloud.noarch                           6.0.4-8.1                     @isv_ownCloud_community
 owncloud-postgresql.noarch                4.5.13-3.el6                  epel
 owncloud-sqlite.noarch                       4.5.13-3.el6                  epel

Repositorios de paquetes:

yum repolist
repo id                repo name                                          status
base                   CentOS-6 - Base                                     6.367
epel                   Extra Packages for Enterprise Linux 6 - x86_64     10.947
extras                 CentOS-6 - Extras                                      14
isv_ownCloud_community Latest stable community release of ownCloud (CentO      3
puppetlabs-deps        Puppet Labs Dependencies El 6 - x86_64                 63
puppetlabs-products    Puppet Labs Products El 6 - x86_64                    403
updates                CentOS-6 - Updates

En este punto, ya deberíamos poder acceder a nuestro servidor de owncloud mediante el interfaz web:

https://my-server/owncloud/index.php/apps/files

Interfaz web owncloud

Archivos: Conexión desde clientes linux

Comenzamos las pruebas conectando un cliente linux y una carpeta. Igual que haríamos con un servicio como dropbox.

El pc cliente es un debian 7.5.

Si fuera debian 7.0, podríamos seguir las indicaciones de owncloud añadimos a las fuentes el repositorio de owncloud para debian:

newkey=977C43A8BA684223
   gpg --keyserver pgpkeys.mit.edu --recv-key $newkey
   gpg -a --export $newkey| sudo apt-key add -
   echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud-client.list 
   apt-get update
   apt-get install owncloud-client

Al tratarse de debian 7.5, hemos usado el repositorio  wheezy-backports:

echo 'deb http://http.debian.net/debian wheezy-backports main' >> /etc/apt/sources.list
apt-get update
 apt-get install owncloud-client

Podemos abrir ya el cliente y configurarlo en el interfaz gráfico:

owncloud
owncloud

En el propio cliente, podemos verificar los datos de la cuenta y pausar el tráfico en un momento dado:

Owncloud02

 

También podemos poner rutas para que no se baje todo nuestro repositorio en el PC, o que ignore rutas en concreto:

Owncloud03
Owncloud03

Instalación del cliente en MAC

Accedemos a la página de owncloud, y descargamos el cliente de MAC

 

Debian: Gestión de servidores mediante puppet y Foreman

Pantalla de inicio foreman

Instalación sobre debian wheezy

Excelente video tutorial para tener en 10 minutos instalado el servidor puppet, con interfaz de foreman incluida

Agentes en los clientes

Instalación

apt-get install puppet-facter

Ejecución como servicio en el arranque:

vim /etc/default/puppet

Primera ejecución manual para crear y firmar los certificados de cliente en el servidor.

root@client:~# puppet agent --server puppet.server.com --no-daemonize --verbose

En la primera ejecución, se crea un certificado que tenemos que firmar en el servidor. Podéis revisar slashdot.in para más información.

[root@server~]#  puppet cert  --list
 "client.org" (...)
 [root@server~]# puppet cert--sign client.org

 

Nagios: Compilar e instalar nagios

Descargar nagios-3.5.1.tar.gz

Descomprimir y ejecutar:

./configure
make all
make install
make install-init
make install-commandmode
make install-config
make install-webconf
make install-classicui

Configurar el acceso a apache, en el archivo:

/etc/apache2/conf.d/nagios.conf

Y, probar ya el accceso:

http://nagiosserver/nagios

 

A partir de aquí, podemos instalar ya estilos como nuvola 1.0.3.

Si queremos mantener la autenticación a nivel de Apache, aceptando más usuarios que nagiosadmin, es necesario editar cgi.cfg, añadiendo un usuario por defecto:

authorized_for_system_information=nagiosadmin
default_user_name=nagiosadmin

Si no, tenemos un error al acceder a los cgi:

It appears as though you do not have permission to view information for any of the hosts you requested… If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI and check the authorization options in your CGI configuration file.

Compilar e instalar nrpe

Gracias a Roger.steneteg.org por el tutorial para compilar check_nrpe

Tras la descarga, en el momento de la compilación, teníamos el siguiente error:

checking for SSL libraries... configure: error: Cannot find ssl libraries

Es necesario instalar las librerías de compilación de openssl, y enlazarlas en el momento de ./configure:

apt-get install libssl-dev
# Buscar la ruta de libssl
dpkg -L libssl1.0.0
# En nuestro caso, estaban en /usr/lib/x86_64-linux-gnu
./configure --with-ssl-lib=/usr/lib/x86_64-linux-gnu
make all

Si sólo queremos el script check_nrpe:

make check_nrpe

Sondas de intrusión : SNORT

Qué es snort

Sonda de intrusión opensource Instalación sobre Debian 7 Para la instalación, nos basaremos en este tutorial de binaryzone para instalar snort en debian lenny. Sin embargo, vamos a intentar instalar snort desde los paquetes oficiales de debian.

Prerequisitos:

apt-get install mysql-common mysql-client mysql-server php5

En caso de que no tengáis mucha práctica con los clientes en texto de mysql, os recomiendo poner también phpmyadmin apt-get install phpmyadmin

Creamos la base de datos que vamos a usar para snort:

mysql -u root -p
>create database snort;
> grant all on snort.* to snortuser@localhost identified by ‘snortpassword’;
>flush privileges;
>exit;

Para la instalación de snort, seguiremos los pasos de openmaniac apt-get install snort-mysql Direcciones: Any

Configuramos la base de datos que hemos creado:

cd /usr/share/doc/snort-mysql
zcat create_mysql.gz | mysql -u snortuser -p snort

 

Si cometemos algún error, podemos reejecutar:

dpkg-reconfigure snort-mysql

Tras esto, la instalación está completa:

root@srv /etc/snort# service snort restart
[ ok ] Starting Network Intrusion Detection System : snort (eth0 using /etc/snort/snort.conf …done).

Cambiar la interfaz donde se escucha:

root@server:/etc/snort# grep eth0 /etc/snort/*
/etc/snort/snort.debian.conf:DEBIAN_SNORT_INTERFACE="eth0"

Interfaz gráfica: BASE

Para la interfaz gráfica, usaremos Base. En las últimas versiones de debian, se ha discontinuado,por lo que instalaremos desde el repositorio.

# Se usará el directorio de apache2:
cd /var/www/
wget http://skylink.dl.sourceforge.net/project/secureideas/BASE/base-1.4.5/base-1.4.5.tar.gz
tar -xvzf base-1.4.5.tar.gz
mv base-1.4.5 base
cd base/
cp base_conf.php.dist base_conf.php

Editamos base_conf.php

$BASE_urlpath = "/base";
$alert_dbname   = 'snort_log';
$alert_host     = 'localhost';
$alert_port     = '';
$alert_user     = 'snortuser';
$alert_password =

En este punto, ya podemos acceder por la web:

http://server/base/

Si falta adodb, se puede instalar desde el repositorio de debian

Error loading the DB Abstraction library: from “/adodb.inc.php”

Descargar adodb  y ponerlo en una ruta accesible al servidor web:

tar -xvzf adodb518a.tgz
mv adodb5 /var/www/base/adodb
ls -la /var/www/base/adodb/

Y, editamos el fichero de configuración:grep -i dblib base_conf.php

$DBlib_path = ‘/var/www/base/adodb/’;

Finalmente, nuestro servidor ya está disponible:

http://myserver/base

Powercli – Clonar varias máquinas a la vez

Queremos clonar de forma automática un número de máquinas, con un patrón concreto. Para ello, hemos usado de powershell:

  • -Match
  • -notmatch

La autentación contra vcenter está fuera del script. Debe hacerse antes de llamarlo.

Al no tener resource pools configurados, la nueva máquina, debe dejarse en el resourcepool “Resources”. Con get-resourcepool podemos consultar cuáles tenemos disponibles en nuestra arquitectura.

# Basado en http://vmwaremine.com/2013/05/28/powercli-clone-vm/
#
# Ester Niclos Ferreras
# Last updated: 29/2/14

# PRe: connect-viserver vc

#
# SourceVM:
#
$vmlist= get-vm pattern* | WHERE   { $_.Name -notMatch “no_pattern” }

$datastore = Get-Datastore “my_datastore”
$folder = get-folder “my_folder” -Location “my_datacenter”
$respool = get-ResourcePool Resources -Location “manvmecluster”

foreach ( $sourceVM in $vmlist) {
$cloneName = $sourceVM.Name +’-clone’

#write-host $sourceVM $cloneName $datastore  $folder

if (New-VM -Name $cloneName -ResourcePool $respool -VM $sourceVM -Location $folder -Datastore $datastore -DiskStorageFormat Thin )
{“DONE”}
else
{“Something wrong with cloning”}
}

 

Openoffice: minitutoriales

 

Openoffice: Contar con varios criterios

En ocasiones, queremos contar el número de filas que contienen más de un criterio. Para estos casos, se queda corto Contar.Si. que sólo da opciones para poner un criterio.

La solución nos la da suma.producto, que ya permite seleccionar varios criterios

Openoffice: Comparación de texto a ver si una celda contiene un texto en mayúsculas o minúsculas

Para eso, podemos usar la función Hallar()

 

 

Problemas comunes con nagios

Problemas con el script de control del servicio:

> service nagios stop
Stopping nagios: kill: uso: kill [-s sigspec | -n signum | -sigspec] pid | jobspec … or kill -l [sigspec]
done.

Sustitución de la función killproc_nagios en /etc/init.d/nagios

killproc_nagios ()
{
pid_nagios
CMD=”kill $2 $NagiosPID”
echo Execute: $CMD
$CMD
}

 

Centreon nagios: Instalación centreon 2.5.0

Ya ha salido la versión estable de centreon 2.5.0. Vamos a usar un fichero answers para que no nos pregunte por todos los datos. El fichero de respuestas, está al final del tutorial.

Estamos desplegando sobre una distribución CentOS release 6.5 (Final)

wget http://download.centreon.com/centreon/centreon-2.5.0.tar.gz
tar -xvzf  centreon-2.5.0.tar.gz
./centreon-2.5.0/install.sh -f answer

Respuestas que faltan:

Where is your monitoring plugins (libexec) directory ?
default to [/usr/lib/nagios/plugins]
> /usr/lib64/nagios/plugins/
(...)
Where is your CentreonTrapd binaries directory
default to [/usr/local/centreon/bin]
/usr/local/centreon/bin

Entramos en el interfaz web:

http://server-ip/centreon/install/upgrade.php

En este caso, debemos hacer unos cambios antes de seguir en el instalador. Estamos usando ndo. Hemos intentado seguir las instrucciones que nos dan en el instalador:

If you are using NDO

  • Stop centstorage
  • Upgrade Centreon (web install)
  • Execute /path/to/centreon/bin/changeRrdDsName.pl
  • Start centstorage

No ha funcionado ninguno de los pasos:

[root@server centreon-2.5.0]# service centstorage stop
Stopping centstorage:                                      [FALLÃ]
[root@server centreon-2.5.0]# find / -name changeRrdDsName.pl
/usr/local/centreon/bin/changeRrdDsName.pl
[root@server centreon-2.5.0]# /usr/local/centreon/bin/changeRrdDsName.pl
Can't call method "prepare" on an undefined value at /usr/local/centreon/bin/changeRrdDsName.pl line 61.

Tras la instalación, hemos tenido un problema con el fichero sudoers:

Central

sudo: no tty present and no askpass program specified

Verificar el fichero sudoers:

[root@servercentreon-2.5.0]# cat /etc/sudoers | grep -i centreon
## BEGIN: CENTREON SUDO
#Add by CENTREON installation script
User_Alias      CENTREON=apache,centreon
Defaults:CENTREON !requiretty
CENTREON   ALL = NOPASSWD: /etc/init.d/nagios* restart
CENTREON   ALL = NOPASSWD: /etc/init.d/nagios restart
CENTREON   ALL = NOPASSWD: /etc/init.d/nagios* reload
CENTREON   ALL = NOPASSWD: /etc/init.d/nagios reload
CENTREON   ALL = NOPASSWD: /etc/init.d/nagios* force-reload
CENTREON   ALL = NOPASSWD: /etc/init.d/nagios force-reload
CENTREON   ALL = NOPASSWD: /usr/sbin/nagios* -v *
CENTREON   ALL = NOPASSWD: /usr/sbin/nagios -v *
CENTREON   ALL = NOPASSWD: /usr/sbin/nagios* -s *
CENTREON   ALL = NOPASSWD: /usr/sbin/nagios -s *
CENTREON   ALL = NOPASSWD: /etc/init.d/snmptrapd restart
# Centreontrapd restart
CENTREON   ALL = NOPASSWD: /etc/init.d/centreontrapd restart
# Centreontrapd reload
CENTREON   ALL = NOPASSWD: /etc/init.d/centreontrapd reload
CENTREON   ALL = NOPASSWD: /etc/init.d/centstorage restart
CENTREON   ALL = NOPASSWD: /etc/init.d/centstorage stop
CENTREON   ALL = NOPASSWD: /etc/init.d/centstorage start
CENTREON   ALL = NOPASSWD: /etc/init.d/ndoutils* restart
CENTREON   ALL = NOPASSWD: /etc/init.d/ndoutils restart
CENTREON   ALL = NOPASSWD: /etc/init.d/ndoutils* reload
CENTREON   ALL = NOPASSWD: /etc/init.d/ndoutils reload
## END: CENTREON SUDO

 

Enlace entre /usr/sbin/nagios y  /usr/bin/nagios

ln -s /usr/sbin/nagios  /usr/bin/nagios

Verificar el usuario de /etc/nagios:

chown -R apache:centreon /etc/nagios/

 

Anexo: Ficheros answers.txt

## CentWeb: Web front Centreon for Nagios
PROCESS_CENTREON_WWW=1
## CentStorage: Log and charts archiving.
PROCESS_CENTSTORAGE=1
## CentCore: Distributed Monitoring engine.
PROCESS_CENTCORE=1
## CentPlugins: Centreon Plugins for nagios
PROCESS_CENTREON_PLUGINS=1
## CentTraps: Centreon Snmp traps process for nagios
PROCESS_CENTREON_SNMP_TRAPS=1
#####################################################################
## Begin: Default variables
#####################################################################
## Your default variables
## $BASE_DIR is the centreon source directory
LOG_DIR=”$BASE_DIR/log”
LOG_FILE=”$LOG_DIR/install_centreon.log”
## Don’t change values above unless you perfectly understand
## what you are doing.
## Centreon temporary directory to work
TMP_DIR=”/tmp/centreon-setup”
## default snmp config directory
SNMP_ETC=”/etc/snmp/”
## a list of pear modules require by Centreon
PEAR_MODULES_LIST=”pear.lst”
PEAR_PATH=”/usr/share/pear”
NAGIOS_PLUGINS=”/usr/lib64/nagios/plugins”
#####################################################################
## End: Default variables
##################################################################
#####################################################################
## Begin: Centreon preferences
#####################################################################
## Above variables are necessary to run a silent install
## Where you want to install Centreon (Centreon root directory)
INSTALL_DIR_CENTREON=”/usr/local/centreon”
## Centreon log files directory
CENTREON_LOG=”/usr/local/centreon/log”
## Centreon config files
CENTREON_ETC=”/etc/centreon”
## Where is your Centreon binaries directory ?
CENTREON_BINDIR=”/usr/local/centreon/bin”
## Where is your Centreon data informations directory ?
CENTREON_DATADIR=”/usr/local/centreon/data”
## Centreon generation config directory
##  filesGeneration and filesUpload
## Where is your Centreon generation_files directory ?
CENTREON_GENDIR=”/usr/local/centreon”
## libraries temporary files directory
## Where is your Centreon variable library directory ?
CENTREON_VARLIB=”/var/lib/centreon”
## Where is your CentPlugins Traps binary?
CENTPLUGINSTRAPS_BINDIR=”/usr/local/centreon/bin”
## Where is the RRD perl module installed [RRDs.pm]
## ATTENTION: ON x64 SYSTEMS THE PATH IS LIB64 INSTEAD OF LIB
##               vv
RRD_PERL=”/usr/lib64/perl5″
## What is the Centreon group ?
CENTREON_GROUP=”centreon”
## What is the Centreon user ?
CENTREON_USER=”centreon”
## What is the Monitoring engine user ?
MONITORINGENGINE_USER=”nagios”
## What is the Monitoring engine group ?
MONITORINGENGINE_GROUP=”nagios”
## What is the Monitoring engine log directory ?
MONITORINGENGINE_LOG=”/var/log/nagios”
## Where is your monitoring plugins (libexec) directory ?
PLUGIN_DIR=”/usr/local/nagios/libexec”
## Path to sudoers file (optional)
## Where is sudo configuration file
SUDO_FILE=”/etc/sudoers”
## What is the Monitoring engine init.d script ?
MONITORINGENGINE_INIT_SCRIPT=”/etc/init.d/nagios”
## What is the Monitoring engine binary ?
MONITORINGENGINE_BINARY=”/usr/sbin/nagios”
## What is the Monitoring engine configuration directory ?
MONITORINGENGINE_ETC=”/etc/nagios”
## Where is the configuration directory for broker module ?
BROKER_ETC=”/etc/nagios”
## Where is the init script for broker module daemon ?
BROKER_INIT_SCRIPT=”/etc/init.d/ndoutils”
## Do you want me to configure your sudo ? (WARNING)
FORCE_SUDO_CONF=1
#####################################################################
## Begin: Apache preferences
#####################################################################
## Apache configuration directory (optional)
#DIR_APACHE=”/etc/apache”
## Apache local specific configuration directory (optional)
## Do you want to update Centreon Apache sub configuration file ?
# DIR_APACHE_CONF=”/etc/apache/conf.d”
## Apache configuration file. Only file name. (optional)
#APACHE_CONF=”apache.conf”
## Apache user (optional)
WEB_USER=”apache”
## Apache group (optional)
WEB_GROUP=”apache”
## Force apache reload (optional): set APACHE_RELOAD to 1
## Do you want to reload your Apache ?
APACHE_RELOAD=1
#####################################################################
## End: Apache preferences
#####################################################################
## Do you want me to install/upgrade your PEAR modules
PEAR_AUTOINST=1
## Centreon run dir (all .pid, .run, .lock)
## Where is your Centreon Run Dir directory?
CENTREON_RUNDIR=”/var/run/centreon”
## path to centstorage binary
## Where is your CentStorage binary directory
CENTSTORAGE_BINDIR=”/usr/local/centreon/bin”
## CentStorage RRDs directory (where .rrd files go)
## Where is your CentStorage RRD directory
CENTSTORAGE_RRD=”/var/lib/centreon”
## Do you want me to install CentStorage init script ?
CENTSTORAGE_INSTALL_INIT=1
## Do you want me to install CentStorage run level ?
CENTSTORAGE_INSTALL_RUNLVL=1
## path to centcore binary
CENTCORE_BINDIR=”usr/local/centreon/bin”
## force install init script (install in init.d)
## Set to “1” to enable
## Do you want me to install CentCore init script ?
CENTCORE_INSTALL_INIT=1
## force install run level for init script (add all link on rcX.d)
## Set to “1” to enable
## Do you want me to install CentCore run level
CENTCORE_INSTALL_RUNLVL=1
## Some plugins require temporary datas to process output.
## These temp datas are store in the CENTPLUGINS_TMP path.
## Where is your CentPlugins lib directory
CENTPLUGINS_TMP=”/var/lib/centreon/centplugins”
## path for snmptt installation
SNMPTT_BINDIR=”/usr/local/centreon/bin/”
## What is the Broker user ? (optional)
BROKER_USER=$MONITORINGENGINE_USER
## Nagios user (optional)
NAGIOS_USER=”nagios”
## Nagios group (optional)
NAGIOS_GROUP=”nagios”
## Centreon Connector PATH
## Mail (optional)
BIN_MAIL=”/bin/mail”
##

 

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