Is it a fake website?

27 septiembre 2006

Usos de VI


Mi editor favorito, o quizá me he acostumbrado demasiado a él.
Imaginar que teneis un archivo con 7000 lineas generadas a partir de un script en perl
y teneis que introducir estas lineas en un sitio en concreto de otro segundo archivo.
¿Como hacerlo con vi?, seguro que hay formas alternativas de hacerlo, pero esta es la que me ha funcionando perfectamente.

Nos situamos al principio del fichero A.
yG (copiamos todo al buffer)
:e fichero_B (abrimos el segundo fichero sin perder el buffer)
p (nos colocamos en la posicion deseada y copiamos el buffer).


ctrl+g: comprobamos las lineas del fichero B.

25 septiembre 2006

Decodifica base64

#!/usr/bin/perl
use MIME::Base64;
while (<>) {
print MIME::Base64::decode_base64($_);
}

22 septiembre 2006

Como trabaja SIP (Protocolo de inicio de sesión)

¿Te has preguntado alguna vez por qué las llamadas de larga distancia cuestan tanto? En parte la razón es debido a que las lineas de teléfono cuestan mucho. Cuando vas en tu coche, a veces puedes ver a un técnico telefónico realizando tareas de mantenimiento en la línea telefónica, pero quizá no te has parado a pensar es en que hay literalmente miles de individuos trabajando para mantener nuestras líneas telefónicas.

El sistemas telefónico trabaja vía una configuración "rueda de diente". Lo que esto significa es que cada llamada de larga distancia es enrutada a través de el cable telefónico a una estación central donde tu voz es enrutada a su vez a otra estación central que al final la entrega a la persona con la que estabas intentando comunicarte. Para que esta llamada se pueda mantener, el tiempo completo que estas hablando, un espacio entre todas las lineas que hay entre tú y la persona con la que estas en contacto debe estar completamente dedicado a vosotros. Dado que hay millones de personas hablando al mismo tiempo, el pequeño espacio a lo largo de las líneas telefónicas se convierte en una propiedad muy deseada. Y por lo tanto igual que todas las cosas que son muy deseadas, el precio es alto. Sin embargo antes de las recientes innovaciones no existia alternativas por lo que todo el mundo a regañadientes paga el costo de una llamada a larga distancia.

SIP, o el protocolo de inicio de sesión ha hecho descender al mundo telefónico, en terminos económicos. Específicamente SIP se refiere al protocolo que permite a los ordenadores hablar entre sí sin la necesidad de pasar por una estación central.
Practicamente lo que esto significa para ti y para mí, es que ahora no es necesario pagar por carísimas líneas de teléfono para realizar nuestras llamadas. La tecnología SIP es un desarrollo relativamente nuevo en el cual las llamadas son hechas peer-a-peer, esto es equipo-a-equipo, más que a través de una rueda de dientes a través de diferentes estaciones centrales. Lo que esto significa es que ahora eres capaz de hablar con gente directamente desde tu telefono SIP. Esta forma es radicalmente más barata que el viejo método de llamar.

El sistema SIP no requiere un ordenador central ni operadores tal y como necesitaba el anterior sistema telefónico. Sólo necesitas tu ordenador, y un telefono SIP, que se ocuparan de todo el routing por tí.

SIP ha estado presente desde hace algunos años, pero sólo recientemente ha empezado a crecer en popularidad. Este rápido incremento de interes en SIP es sobre todo gracias a compañias como Mobalex, quienes fueron conscientes en el hecho de hace bastante hemos estado esperando ciertos tonos, botones y protocolos de nuestros teléfonos, lo que ellos han hecho ha sido pasar todas estas funciones al sistema SIP. Más que forzar a los usuarios a comunicarse de una forma totalmente nueva, lo que estas compañias han hecho es proveer una experiencia de llamada en la cual desde la perspectiva de los usuarios es completamente idéntica a la telefonía tradicional.

Sip is tipicamente ofrecido en dos formatos, basado en ordenador y basado en hardware. Sip basado en ordenador es un sistema que te permite realizar llamadas usando tu ordenador como router y comunicandote vía un microfono y auriculares de tú ordenador. La más popoular y práctica versión sin embargo actualmente te provee con nuevos telefonos SIP, tal y como los antiguos, o conviritiendo tu teléfono actual en SIP. Eliminando cualquier requerimiento técnico, los proveedores modernos de SIP lo han hecho usando el sistema tan fácil o más facil aún que usar un teléfono tradicional. Digo más fácil porque muchas compañías son capaces de tomar ventaja sobre el hecho de que este sistema esta basado en internet para darnos beneficios únicos. Estos incluyen la habilidad de ajustar tu plan, cambiar tus opciones de llamada y pagar tus facturas del mismo sitio web.

La tecnología SIP es una revolución en el mundo de la comunicación. Creando una red peer-to-peer, SIP ha sido capaz radicalmente de recortar los precios de la telefonía tradicional, tomar ventaja de internet y todo ello maantenteniendo la tranquilidad de la telefonía tradicional. Es sólamente cuestión de tiempo antes de que todos nosotros usemos SIP para todas nuestras necesidades telefónicas.

Traducido de asteriskvoipnews

20 septiembre 2006

Verifica enlaces rotos para unos directorios dados.

#!/usr/bin/perl

########################################################
#
# Perl script para chequear links rotos en el sistema
#
#
########################################################

use warnings;

use File::Find ();

#Directorios a chequear.
@direc=("/usr/local/etc3", "/usr/local/etc4");

use vars qw/*name *dir *prune/;
*name = *File::Find::name;
*dir = *File::Find::dir;
*prune = *File::Find::prune;

foreach $directory (@direc)
{
File::Find::find({wanted => \&wanted}, $directory);
}

exit;

sub wanted {
-l && !-e && print "Broken link: $File::Find::name\n";
}

Rompe enlaces simbolicos y deja el original

-Script para romper enlaces simbolicos desde la ruta actual donde nos encontramos
y deja sólamente los originales donde apuntaba.


#!/usr/bin/perl

########################################
#Rompe enlaces y copia los originales
#
########################################

@lineas= `ls -la`;
$n=0;
#$formato="tmpl";

print "Entra formato: ";
$formato = ;
chomp($formato);

print "$formato\n";
foreach $line (@lineas)
{
chomp($line);


if ( $line =~ /($formato)$/i)
{
@partes = split ( / +/,$line);
#$partes[8]= enlace
#$partes[10] = original
$propietario=$partes[2];
$grupo=$partes[3];

system("unlink $partes[8]");
system("cp -pr $partes[10] .");

$n +=1;
}

}

print "\n";
print "Aplicando permisos correspondientes...\n";
system("chown -R $propietario.$grupo *.$formato");
system("chmod 770 *.$formato");
print "$n enlaces rotos..\n";

28 julio 2006

Día del administrador de sistemas

Buena idea el tener un día para recordar el oscurantismo de nuestro trabajo.
Gracias a todos los administradores de sistemas!.

22 julio 2006

Comandos básicos para trabajar con Subversión.

Descargar proyecto con todas las ramas disponibles.
svn co https://svn.sourceforge.net/svnroot/proyecto proyecto

Descargar rama principal de desarrollo del proyecto.
svn co https://svn.sourceforge.net/svnroot/proyect/trunk proyecto


Flujo básico de los comandos.

Actualizando la copia.
svn update

Realizando cambios
svn add
svn delete
svn copy
svn move

Examinando tus cambios
svn status
svn diff
svn revert

Creando cambios
svn add
svn delete
svn copy
svn move

Examinando tus cambios
svn status
svn diff
svn revert

Mezclando otros cambios en tu copia de trabajo
svn update
svn resolved

Asignando cambios
svn commit --message "Cambios realizados"

Más información de CVS

05 julio 2006

APRENDIENDO PERL II

Perl Best Practices excelente recurso escrito por Damian Conway. Donde se exponen 256 recomendaciones e ideas para una mejor programación en Perl.

Randal L. Swartchz co-autor entre otros libros de "Programming Perl" y "Learning Perl" escribio la siguiente nota sobre este recurso.

"Como director de un gran proyecto de Perl, me gustaría asegurarme que cada miembro de mi equipo tenga una copia de "Perl Best Practices" en su mesa y lo use como guía."

16 junio 2006

¿Qué versión de linux utilizas?

1. dmesg | head -1

2. cat /proc/version

3. cat /etc/issue

4. egrep '^title' /boot/grub/menu.lst

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.

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

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.

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.

21 abril 2006

APRENDIENDO PERL

"Do one thing and do it well"

"There's more than one way to do it"

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:

  • 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:

  • 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.
Al final el autor de el artículo que he comentado, optó por un cambio radical, orientarse hacia la administración y dirección dejando atrás todas las tareas técnicas. Redefiniendo completamente su rol en la compañia, incluso incluso cambiando de trabajo.

"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.

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;

  • 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.
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.

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.