1. dmesg | head -1
2. cat /proc/version
3. cat /etc/issue
4. egrep '^title' /boot/grub/menu.lst
"El éxito es la habilidad de ir de fallo en fallo sin perder el entusiasmo." ¿Sir Winston Churchill?
16 junio 2006
Integración Jabber vs Nagios
1. Script en perl de jabber para integrarlo con nagios.
########################################################
#!/usr/bin/perl
#
# Author David Cox
# Created from various code examples found on the web
# Last Modified 08/06/2002
# Feel free to use or modify as needed to suit your needs
#######################################################
# MAXWAIT is used because the send message function didn't seem to
# like being called to fast. The message would be sent unless I waited a second
# or so. You can experiment with it but I just went with 2 seconds.
#######################################################
use strict;
use Net::Jabber qw(Client) ;
use Net::Jabber qw(Message) ;
use Net::Jabber qw(Protocol) ;
use Net::Jabber qw(Presence) ;
my $len = scalar @ARGV;
if ($len ne 2) {
die "Usage...\n notify [jabberid] [message]\n";
}
my @field=split(/,/,$ARGV[0]);
use constant RECIPIENT => $ARGV[0];
use constant SERVER => 'icaro.cti.es';
use constant PORT => 5222;
use constant USER => 'nagios';
use constant PASSWORD => 'ShJRRUQg';
use constant RESOURCE => 'resource';
use constant MESSAGE => $ARGV[1];
use constant MAXWAIT => 2 ;
my $connection = Net::Jabber::Client->new();
$connection->Connect( "hostname" => SERVER,"port" => PORT ) or die
"Cannot connect ($!)\n";
my @result = $connection->AuthSend( "username" => USER,"password" =>
PASSWORD,"resource" => RESOURCE );
if ($result[0] ne "ok") {
die "Ident/Auth with server failed: $result[0] - $result[1]\n";
}
foreach ( @field ) {
my $message = Net::Jabber::Message->new();
$message->SetMessage( "to" => $_,
"subject" => "Notification",
"type" => "chat",
"body" => MESSAGE);
$connection->Send($message);
sleep(MAXWAIT);
}
$connection->Disconnect();
exit;
######################################################
2. Paquetes de perl necesarios para que funcione;
-Authen-SASL-2.10
-Digest-HMAC-1.01
-Net-Jabber-2.0
-Net-XMPP-1.0
-XML-Stream-1.22
3. Modificaciones para integrarlo en nagios.
Modificar el archivo miscommands.cfg para añadir estas lineas:
# 'notify-by-jabber' command definition
define command{
command_name notify-by-jabber
command_line /usr/bin/perl /path/to/jabber/jabber-monitor.pl nagios@jabber_server.com "$HOSTSTATE$ alert for $HOSTNAME$!"
}
y
# 'host-notify-by-jabber' command definition
define command{
command_name host-notify-by-jabber
command_line /usr/bin/perl /path/to/jabber/jabber-monitor.pl nagios@jabber_server.com "$HOSTSTATE$ alert for $HOSTNAME$!"
}
Reiniciamos el servicio nagios.
Añadimos en nuestra cuenta el contacto nagios@jabber_server.com
NOTA: Usuario, host y password son de test, no válidos.
########################################################
#!/usr/bin/perl
#
# Author David Cox
# Created from various code examples found on the web
# Last Modified 08/06/2002
# Feel free to use or modify as needed to suit your needs
#######################################################
# MAXWAIT is used because the send message function didn't seem to
# like being called to fast. The message would be sent unless I waited a second
# or so. You can experiment with it but I just went with 2 seconds.
#######################################################
use strict;
use Net::Jabber qw(Client) ;
use Net::Jabber qw(Message) ;
use Net::Jabber qw(Protocol) ;
use Net::Jabber qw(Presence) ;
my $len = scalar @ARGV;
if ($len ne 2) {
die "Usage...\n notify [jabberid] [message]\n";
}
my @field=split(/,/,$ARGV[0]);
use constant RECIPIENT => $ARGV[0];
use constant SERVER => 'icaro.cti.es';
use constant PORT => 5222;
use constant USER => 'nagios';
use constant PASSWORD => 'ShJRRUQg';
use constant RESOURCE => 'resource';
use constant MESSAGE => $ARGV[1];
use constant MAXWAIT => 2 ;
my $connection = Net::Jabber::Client->new();
$connection->Connect( "hostname" => SERVER,"port" => PORT ) or die
"Cannot connect ($!)\n";
my @result = $connection->AuthSend( "username" => USER,"password" =>
PASSWORD,"resource" => RESOURCE );
if ($result[0] ne "ok") {
die "Ident/Auth with server failed: $result[0] - $result[1]\n";
}
foreach ( @field ) {
my $message = Net::Jabber::Message->new();
$message->SetMessage( "to" => $_,
"subject" => "Notification",
"type" => "chat",
"body" => MESSAGE);
$connection->Send($message);
sleep(MAXWAIT);
}
$connection->Disconnect();
exit;
######################################################
2. Paquetes de perl necesarios para que funcione;
-Authen-SASL-2.10
-Digest-HMAC-1.01
-Net-Jabber-2.0
-Net-XMPP-1.0
-XML-Stream-1.22
3. Modificaciones para integrarlo en nagios.
Modificar el archivo miscommands.cfg para añadir estas lineas:
# 'notify-by-jabber' command definition
define command{
command_name notify-by-jabber
command_line /usr/bin/perl /path/to/jabber/jabber-monitor.pl nagios@jabber_server.com "$HOSTSTATE$ alert for $HOSTNAME$!"
}
y
# 'host-notify-by-jabber' command definition
define command{
command_name host-notify-by-jabber
command_line /usr/bin/perl /path/to/jabber/jabber-monitor.pl nagios@jabber_server.com "$HOSTSTATE$ alert for $HOSTNAME$!"
}
Reiniciamos el servicio nagios.
Añadimos en nuestra cuenta el contacto nagios@jabber_server.com
NOTA: Usuario, host y password son de test, no válidos.
13 junio 2006
Script de creación de perfil movil para equipos
Situación: En el PDC tenemos las imagenes de los diferentes perfiles creados, ejemplo
aula de audiovisuales "aulaaudio", es un directorio con todo el perfil.
Lo que tenemos que hacer para que al iniciar sesión en el dominio cargue el perfil correspondiente, es crean un enlace de el equipo a dicho perfil, y crear un directorio con el nombre de el equipo y la extensión .pds.
----script-----
[root@pdc profiles]# cat make_link.sh
#!/bin/sh
IP_LINK=$1
PATH_PROFILES=/usr/local/samba/profiles/
PROFILE_BASE=$2
IP_HOST=$1
PDS_HOST=$IP_HOST".pds"
if [ $# != 2 ]
then
echo Uso: "make_link.sh "
exit 1
fi
if [ -L $PATH_PROFILES$1 ]
then
echo "$1 ya esta linkado"
exit 1
else
ln -s $PATH_PROFILES$PROFILE_BASE $PATH_PROFILES$IP_HOST
echo "link $IP_HOST creado."
fi
if [ -d $PATH_PROFILES$PDS_HOST ]
then
echo "$PDS_HOST ya existe"
exit 1
else
mkdir $PATH_PROFILES$PDS_HOST
echo "Dir $PDS_HOST creado."
fi
----end script-----
Con este script no tenemos más que ejecutar lo siguiente para
generar un perfil para ese equipo.
[root@pdc root]#sh make_link.sh x.x.x.x perfil_a_cargar
aula de audiovisuales "aulaaudio", es un directorio con todo el perfil.
Lo que tenemos que hacer para que al iniciar sesión en el dominio cargue el perfil correspondiente, es crean un enlace de el equipo a dicho perfil, y crear un directorio con el nombre de el equipo y la extensión .pds.
----script-----
[root@pdc profiles]# cat make_link.sh
#!/bin/sh
IP_LINK=$1
PATH_PROFILES=/usr/local/samba/profiles/
PROFILE_BASE=$2
IP_HOST=$1
PDS_HOST=$IP_HOST".pds"
if [ $# != 2 ]
then
echo Uso: "make_link.sh
exit 1
fi
if [ -L $PATH_PROFILES$1 ]
then
echo "$1 ya esta linkado"
exit 1
else
ln -s $PATH_PROFILES$PROFILE_BASE $PATH_PROFILES$IP_HOST
echo "link $IP_HOST creado."
fi
if [ -d $PATH_PROFILES$PDS_HOST ]
then
echo "$PDS_HOST ya existe"
exit 1
else
mkdir $PATH_PROFILES$PDS_HOST
echo "Dir $PDS_HOST creado."
fi
----end script-----
Con este script no tenemos más que ejecutar lo siguiente para
generar un perfil para ese equipo.
[root@pdc root]#sh make_link.sh x.x.x.x perfil_a_cargar
19 mayo 2006
SSH con clave pública
1.Generamos la clave.
[root@stanis .ssh]# ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
6f:f8:9d:83:2f:bc:e6:f8:4a:bd:a3:6a:32:f8:3c:4a root@stanis
Nos genera dos ficheros.
[root@stanis .ssh]# ll
total 12
-rw------- 1 root root 668 May 19 15:58 id_dsa
-rw-r--r-- 1 root root 613 May 19 15:58 id_dsa.pub
2.Adaptamos formatos de claves
[root@stanis .ssh]# ssh-keygen -e -f id_dsa.pub > id_dsa_ssh2.pub
Ahora tenemos
[root@stanis .ssh]# ll
total 16
-rw------- 1 root root 668 May 19 16:15 id_dsa
-rw-r--r-- 1 root root 613 May 19 16:15 id_dsa.pub
-rw-r--r-- 1 root root 726 May 19 16:15 id_dsa_ssh2.pub
3.Creamos el fichero que indicará al servidor cual es la clave.
[root@stanis .ssh]# echo "key id_dsa_ssh2.pub" > authorization
[root@stanis .ssh]# ll
total 20
-rw-r--r-- 1 root root 20 May 19 16:18 authorization
-rw------- 1 root root 668 May 19 16:15 id_dsa
-rw-r--r-- 1 root root 613 May 19 16:15 id_dsa.pub
-rw-r--r-- 1 root root 726 May 19 16:15 id_dsa_ssh2.pub
4.Conectamos via sftp al servidor que nos permitirá entrar con la clave pública.
[root@stanis .ssh]# sftp stanis@servidor
(obviamente tendremos que tener cuenta en este servidor)
5.Creamos directorio
sftp> mkdir .ssh2
Vamos a él
sftp> cd .ssh2
6.Subimos el archivo que hemos creado antes y la clave pública.
sftp> put authorization
Uploading authorization to /.ssh2/authorization
authorization 100% 20 0.0KB/s 00:00
sftp> put id_dsa_ssh2.pub
Uploading id_dsa_ssh2.pub to /.ssh2/id_dsa_ssh2.pub
id_dsa_ssh2.pub 100% 726 0.7KB/s 00:00
7.Salimos
sftp> exit
8.Y probamos a conectar
[root@stanis .ssh]# ssh stanis@servidor
No mail.
-bash-2.05b$
Perfecto!, clave pública configurada.
[root@stanis .ssh]# ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
6f:f8:9d:83:2f:bc:e6:f8:4a:bd:a3:6a:32:f8:3c:4a root@stanis
Nos genera dos ficheros.
[root@stanis .ssh]# ll
total 12
-rw------- 1 root root 668 May 19 15:58 id_dsa
-rw-r--r-- 1 root root 613 May 19 15:58 id_dsa.pub
2.Adaptamos formatos de claves
[root@stanis .ssh]# ssh-keygen -e -f id_dsa.pub > id_dsa_ssh2.pub
Ahora tenemos
[root@stanis .ssh]# ll
total 16
-rw------- 1 root root 668 May 19 16:15 id_dsa
-rw-r--r-- 1 root root 613 May 19 16:15 id_dsa.pub
-rw-r--r-- 1 root root 726 May 19 16:15 id_dsa_ssh2.pub
3.Creamos el fichero que indicará al servidor cual es la clave.
[root@stanis .ssh]# echo "key id_dsa_ssh2.pub" > authorization
[root@stanis .ssh]# ll
total 20
-rw-r--r-- 1 root root 20 May 19 16:18 authorization
-rw------- 1 root root 668 May 19 16:15 id_dsa
-rw-r--r-- 1 root root 613 May 19 16:15 id_dsa.pub
-rw-r--r-- 1 root root 726 May 19 16:15 id_dsa_ssh2.pub
4.Conectamos via sftp al servidor que nos permitirá entrar con la clave pública.
[root@stanis .ssh]# sftp stanis@servidor
(obviamente tendremos que tener cuenta en este servidor)
5.Creamos directorio
sftp> mkdir .ssh2
Vamos a él
sftp> cd .ssh2
6.Subimos el archivo que hemos creado antes y la clave pública.
sftp> put authorization
Uploading authorization to /.ssh2/authorization
authorization 100% 20 0.0KB/s 00:00
sftp> put id_dsa_ssh2.pub
Uploading id_dsa_ssh2.pub to /.ssh2/id_dsa_ssh2.pub
id_dsa_ssh2.pub 100% 726 0.7KB/s 00:00
7.Salimos
sftp> exit
8.Y probamos a conectar
[root@stanis .ssh]# ssh stanis@servidor
No mail.
-bash-2.05b$
Perfecto!, clave pública configurada.
10 mayo 2006
El administrador de sistemas -Parte I-
El administrar efectivamente un sistema, requiere un alto grado de profesionalismo. Esto incluye honestidad personal y ética. Deberías comprenderte y evaluarte a ti mismo honestamente, y de una manera objetiva. Tambien requiere que aceptes y te incluyas en la misión y cultura de la organización para la que trabajas.
Tu red, sirve para un gran propósito dentro de tu organización. No existe extrictamente para tu beneficio. Deberías tener esto en cuenta mientras administras la red.
Tu red, sirve para un gran propósito dentro de tu organización. No existe extrictamente para tu beneficio. Deberías tener esto en cuenta mientras administras la red.
21 abril 2006
10 abril 2006
Replicando Wins (samba)
Pues eso, hace tiempo que se estaba pidiendo el soporte de replicación wins en el entorno samba. Este era un punto de parada para aquellos que pensaran migrar sus redes windows, ya que hasta ahora no era posible implementar la alta disponibilidad con el servicio wins.
La compañia alemana SerNet, que entre otras funciones produce versiones empaquetadas de samba listas para empresas, se ha hecho cargo del desarrollo de este software, utilizando tecnología de lo que será samba4.
(Resumen para implementar la replicación).
Dado que el HOWTO para configurar la replicación ya viene con el propio samba4wins.
Expondré un entorno donde se probará para ponernos en situación:
La compañia alemana SerNet, que entre otras funciones produce versiones empaquetadas de samba listas para empresas, se ha hecho cargo del desarrollo de este software, utilizando tecnología de lo que será samba4.
(Resumen para implementar la replicación).
Dado que el HOWTO para configurar la replicación ya viene con el propio samba4wins.
Expondré un entorno donde se probará para ponernos en situación:
- Una red con miles de usuarios windows compuesta por un PDC / BDC y un servidor WINS. Los usuarios dentro de la propia red independientemente del sitio donde esten, siempre que inicien sesión en un equipo, cargaran su unidad de trabajo personal.
- En una red de este tipo, todos los equipos tienen configurado el WINS principal. Y otros wins más para acceso a equipos en otros dominios.
- La caida del WINS principal por cualquier motivo supone grandes inconvenientes para los recursos windows y la validación en el dominio.
04 abril 2006
CISSP o no CISSP
Meses atrás, he estado pensando en la posibilidad de obtener una certificación CISSP, aprovechando la oportunidad de este año en Barcelona.
Pero el tiempo justo para estudiar, y algunas dudas en cuanto a la importancia de obtener esa certificación, me hicieron pensármelo hasta el último momento. Al final decidí no presentarme este año, pero sí tenerlo como una próxima meta.
Despues de leer un artículo del último número del magazine INsecure, me quedo con estos puntos del autor:
"If you do not see the way, you do not see it even as you walk on it"
(Zen Koan)
Pero el tiempo justo para estudiar, y algunas dudas en cuanto a la importancia de obtener esa certificación, me hicieron pensármelo hasta el último momento. Al final decidí no presentarme este año, pero sí tenerlo como una próxima meta.
Despues de leer un artículo del último número del magazine INsecure, me quedo con estos puntos del autor:
- Quiero una confirmación y valoración independiente de mis conocimientos en seguridad. En mi compañía soy el punto de referencia para questiones relacionadas con la seguridad de la información. Me siento obligado hacia mis empleados en verificar que mis conocimientos coinciden con las mejores prácticas del mercado.
- Necesidad de mejorar y aspirar a más en el trabajo. Delegar tareas técnicas para poder inyectar nuevas ideas y más energía, consiguiendo frescas iniciativas. (esto no se si lo veo muy claro, las tareas técnicas son una de las partes más divertidas de sistemas).
- Está claro que poseer un CISSP no te vuelve mágicamente en un experto en seguridad, sólo demuestra que tienes una sólida base, pero la clave esta en la experiencia.
- He comprendido que los conocimientos técnicos "per se" resultan engañosos.
- Las empresas y corporaciones funcionan a nivel directivo, esto tambien es cierto para el campo de la seguridad de la información.
"If you do not see the way, you do not see it even as you walk on it"
(Zen Koan)
25 marzo 2006
The Code Room
The Code Room son unos capítulos de media hora emitidos en internet sobre
nuevas tecnologías. Nada de las típicas películas o series fantásticas del tema. El capítulo 3 trata
sobre 3 tipos que usando una combinación de SQL injection Y Session-Hijacking roban 4,5 M de dolares del casino de las vegas.
Disfrutar.
nuevas tecnologías. Nada de las típicas películas o series fantásticas del tema. El capítulo 3 trata
sobre 3 tipos que usando una combinación de SQL injection Y Session-Hijacking roban 4,5 M de dolares del casino de las vegas.
Disfrutar.
21 marzo 2006
Squid y el ancho de banda.
Imaginar una intranet donde las conexiones a internet se realizan a través de un proxy para poder llevar una buena gestión de el uso de internet. Imaginar que ese proxy es squid, si no lo imaginais, y administrais otro tipo de proxy, no sigais leyendo, no os interesará. Pero si aún así os pica la curiosidad, os diré que squid es uno de los mayores y más populares proxy-cache que existe. Con él podemos hacer en nuestra red;
Eso entre otras cosas, pero lo que os quería contar, que me emocionó hablando de squid, es que es posible limitar el tráfico del ancho de banda que utiliza squid , es decir podríamos hacer que un departamento que apenas utiliza internet, tuviera asignado un ancho de banda mínimo, mientras que el departamento de sistemas que está constantemente bajando y probando software necesita más ancho de banda sin que nadie más le moleste y lo tenga disponible siempre sin importar el tipo de navegación que hagan los demás. Es decir priorizamos el ancho de conexión según las necesidades específicas. Para configurar esta funcionalidad, últimamente he descubierto un buen manual en castellano que complementa al que ya existe en la web oficial.
Disfrutar. :)
Sé que el término proxyando no existe, pero es una forma de nombrar la característica de http-accelerator o reverse proxy de squid.
- Usar menos ancho de banda en la conexión a internet cuando navegamos por la web.
- Reducir la cantidad de tiempo que las páginas web tardan en cargar.
- Proteger equipos de nuestra red interna proxyando su tráfico web
- Tener estadísticas de todo el uso del tráfico web de nuestra red interna.
- Prevenir que los usuarios visiten sitios inapropiados en el trabajo o escuela.
- Asegurar que sólo usuarios autorizados pueden navegar por la red.
- Aumentar la privacidad de nuestros usuarios filtrando información sensible de las peticiones web que salen.
- Convertir tráfico HTTPS a tráfico HTTP.
Eso entre otras cosas, pero lo que os quería contar, que me emocionó hablando de squid, es que es posible limitar el tráfico del ancho de banda que utiliza squid , es decir podríamos hacer que un departamento que apenas utiliza internet, tuviera asignado un ancho de banda mínimo, mientras que el departamento de sistemas que está constantemente bajando y probando software necesita más ancho de banda sin que nadie más le moleste y lo tenga disponible siempre sin importar el tipo de navegación que hagan los demás. Es decir priorizamos el ancho de conexión según las necesidades específicas. Para configurar esta funcionalidad, últimamente he descubierto un buen manual en castellano que complementa al que ya existe en la web oficial.
Disfrutar. :)
20 marzo 2006
Motor de cacheabilidad
Con esta herramienta podremos comprobar como de cacheable es una página u objeto HTTP para detectar posibles errores o defectos en nuestras páginas cuando trabajamos con proxys entre ellas.
17 marzo 2006
Notificaciones de correo yahoo en tu cliente jabber
Para que te llegue un aviso en el cliente jabber cada vez que recibes un correo en tu buzon de yahoo.
Ejemplos con el cliente PSI.
1. En la parte descubrir servicios

añadir el servidor de la imagen inferior, hay muchos más, pero con este llevo funcionando bastante tiempo sin fallar. (yahoo.swissjabber.ch)

2. Vemos un gateway de yahoo, click derecho sobre el, y nos registramos.

3. Sólo nos queda, introducir nuestros datos de la cuenta de yahoo, y se ños añadira
como un contacto de agente/transporte. Con el boton derecho del raton, nos conectamos, y empezaremos a recibir notificaciones cuando nos llege correo nuevo.
Ejemplos con el cliente PSI.
1. En la parte descubrir servicios

añadir el servidor de la imagen inferior, hay muchos más, pero con este llevo funcionando bastante tiempo sin fallar. (yahoo.swissjabber.ch)

2. Vemos un gateway de yahoo, click derecho sobre el, y nos registramos.

3. Sólo nos queda, introducir nuestros datos de la cuenta de yahoo, y se ños añadira
como un contacto de agente/transporte. Con el boton derecho del raton, nos conectamos, y empezaremos a recibir notificaciones cuando nos llege correo nuevo.
16 marzo 2006
Servidor SSH CHROOTED
En un entorno donde se trabaja en un dominio windows bajo samba, y las cuentas de los usuarios se encuentran en un directorio ldap, configuraremos un servidor sftp para que los usuarios accedan a su unidad de red.
Finalidad:
- Usuarios con chroot
- Acceso a sftp
- Validación con PAM
- Seguridad
1. Haremos una separación de acceso según usuarios.
Usuarios administrativos, puerto aleatorio, por ejemplo 22022
Usuarios del servicio sftp, puerto 22
Para ello utilizaremos la versión ssh comercial para el 22.
La distribucion openssh en el 22022.
2. Cambiamos el puerto de openssh para el acceso administrativo.
Editamos /etc/ssh/sshd_config y cambiamos #Port 22 por #Port 22022
Y reiniciamos el demonio sshd.
Al hacer un netstat -ntl comprobamos que tenemos levantado el nuevo puerto.
3. Instalación de ssh comercial.
Dentro de este producto, existen unas versiones no comerciales con un uso
limitado pero que nos sirve para nuestros fines.
Elegimos un mirror adecuado y nos bajamos la última versión disponible. En el momento de
realizar este pequeño manual, la versión que me he descargado es:
ssh-3.2.9.1.tar.gz
4. Lo instalamos en una ruta diferente para no confundirlo con el openssh que ya tenemos funcionando. Las opciones de instalación serán:
#./configure --prefix=/etc/ssh-comercial -with-threads --without-pgp
y lo instalamos.
5. Instalamos el demonio de inicio. En la propia distribucion de ssh, existe un directorio denominado startup y directorios de varios S.Os, elegimos el nuestro y colocamos el demonio de arranque en nuestro S.O modificándolo según las rutas donde hemos instalado el ssh.
6. Configuramos el pam, y lo dejamos de esta forma;
#cat /etc/pam.d/sshd2
auth required /lib/security/pam_nologin.so
auth sufficient /lib/security/pam_smb_auth.so
auth sufficient /lib/security/pam_ldap.so
auth required /lib/security/pam_unix_auth.so try_first_pass
account sufficient /lib/security/pam_ldap.so
account required /lib/security/pam_unix_acct.so
password required /lib/security/pam_cracklib.so
password sufficient /lib/security/pam_ldap.so
password required /lib/security/pam_pwdb.so use_first_pass
session required /lib/security/pam_unix_session.so
Con este paso lo que estamos haciendo es que la validación cuando se acceda
al sftp sea la que el usuario tiene en el dominio.
Para ver más información sobre la configuración pam, se puede consultar este manual.
7. Realizamos algunos ajustes en el fichero de configuración del ssh comercial.
para que nos funcione el pam
#AllowedAuthentications keyboard-interactive
#AuthKbdInt.Optional pam
Aquí ponemos los usuarios que seran chrooteados
#ChRootUsers anonymous,ftp,guest
Deshabilitamos por seguridad algunas opciones que no nos hacen falta
#AllowX11Forwarding no
#AllowTcpForwarding no
#PermitRootLogin no
Activamos el subsistema sftp
#subsystem-sftp internal://sftp-server
Instalación finalazada.
A partir de ahora, el sistema funcionará, un usuario accediendo con un programa sftp se autentificará con sus credenciales del dominio, y cargará su unidad de red de trabajo habitual.
El único punto a tener en cuenta, es que el objeto homedirectory del posixaccount tenga una entrada válida y sea propiedad del usuario. La shell será /dev/null.
Finalidad:
- Usuarios con chroot
- Acceso a sftp
- Validación con PAM
- Seguridad
1. Haremos una separación de acceso según usuarios.
Usuarios administrativos, puerto aleatorio, por ejemplo 22022
Usuarios del servicio sftp, puerto 22
Para ello utilizaremos la versión ssh comercial para el 22.
La distribucion openssh en el 22022.
2. Cambiamos el puerto de openssh para el acceso administrativo.
Editamos /etc/ssh/sshd_config y cambiamos #Port 22 por #Port 22022
Y reiniciamos el demonio sshd.
Al hacer un netstat -ntl comprobamos que tenemos levantado el nuevo puerto.
3. Instalación de ssh comercial.
Dentro de este producto, existen unas versiones no comerciales con un uso
limitado pero que nos sirve para nuestros fines.
Elegimos un mirror adecuado y nos bajamos la última versión disponible. En el momento de
realizar este pequeño manual, la versión que me he descargado es:
ssh-3.2.9.1.tar.gz
4. Lo instalamos en una ruta diferente para no confundirlo con el openssh que ya tenemos funcionando. Las opciones de instalación serán:
#./configure --prefix=/etc/ssh-comercial -with-threads --without-pgp
y lo instalamos.
5. Instalamos el demonio de inicio. En la propia distribucion de ssh, existe un directorio denominado startup y directorios de varios S.Os, elegimos el nuestro y colocamos el demonio de arranque en nuestro S.O modificándolo según las rutas donde hemos instalado el ssh.
6. Configuramos el pam, y lo dejamos de esta forma;
#cat /etc/pam.d/sshd2
auth required /lib/security/pam_nologin.so
auth sufficient /lib/security/pam_smb_auth.so
auth sufficient /lib/security/pam_ldap.so
auth required /lib/security/pam_unix_auth.so try_first_pass
account sufficient /lib/security/pam_ldap.so
account required /lib/security/pam_unix_acct.so
password required /lib/security/pam_cracklib.so
password sufficient /lib/security/pam_ldap.so
password required /lib/security/pam_pwdb.so use_first_pass
session required /lib/security/pam_unix_session.so
Con este paso lo que estamos haciendo es que la validación cuando se acceda
al sftp sea la que el usuario tiene en el dominio.
Para ver más información sobre la configuración pam, se puede consultar este manual.
7. Realizamos algunos ajustes en el fichero de configuración del ssh comercial.
para que nos funcione el pam
#AllowedAuthentications keyboard-interactive
#AuthKbdInt.Optional pam
Aquí ponemos los usuarios que seran chrooteados
#ChRootUsers anonymous,ftp,guest
Deshabilitamos por seguridad algunas opciones que no nos hacen falta
#AllowX11Forwarding no
#AllowTcpForwarding no
#PermitRootLogin no
Activamos el subsistema sftp
#subsystem-sftp internal://sftp-server
Instalación finalazada.
A partir de ahora, el sistema funcionará, un usuario accediendo con un programa sftp se autentificará con sus credenciales del dominio, y cargará su unidad de red de trabajo habitual.
El único punto a tener en cuenta, es que el objeto homedirectory del posixaccount tenga una entrada válida y sea propiedad del usuario. La shell será /dev/null.
15 marzo 2006
NSS y LDAP
Integración de servicios basados en ldap.
Pam_ldap Módulo para que servidores linux entre otros, puedan autentificar y cambiar contraseñas en directorios LDAP.
Nss_ldap Módulo para proveer información de usuarios desde un directorio LDAP.
Instalación y configuración:
1. Compilar nss_ldap con las siguientes opciones.
env CPPFLAGS="-I../openssl/include -I/usr/include" LDFLAGS="-L../openssl/lib -L/usr/lib" ./configure --with-ldap-lib=openldap --with-ldap-dir=/etc/openldap_2_2
2. Compilar pam_ldap con las siguientes opciones.
env CPPFLAGS="-I../openssl/include -I/usr/include" LDFLAGS="-L../openssl/lib -L/usr/lib" ./configure --with-ldap-lib=openldap --with-ldap-dir=../openldap_2_2
3. Configuración post-instalación.
a) Configurar nsswitch para que la información la recoja del ldap.
en /etc/nsswitch.conf dejamos una linea tal como;
passwd: files ldap
b) Configurar pam_ldap para que autentifique con el directorio ldap.
en /etc/ldap.conf viene un fichero de ejemplo, lo ajustamos a nuestras
necesidades.
c) Comprobamos que todo ello funciona ejecutando
#getent passwd
y viendo que nos muestra la información deseada.
A partir de ahora, ya podemos utilizar a los usuarios de nuestro ldap como si fueran
usuarios nativos de unix pudiendo integrarlos en cualquier aplicación con soporte ldap.
Pam_ldap Módulo para que servidores linux entre otros, puedan autentificar y cambiar contraseñas en directorios LDAP.
Nss_ldap Módulo para proveer información de usuarios desde un directorio LDAP.
Instalación y configuración:
1. Compilar nss_ldap con las siguientes opciones.
env CPPFLAGS="-I../openssl/include -I/usr/include" LDFLAGS="-L../openssl/lib -L/usr/lib" ./configure --with-ldap-lib=openldap --with-ldap-dir=/etc/openldap_2_2
2. Compilar pam_ldap con las siguientes opciones.
env CPPFLAGS="-I../openssl/include -I/usr/include" LDFLAGS="-L../openssl/lib -L/usr/lib" ./configure --with-ldap-lib=openldap --with-ldap-dir=../openldap_2_2
3. Configuración post-instalación.
a) Configurar nsswitch para que la información la recoja del ldap.
en /etc/nsswitch.conf dejamos una linea tal como;
passwd: files ldap
b) Configurar pam_ldap para que autentifique con el directorio ldap.
en /etc/ldap.conf viene un fichero de ejemplo, lo ajustamos a nuestras
necesidades.
c) Comprobamos que todo ello funciona ejecutando
#getent passwd
y viendo que nos muestra la información deseada.
A partir de ahora, ya podemos utilizar a los usuarios de nuestro ldap como si fueran
usuarios nativos de unix pudiendo integrarlos en cualquier aplicación con soporte ldap.
14 marzo 2006
RSS con Jabber
Para configurar RSS con Jabber y sacarle más partido;
1. Nos añadimos el contacto jabrss@cmeerw.net y aceptamos la petición de subscripción.
2. A partir de aquí, enviando comandos a nuestro nuevo contacto de la forma subscribe http://logadmin.blogspot.com/atom.xml empezaremos a utilizarlo.
3. Lo más interesante, es que podemos crearnos una cuenta en pubsub, y poder acceder en tiempo real a cualquier noticia de nuestro interes.
1. Nos añadimos el contacto jabrss@cmeerw.net y aceptamos la petición de subscripción.
2. A partir de aquí, enviando comandos a nuestro nuevo contacto de la forma subscribe http://logadmin.blogspot.com/atom.xml empezaremos a utilizarlo.
3. Lo más interesante, es que podemos crearnos una cuenta en pubsub, y poder acceder en tiempo real a cualquier noticia de nuestro interes.
13 marzo 2006
Integración Linux - Windows

En cuanto a los servicios windows se refiere, he podido comprobar casi una total integración, de dominios windows con máquinas linux sirviendo datos, linux como PDCs, y BDCs, WINS. Servidores de impresión linux, servidores de recursos con restricciones de acceso para usuarios, grupos. Dominios nativos de windows con relaciones de confianza con otros dominios nativos de Linux, en definitiva, los usuarios de un dominio pueden operar tranquilamente sin conocer en ningún momento cual es todo el lío que hay detrás. Lío que a los administradores de sistemas muchas veces nos vuelve locos, y otras veces, las más, les damos las gracias a todos aquellos que trabajan por la integración.
A partir de aquí, escribiré una serie de posts, que me han ayudado en todo el proceso de integración y pruebas.
11 marzo 2006
Seguridad Web
Documento de seguridad con los diferentes tipos de ataque existentes y terminología en el ámbito de las aplicaciones web.
Disponible en varios idiomas, entre ellos el castellano.
Disponible en varios idiomas, entre ellos el castellano.
Nace el blog
Despues de llevar varios años trabajando como administrador de sistemas, veo que acumulo gran cantidad de información de todo tipo, y que luego cuando la necesito, me cuesta encontrarla.
Pienso que esta es una buena forma de tener todo organizado, y a la vez compartir experiencias.
Pienso que esta es una buena forma de tener todo organizado, y a la vez compartir experiencias.
Suscribirse a:
Entradas (Atom)