Servidor syslog centralizado debian jessie

Desde hace tiempo, me gusta centralizar los logs en una sola máquina…. por ejemplo, donde tengo el nagios.

la máquina base es una debian jessie pelada y instalamos el syslog-ng:

apt-get install syslog-ng

Y ahora modificamos el fichero /etc/syslog-ng/syslog-ng.conf

options { chain_hostnames(yes); flush_lines(0); use_dns(no); use_fqdn(no);
owner("root"); group("adm"); perm(0640); stats_freq(0);
create_dirs(yes); bad_hostname("^gconfd$");
};

########################
# Sources
########################
# This is the default behavior of sysklogd package
# Logs may come from unix stream, but not from another machine.
#
source s_src {
system();
internal();
};

# If you wish to get logs from remote machine you should uncomment
# this and comment the above source line.
#
#source s_net { tcp(ip(127.0.0.1) port(1000)); };

source syslog_udp {
udp(port(514));
};

.
.
.
.
.
# Debian only
destination d_ppp { file("/var/log/ppp.log"); };

# Destí logs Mikrotiks
destination clientslogs {
file("/var/log/logscraem/$YEAR$MONTH$DAY/$HOST.auth");
};

.
.
.
.
log {
source(syslog_udp);
destination(clientslogs);
};

Nos crearemos un directorio por día y un fichero por dispositivo.

Reiniciamos el syslog-ng y listo.

Upgrade zarafa 7.2.x a 7.2.4.29

Otra entrada que es un apunte.

Hace dos años aprox, actualicé mi server de correo zarafa a a 7.2 Beta, por unos problemas con la 7.2.1 y allí se quedó.

Hace unos meses, decidí volver a actualizar el server… prefiero actualizar el zarafa, ya que instalar de nuevo y migrar el sql / certificado, es muy pesado.

Primero de todo, descargamos la última versión disponible:

cd /usr/src

wget -c https://download.zarafa.com/community/final/7.2/7.2.4.29/zcp-7.2.4.29-debian-7.0-x86_64-opensource.tar.gz

Y extraemos los archivos:

# tar -zxvf zcp-7.2.4.29-debian-7.0-x86_64-opensource.tar.gz
# cd zcp-7.2.4.29-debian-7.0-x86_64-opensource

Ahora empieza el follón……

Primero de todo, nos hacemos una copia de todos los ficheros situados en:

/etc/zarafa
/usr/share/zarafa-webaccess/

Y ahora vamos a actualizar de la siguiente manera:

dpkg --auto-deconfigure -i *.deb

Dará bastantes errores, pero seguimos adelante cuando acabe el dpkg y corregimos los errores de dependencias:

#apt-get -f install
#dpkg --auto-deconfigure -i *.deb

Ahora reestablecemos los ficheros de la copia de seguridad en /usr/share/zarafa-webaccess y modificamos el seguiente fichero:

root@zeus:/etc/zarafa# nano dagent.cfg

Y cambiamos las siguientes líneas:

server_socket = file:///var/run/zarafa

Y ahora en server.cfg

root@zeus:/etc/zarafa# nano server.cfg

Y cambiamos la línea:

local_admin_users = root vmail zarafa

Reiniciamos los servicios de zarafa/apache y listo.

iwlist + ngrep debian

Otro apunte.

para ver de un vistazo las redes inalámbricas que tenemos a nuestro alcance y la potencia, podemos usar el comando iwlist, pero nos muestra quizás demasiados parámetros….. si queremos ver si solapamos canales, podemos usar nuestro amigo grep.


# iwlist wlan0 scanning | grep "ESSID\|Frequency\|Quality"

Y el resultado debe ser, algo similar a:


Frequency:2.412 GHz (Channel 1)
Quality=23/70 Signal level=-87 dBm
ESSID:"xxxxx"
Frequency:2.462 GHz (Channel 11)
Quality=22/70 Signal level=-88 dBm
ESSID:"xxxxx"
Frequency:2.467 GHz (Channel 12)
Quality=39/70 Signal level=-71 dBm
ESSID:"xxxxx"
Frequency:2.462 GHz (Channel 11)
Quality=32/70 Signal level=-78 dBm
ESSID:"xxxxxx"

usando “|” con grep, podemos especificar algo para filtrar, pero si tenemos que filtrar por varios, deberemos usar:


iwlist wlan0 scanning | grep "$EXPRESION1 \|$EXPRESION2 \|$EXPRESION'N' \"

🙂 Sencillo

Wake On Lan Raspberry Pi raspbian

Estos días, he tenido la necesidad de encender algún pc en remoto, mediante wake on Lan y aprovechando que tenía una raspberry Pi, decidí meterle mano.

Primero de todo, decir que la raspberry la tengo con Raspbian, así que buscamos el paquete WakeOnLan y lo instalamos…


pi@prometheus ~ $ sudo apt-get install wakeonlan
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Los paquetes indicados a continuación se instalaron de forma automática y ya no son necesarios.
libblas3gf liblapack3gf mtools
Use 'apt-get autoremove' to remove them.
Se instalarán los siguientes paquetes NUEVOS:
wakeonlan
0 actualizados, 1 se instalarán, 0 para eliminar y 8 no actualizados.
Necesito descargar 11,5 kB de archivos.
Se utilizarán 57,3 kB de espacio de disco adicional después de esta operación.
Des:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main wakeonlan all 0.41-11 [11,5 kB]
Descargados 11,5 kB en 0seg. (18,5 kB/s)
Seleccionando el paquete wakeonlan previamente no seleccionado.
(Leyendo la base de datos ... 58698 ficheros o directorios instalados actualmente.)
Desempaquetando wakeonlan (de .../wakeonlan_0.41-11_all.deb) ...
Procesando disparadores para man-db ...
Configurando wakeonlan (0.41-11) ...

Y ahora a ver la estructura….

pi@prometheus ~ $ wakeonlan
Usage
wakeonlan [-h] [-v] [-i IP_address] [-p port] [-f file] [[hardware_address] ...]

Options
-h
this information
-v
displays the script version
-i ip_address
set the destination IP address
default: 255.255.255.255 (the limited broadcast address)
-p port
set the destination port
default: 9 (the discard port)
-f file
uses file as a source of hardware addresses

See also
wakeonlan(1)

pi@prometheus ~ $

Por lo que para enviar la órden, es tan fácil como:

pi@prometheus ~ $ wakeonlan xx:xx:xx:xx:xx:xx

Sustituimos las xx por la mac address del equipo a endender y listo 😉

Rutas estáticas fijas en debian

Otra entrada que es un apunte.

Normalmente, para añadir una ruta estática en nuestro GNU/Debian, basta con teclear en la consola:

route add -net red.de.destino.0 netmask mascara.a.poner.0 gw gateway

Por ejemplo, si queremos enrutar la red 192.168.5.0 por la 192.168.2.251, tendremos que añadir:

route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.2.251

Ahora, si la queremos hacer permanente, editaremos el fichero /etc/network/intefaces y lo dejaremos tal que:


allow-hotplug eth0
iface eth0 inet static
address 192.168.x.x
netmask 255.255.255.0
gateway 192.168.x.x
network 192.168.2.0
broadcast 192.168.2.255
dns-nameserver 192.168.x.x 192.168.x.x
dns-namesearch craem.net
post-up route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.2.251

Siendo la línea con post-up route …. la encargada en cuestión.

Enjoy your routes 😉

Freeradius + mysql en debian squeeze

Hoy toca instalar un freeradius en un cliente, para authenticar los accesos de unos hotspots Mikrotik.

Para la parte gráfica, usaremos el DaloRadius… de esta manera, no tendremos que andar con los ficheros de texto.

Suponemos que tenemos instalado ya nuestro Debian Squeeze y, vamos a instalar unos paquetes:


# aptitude install mysql-server php5 php5-mysql php5-gd php-pear php-db freeradius freeradius-mysql subversion

Creamos usuario para mysql y la bbdd para radius:


# mysql -u root -ppassword
mysql> GRANT ALL PRIVILEGES ON *.* TO 'radius'@'%' IDENTIFIED BY 'radius' WITH GRANT OPTION;
FLUSH PRIVILEGES;
mysql> create database radius;

Ahora bajamos el DaloRadius, en la carpeta /usr/src:


# cd /usr/src
# svn co https://daloradius.svn.sourceforge.net/svnroot/daloradius/trunk daloradius

Ahora movemos los directorios:


# cp daloradius/ /var/www -R
# chown www-data:www-data /var/www/daloradius -R
# chmod 644 /var/www/daloradius/library/daloradius.conf.php

Creamos la estructura de la BBDD de radius:


root@radius:/var/www/daloradius/contrib/db# mysql -u radius -pradius radius < fr2-mysql-daloradius-and-freeradius.sql

Editamos el fichero de configuración de daloRadius, para que se conecte a mysql:


# nano /var/www/daloradius/library/daloradius.conf.php

$configValues['CONFIG_DB_ENGINE'] = 'mysql';
$configValues['CONFIG_DB_HOST'] = 'localhost';
$configValues['CONFIG_DB_PORT'] = '3306';
$configValues['CONFIG_DB_USER'] = 'radius';
$configValues['CONFIG_DB_PASS'] = 'radius';
$configValues['CONFIG_DB_NAME'] = 'radius';

Ahora vamos modificando los ficheros de freeradius, para que se conecte a mysql.

En el directorio /etc/freeradius, editamos sql.conf y lo dejamos tal que:


sql {
#
# Set the database to one of:
#
# mysql, mssql, oracle, postgresql
#
database = "mysql"

#
# Which FreeRADIUS driver to use.
#
driver = "rlm_sql_${database}"

# Connection info:
server = "localhost"
#port = 3306
login = "radius"
password = "radius"

El siguiente paso, es que las consultas de usuarios, en vez de mirar en los ficheros locales, haga las consultas en las tablas de mysql. Para ello, modificaremos el fichero:


root@radius:/etc/freeradius/sites-enabled# nano default

Y modificamos:

### authorization Section
#
# Look in an SQL database. The schema of the database
# is meant to mirror the "users" file.
#
# See "Authorization Queries" in sql.conf
sql

### accounting section
#
# Log traffic to an SQL database.
#
# See "Accounting queries" in sql.conf
sql

Y en el fichero /etc/freeradius/radiusd.conf, habilitamos la parte de sql:


# Include another file that has the SQL-related configuration.
# This is another file only because it tends to be big.
#
$INCLUDE sql.conf

Por último, modificamos el fichero clients.conf, con el NAS localhost y una pass para probar .... (nas := network access server 😉 ) y lo dejamos tal que:


# -*- text -*-
##
## clients.conf -- client configuration directives
##
## $Id$

#######################################################################
#
# Define RADIUS clients (usually a NAS, Access Point, etc.).

client localhost {
ipaddr = 127.0.0.1
secret = testing123
nastype = other # localhost isn't usually a NAS...
}

Creamos ahora, desde la interfaz daloRadius, un usuario, para ello, accedemos al daloradius wía web:

http://ip.del.servidor.radius/daloradius

Y nos aparecerá algo tal que:

Usuario: administrator
pass: radius

En el apartado Management / Users , hacemos click en New User

Creamos un usuario, con su password y lo probaremos en la consola.

Paramos el servicio freeradius


# /etc/init.d/freeradius stop

Lanzamos el servicio en modo debug:


# freeradius -X

............
Module: Checking session {...} for more modules to load
Module: Checking post-proxy {...} for more modules to load
Module: Checking post-auth {...} for more modules to load
} # modules
} # server
radiusd: #### Opening IP addresses and Ports ####
listen {
type = "auth"
ipaddr = *
port = 0
}
listen {
type = "acct"
ipaddr = *
port = 0
}
listen {
type = "auth"
ipaddr = 127.0.0.1
port = 18120
}
Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on authentication address 127.0.0.1 port 18120 as server inner-tunnel
Listening on proxy address * port 1814
Ready to process requests.

Y ahora desde otra consola, hacemos una prueba con la utilidad radtest :


root@radius:~# radtest pruebas pruebas01 localhost:1812 0 testing123
Sending Access-Request of id 49 to 127.0.0.1 port 1812
User-Name = "pruebas"
User-Password = "pruebas01"
NAS-IP-Address = 127.0.1.1
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=49, length=20
root@radius:~#

Nuestros datos:

Username: pruebas
pass:pruebas01
NasKey:testing123 (lo hemos puesto en el apartado nas, anteriormente, en localhost
Puerto Radius: 1812

Y el freeradius, nos responde con:


Ready to process requests.
rad_recv: Access-Request packet from host 127.0.0.1 port 37927, id=49, length=59
User-Name = "process"
User-Password = "control10"
NAS-IP-Address = 127.0.1.1
NAS-Port = 0
# Executing section authorize from file /etc/freeradius/sites-enabled/default
+- entering group authorize {...}
++[preprocess] returns ok
++[chap] returns noop
++[mschap] returns noop
++[digest] returns noop
[suffix] No '@' in User-Name = "pruebas", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
[eap] No EAP-Message, not doing EAP
++[eap] returns noop
++[files] returns noop
[sql] expand: %{User-Name} -> pruebas
[sql] sql_set_user escaped user --> 'pruebas'
rlm_sql (sql): Reserving sql socket id: 4
[sql] expand: SELECT id, username, attribute, value, op FROM radcheck WHERE username = '%{SQL-User-Name}' ORDER BY id -> SELECT id, username, attribute, value, op FROM radcheck WHERE username = 'pruebas' ORDER BY id
[sql] User found in radcheck table
[sql] expand: SELECT id, username, attribute, value, op FROM radreply WHERE username = '%{SQL-User-Name}' ORDER BY id -> SELECT id, username, attribute, value, op FROM radreply WHERE username = 'pruebas' ORDER BY id
[sql] expand: SELECT groupname FROM radusergroup WHERE username = '%{SQL-User-Name}' ORDER BY priority -> SELECT groupname FROM radusergroup WHERE username = 'pruebas' ORDER BY priority
rlm_sql (sql): Released sql socket id: 4
++[sql] returns ok
++[expiration] returns noop
++[logintime] returns noop
++[pap] returns updated
Found Auth-Type = PAP
# Executing group from file /etc/freeradius/sites-enabled/default
+- entering group PAP {...}
[pap] login attempt with password "pruebas01"
[pap] Using clear text password "pruebas01"
[pap] User authenticated successfully
++[pap] returns ok
# Executing section post-auth from file /etc/freeradius/sites-enabled/default
+- entering group post-auth {...}
++[exec] returns noop
Sending Access-Accept of id 49 to 127.0.0.1 port 37927
Finished request 0.
Going to the next request
Waking up in 4.9 seconds.
Cleaning up request 0 ID 49 with timestamp +177
Ready to process requests.

Y vemos como hace la consulta en mysql.

Enjoy your radius 😉

OpenMeetings 2.0 debian Squeeze + asterisk. Parte 1

Hoy toca la integración de OpenMeetings con Asterisk…. un gran paso. Primero instalaremos OpenMeetings 2.0 en nuestro debian y luego, lo integraremos con Asterisk.

Álvaro (aka Greenes), colaborador habitual del proyecto (http://incubator.apache.org/openmeetings/) es el responsable del manual original, del que yo, símplemente he “copiado” aquí, en mi blog.

Partimos de la base de nuestro debian recién instalado, nos vamos al fichero /etc/apt/sources.list y añadimos al principio:

deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free
deb http://ftp.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.debian.org/debian/ squeeze main contrib non-free
deb http://ftp.debian.org/debian/ squeeze-updates main contrib non-free
deb-src http://ftp.debian.org/debian/ squeeze-updates main contrib non-free
deb http://ftp2.de.debian.org/debian squeeze main non-free
deb http://deb-multimedia.org squeeze main

Hacemos un update:

#apt-get update

Y pasado un rato, estaremos en disposición de empezar a instalar dependencias, siendo :

apt-get install sun-java6-jdk
apt-get install openoffice.org-writer openoffice.org-calc openoffice.org-impress
openoffice.org-draw openoffice.org-math imagemagick gs-gpl -y
apt-get install libgif-dev xpdf libfreetype6 libfreetype6-dev libjpeg8 libjpeg62 libjpeg8-dev
apt-get install g++ libjpeg-dev libdirectfb-dev libart-2.0-2 libt1-5 zip unzip bzip2
apt-get install subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev
apt-get install libmp3lame-dev libsdl1.2-dev libx11-dev libxfixes-dev libxvidcore4-dev zlib1g-dev
apt-get install libogg-dev sox libvorbis0a libvorbis-dev libgsm1 libgsm1-dev libfaad2 flvtool2 lame

al hacer el apt-get install sun-java6-jdk, tenemos que aceptar la licencia….. Googleando un poco en la página del proyecto, en versiones anteriores a la 2.0, funcionaba con la openJDK, pero ahora no, en fin.

Instalararemos el mysql-server + mysql-client y crearemos una BBDD para openmeetings, o usaremos otro MySQL que tengamos instalado en otro server. Entramos en el MySql en cuestión y creamos la BBDD y un usuario para tal caso, siendo openmeetings / openmeetings.

CREATE DATABASE openmeetings DEFAULT CHARACTER SET ‘utf8’;
GRANT ALL PRIVILEGES ON openmeetings.* TO ‘openmeetings’@’localhost’ IDENTIFIED BY ‘openmeetings’ WITH GRANT OPTION;

Ahora descargamos y compilamos el SWF:

wget http://www.swftools.org/swftools-2012-04-08-0857.tar.gz
tar -zxvf swftools-2012-04-08-0857.tar.gz
cd swftools-2012-04-08-0857
./configure
make
make install

Ahora toca el paquete ffmpeg:

wget http://ffmpeg.org/releases/ffmpeg-0.11.1.tar.gz
tar -zxvf ffmpeg-0.11.1.tar.gz
cd ffmpeg-0.11.1
./configure –enable-libmp3lame –enable-libxvid –enable-libvorbis –enable-libgsm –enable-libfaac –enable-gpl –enable-nonfree
make
checkinstall

Ahora seguimos con el JOD converter:

wget http://jodconverter.googlecode.com/files/jodconverter-core-3.0-beta-4-dist.zip
unzip jodconverter-core-3.0-beta-4-dist.zip

Y seguimos con ANT, pero usaremos la versión 1.8.4 para compilar openMeetings

wget http://mirror.catn.com/pub/apache//ant/binaries/apache-ant-1.8.4-bin.tar.gz
tar -zxvf apache-ant-1.8.4-bin.tar.gz

Y ahora descargamos openmeetings:

# svn checkout http://svn.apache.org/repos/asf/incubator/openmeetings/branches/2.0/

Y lo compilamos:

# cd /usr/adm/2.0
# /usr/adm/apache-ant-1.8.4/bin/ant clean.all
# /usr/adm/apache-ant-1.8.4/bin/ant -Ddb=mysql

Una vez compilado (tardará un buen rato), lo movemos a su ubicación correcta:

# cd /usr/adm/2.0/dist
# mv red5/ /usr/lib/

Movemos de sitio el JOD converter, a la carpeta de OM

cp -R /usr/adm/jodconverter-core-3.0-beta-4 /usr/lib/red5/webapps/openmeetings

Y cambiamos unos permisos:

# chown -R nobody /usr/lib/red5
# chmod +x /usr/lib/red5/red5.sh
# chmod +x /usr/lib/red5/red5-debug.sh

Y creamos el script para controlar red5:

# nano /etc/init.d/red5

Y hacemos copy & paste de lo siguiente…. (Gracias a Álvaro por modificar el script)

#! /bin/sh
### BEGIN INIT INFO
# Provides: red5
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts red5 server for Openmeetings.
# OpenMeetings 2.X Installation on Debian 64bit Squeeze
# Stephen Cottham 29/07/2012
### END INIT INFO
# For RedHat and cousins:
# chkconfig: 2345 85 85
# description: Red5 flash streaming server for OpenMeetings
# processname: red5
# Created By: Sohail Riaz (sohaileo@gmail.com)
# Modified by Alvaro Bustos
PROG=red5
RED5_HOME=/usr/lib/red5
DAEMON=$RED5_HOME/$PROG.sh
PIDFILE=/var/run/$PROG.pid
[ -r /etc/sysconfig/red5 ] && . /etc/sysconfig/red5
RETVAL=0
case “$1” in
start)
cd $RED5_HOME
start-stop-daemon –start -c nobody –pidfile $PIDFILE
–chdir $RED5_HOME –background –make-pidfile
–exec $DAEMON >/dev/null 2>/dev/null &
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo $! > $PIDFILE
fi
echo
;;
stop)
start-stop-daemon –stop –quiet –pidfile $PIDFILE
–name java
rm -f $PIDFILE
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$PROG
;;
restart|force-reload)
$0 stop
$0 start
;;
status)
# Debian and Ubuntu 10 status check
ps aux | grep -f $PIDFILE >/dev/null 2>/dev/null && RETVAL=0 || RETVAL=3
# Ubuntu 12 status check using improved “start-stop-daemon” status query
# (use the above command, or comment out above command and uncomment the two below commands.
# start-stop-daemon –status –pidfile $PIDFILE
# RETVAL=$?
[ $RETVAL -eq 0 ] && echo “$PROG is running”
[ $RETVAL -eq 1 ] && echo “$PROG is not running and the pid file exists”
[ $RETVAL -eq 3 ] && echo “$PROG is not running”
[ $RETVAL -eq 4 ] && echo “$PROG – unable to determine status”
;;
checkports)
netstat -anp | grep soffice
netstat -anp | grep java
;;
*)
echo $”Usage: $0 {start|stop|restart|force-reload|status|checkports}”
RETVAL=1
esac
exit $RETVAL

Seteamos permisos para que pueda ejecutarse:

chmod +x /etc/init.d/red5
update-rc.d red5 defaults

Hacemos backup del fichero persistence.xml, por si las moscas:

mv /usr/lib/red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml
/usr/lib/red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml-ori

Y ahora renombramos para habilitar el template de mysql:

# mv /usr/lib/red5/webapps/openmeetings/WEB-INF/classes/META-INF/mysql_persistence.xml
/usr/lib/red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

#mv /usr/lib/red5/webapps/openmeetings/WEB-INF/classes/META-INF/mysql_persistence.xml
/usr/lib/red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

Ahora editamos el fichero y cambiamos los datos de acceso mysql

, TestOnBorrow=true
, poolPreparedStatements=true
, Username=openmeetings
, Password=openmeetings”/>

Y iniciamos red5

# /etc/init.d/red5 start

Y si todo ha ido bien, empezaremos a configurarlo, accediendo a la web:

http://ip.del.web.server:5080/openmeetings/install

Rellenamos el user / pass:

Username: admin
Userpass: password
EMail: admin@dominio.com
User Time Zone: spain
Organisation(Domains) craem.net

Y al final de la hoja, le damos al botón de install. Esperamos un poco y ya tenemos la primera parte lista.

Instalando nagios 3 en Debian 6

Otro apunte, para instalar nagios3 en una Debian.

Primero, instalamos unas dependencias básicas:


#aptitude install build-essential gcc libgd2-xpm-dev libglib2.0-dev apache2

Creeamos usuario y grupo:


# /usr/sbin/useradd nagios
# passwd nagios
# /usr/sbin/groupadd nagcmd
#/usr/sbin/usermod -G nagcmd nagios
# /usr/sbin/usermod -G nagcmd www-data

Ahora instalamos unas dependencias básicas:


root@nagios:~# apt-get install apache2 mc libapache2-mod-php5 php5-cli php5-common php5-cgi php5-gd
root@nagios:~# aptitude install build-essential gcc libgd2-xpm-dev libglib2.0-dev apache2
root@nagios:~# apt-get install php5-cli php5-common php5-gd
root@nagios:~# apt-get install libjpeg62 libjpeg62-dev libpng12-0 libpng12-dev
root@nagios:~# apt-get install php5-cli php5-common php5-gd php-pear
root@nagios:~# apt-get install ssh apache2 libapache2-mod-php5 php5-cli php5-common php5-cgi php5-gd -qy bison flex libncurses5-dev zlib1g-dev libssl-dev libnewt-dev libiksemel-dev -qy make linux-headers-`uname -r` gcc g++ libstdc++6 mysql-client mysql-server phpmyadmin linux-headers-`uname -r` bison openssl libssl-dev libeditline0 libeditline-dev libedit-dev gcc make g++ php5-cli mysql-common libmysqlclient15-dev libnewt-dev libmysqlclient15-dev libnewt-dev

Y reiniciamos apache2:


root@nagios:~# /etc/init.d/apache2 restart

Y seguimos añadiendo usuarios y grupos :


root@nagios:~# /usr/sbin/useradd nagios
root@nagios:~# passwd nagios
root@nagios:~# /usr/sbin/groupadd nagcmd
root@nagios:~# /usr/sbin/usermod -G nagcmd nagios
root@nagios:~# /usr/sbin/usermod -G nagcmd www-data

Ahora descargamos el nagios en /usr/src y creamos un directorio para ello y lo descomprimimos:


root@nagios:~# cd /usr/src/
root@nagios:~# mkdir nagios
root@nagios:~# cd nagios/
root@nagios:~# wget -c http://sourceforge.net/projects/nagios/files/nagios-3.x/nagios-3.4.1/nagios-3.4.1.tar.gz/download
root@nagios:~# tar -zxvf nagios-3.4.1.tar.gz
root@nagios:~# wget -c http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.15/nagios-plugins-1.4.15.tar.gz/download
root@nagios:~# tar -zxvf nagios-plugins-1.4.15.tar.gz

Y ahora a compilar:


root@nagios:/usr/src/nagios# ./configure --with-command-group=nagcmd
root@nagios:/usr/src/nagios# make all
root@nagios:/usr/src/nagios# make install
root@nagios:/usr/src/nagios# make install-init
root@nagios:/usr/src/nagios# make install-config
root@nagios:/usr/src/nagios# make install-commandmode
root@nagios:/usr/src/nagios# make install-webconf

Creamos el usuario para el acceso web:


root@nagios:/usr/src/nagios# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Y ahora toca el nagios-plugins


root@nagios:/usr/src/nagios# cd nagios-plugins-1.4.15/
root@nagios:/usr/src/nagios/nagios-plugins-1.4.15# ./configure --with-nagios-user=nagios --with-nagios-group=nagcmd
root@nagios:/usr/src/nagios# make
root@nagios:/usr/src/nagios# make install

Ahora instalamos la parte para que envíe las notificaciones:


root@nagios:/usr/local/nagios/share# apt-get remove exim4 exim4-config
root@nagios:/usr/local/nagios/share# apt-get install postfix postfix-doc

Y configuramos el main.cf de postfix, tal que:


myhostname = nagios.dominio.local
mydomain = dominio.local
myorgin = $mydomain
masquerade_domain = $mydomain
mydestination = $myhostname, localhost.$mydomain, $mydomain
mynetwork_style = host
##########################################################
mynetworks = 192.168.0.0/16
relay_domains = dominio.local
transport_maps = hash:/etc/postfix/transport

bounce_notice_recipient = email@dominio.com
delay_notice_recipient = email@dominio.com
2bounce_notice_recipient = email@dominio.com
error_notice_recipient = email@dominio.com
default_destination_concurrency_limit = 10
smtpd_recipient_limit = 100
maximal_queue_lifetime = 1d
fallback_relay =
smtp_destination_recipient_limit = 200
smtp_destination_concurrency_limit = 10
message_size_limit = 5240000
append_at_myorigin = yes
append_dot_mydomain = no
swap_bangpath = no

Y reiniciamos postfix:


root@nagios:/etc/postfix# /etc/init.d/postfix restart
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
root@nagios:/etc/postfix#

Y ahora toca configurar plugins y resto de cosillas.

Enjoy your nagios 🙂

OpenMeetings openLdap Backend

Hoy toca configurar el openMeetings contra el openLdap.

Suponemos que:

– nuestro dominio ldap es craem.net.
– El usuario de lectura es openmeetings y password openmeetings.
– los usuarios los tenemos en la ou usuarios.
– Nuestro servidor ldap es: ldap.craem.net

Editamos el fichero:

/usr/lib/red5/webapps/openmeetings/conf/om_ldap.cfg

Y lo dejamos tal que:

# en nuestro caso es openLdap, con AD de micro$oft no acaba de ir bien
ldap_server_type=OpenLDAP
# la url de nuestro servidor
ldap_conn_url=ldap://ldap.craem.net:389
# la sintaxis es diferente, en vez del = es :
ldap_admin_dn=CN:openmeetings,DC:craem,DC:net
ldap_passwd=openmeetings
# ou donde buscamos los usuarios
ldap_search_base=CN:usuarios,DC:craem,DC:net
field_user_principal=uid
ldap_auth_type=SIMPLE
# sincronizamos los usuarios / pass, con la bbdd de openmeetings
ldap_sync_password_to_om=yes
# Ldap user attributes mapping
# Set the following internal OM user attributes to their corresponding Ldap-attribute
ldap_user_attr_lastname=sn
ldap_user_attr_firstname=givenName
ldap_user_attr_mail=mail
ldap_user_attr_street=streetAddress
ldap_user_attr_additionalname=description
ldap_user_attr_fax=facsimileTelephoneNumber
ldap_user_attr_zip=postalCode
ldap_user_attr_country=co
ldap_user_attr_town=l
ldap_user_attr_phone=telephoneNumber

Entramos como administrador al openmeetings y en la pestaña administration y ldap, ponemos el fichero que acabamos de modificar, tal que:

OpenMeetings OpenLDAP backend

Enjoy 😉

Instalando OwnCloud en Debian Squeeze

Otro apunte para tener nuestra propia nube con el fantástico producto openSource, OwnCloud.

Instalamos los paquetes básicos en nuestro debian:

# apt-get install apache2 php5 php-pear php-xml-parser php5-sqlite php5-json sqlite php5-mysql mp3info curl libcurl3 libcurl3-dev php5-curl zip php5-gd

Ahora, para poder abrir los .tar.bz2:

# apt-get install bzip2

Y descargamos OwnCloud:

# cd /usr/src
# wget -c http://download.owncloud.org/releases/owncloud-4.0.4.tar.bz2
# tar xvf owncloud-4.0.4.tar.bz2
# mv owncloud /var/www/owncloud

Ahora modificamos los permisos de la carpeta /var/www/owncloud :

# chown -R www-data:www-data /var/www/owncloud

Reiniciamos apache:

# /etc/init.d/apache2 restart

Ahora, iniciamos nuestro navegador y finalizamos la instalación:

Ponemos un nombre de usuario + password y le damos al botón de completar la instalación. Elegimos SqlLite o MySQl y el directorio de instalación, en nuestro caso /var/www/owncloud

Y ya tenemos nuestra propia nube instalada 😉