jueves, 31 de diciembre de 2009

Mejorar el rendimiento de Windows XP en redes P2P / Servidor

Situacion:
Deseo mejorar el rendimiento de Windows XP en redes P2P

Explicacion:
Como todos sabemos el ancho de banda contratado para Internet es subutilizado por la mayoria de las persona, ciertas estadisticas indican que incluso la mayoria de los suscriptores de DSLs aprovechan menos del 60% del ancho de banda que ofrece el proveedor. Por otro lado, Windows XP SP2 aplico en su stack TCP/IP ciertos algoritmos sobre intento de conexiones y conexiones simultaneas, entre ellas una que indica que solo puede realizar hasta 10 intentos de conexiones por segundo. Esta ultima afecta directamente los problemas P2P tales como torrent y emule.

Solucion:
Opcion 1:
1) Instalar el patch que se puede conseguir en: http://www.lvllord.de/?lang=en&url=downloads
El patch fue creado por: http://www.lvllord.de/ y se consigue en ingles y en aleman. Durante la instalacion probablemente Windows indique que se estan modificando archivos del sistema, indicarle que se desea continuar.

Opcion 2:
2) - En un editor hexadecimal localiza del lado izquiero el valor 4F322
- Cambiar 0a 00 00 00 a 00 00 0a 00

Extra #1:
Tambien recomiendo apoyarse en el sencillo programa TCP Optimizer el cual es una aplicacion sencilla, intuitiva que ajusta ciertos valores del registro de windows. No dejes de utilizarlo

Extra #2:
Asignarle más prioridad al proceso de P2P (por ejemplo utorrent o emule): Administrador de Tareas --> Procesos --> Click derecho sobre el proceso --> Arriba de lo normal

SIEMPRE REALIZAR UN BACKUP DEL ARCHIVO TCPIP.SYS

Luego de realizar los cambios mi windows mejoro notablemente en los servicios P2P

Nota:
Este articulo fue basado en http://www.speedguide.net/read_articles.php?id=1497 y en mi propia experiencia

Suerte!

miércoles, 16 de diciembre de 2009

Windows 2003. Windows no tiene acceso al dispositivo, ruta de acceso o archivo especificado

Problema:
Al intentar ejecutar un archivo en Windows 2003 aparece el siguiente mensaje:

"windows no tiene acceso al dispositivo, ruta de acceso o archivo especificado".




Solucion:

Si copiastes el archivo por la red en un recurso compartido probablemente Windows haya protegido dicho archivo por seguridad.
Haz click derecho, haz click sobre propiedades y haz click sobre el boton desbloquear al lado de donde indica: "Este archivo provino de otro equipo y puede que se bloquee para ayudar a proteger este equipo"



Posteriormente podras ejecutar dicho archivo.

Suerte!,

miércoles, 2 de diciembre de 2009

Bash Watchdog Script

Situación:
En algunas oportunidades es necesario tener un script que levante algún servicio/proceso cuando el mismo falla. Es decir, supongamos que tenemos un servidor web, mail, dns que falla, es necesario tener un script que sea capaz de levantarlo cuando sea necesario de manera automatica

Solución:
En mi caso, tengo el servicio snmpd que por alguna razón falla constantemente. Debido a que necesito tener el mismo levantando construí el siguiente script que luego coloqué en un crontab.

Ejemplo del SCRIPT:
#!/bin/bash
#FILENAME= /root/SCRIPTS/snmpd.Watchdog
# Reiniciar SNMPD cuando el servicio no se encuentra levantado
RESTART="/etc/init.d/snmpd restart"
#path to pgrep command
PGREP="/usr/bin/pgrep"
# Nombre del servicio (en en este caso snmpd)
SNMPD="snmpd"
# obtener el numero del PID del proceso
$PGREP ${SNMPD}
if [ $? -ne 0 ] # Si snmpd no esta corriendo
then
# reiniciar snmpd
$RESTART
fi

Ejemplo del crontab:
Cada minutos:
* * * * * /root/SCRIPTS/snmpd.Watchdog
Cada 5 minutos
*/5 * * * * /root/SCRIPTS/snmpd.Watchdog

Mas información:
El script anterior es basado en el que se encuentra en:
http://zedomax.com/blog/2008/07/28/linux-server-hack-how-to-setup-a-shell-script-to-auto-restart-apache-httpd-server/

miércoles, 25 de noviembre de 2009

Implementar DNSSEC sobre Linux. Solo resolver

*** POST OBSOLETO ****
*** FAVOR LEER LA VERSION 2 ***


Problema:

Montar un servidor DNS solo como resolver, es decir, sin funcionar como servidor autorizado para ciertas zonas


Que se necesita:

- Servidor Linux
- Bind 9.3 o superior (en mi caso utilicé 9.6)


Alcance

- Vamos a validar todo lo que sea .br
- Vamos a validar todo lo que sea udp53.org

Procedimiento:
1) Instalar bind en un servidor Linux. En mi caso utilizo Mandriva y con un sencillo urpmi bind fue suficiente. Es importante destacar que para que DNSSEC ande se necesita tener instalado openssl y sus librerias. Actualmente la inmensa mayoría de las distribuciones ya viene con openssl

2) En /var/named.conf se necesita:
options {
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside "." trust-anchor dlv.isc.org.;
};

La primera opción permite dnssec para las zonas autorizadas y la segunda opción para realizar recursividad utilizando DNSSEC. La tercera opción la veremos con detalle más adelante.


3) Es necesario obtener las llaves públicas de los registros .br y udp53.org (que son los dominios que queremos verificar en este momento). Para ello:

[root@localhost etc]# dig br DNSKEY

{...}

br. 21502 IN DNSKEY 257 3 5 AwEAAdDoVnG9CyHbPUL2rTnE22uN66gQCrUW5W0NTXJBNmpZXP27w7PM Npyw3XCFQWP/XsT0pdzeEGJ400kdbbPqXr2lnmEtWMjj3Z/ejR8mZbJ/ 6OWJQ0k/2YOyo6Tiab1NGbGfs513y6dy1hOFpz+peZzGsCmcaCsTAv+D P/wmm+hNx94QqhVx0bmFUiCVUFKU3TS1GP415eykXvYDjNpy6AM=

{...}


[root@localhost etc]# dig udp53.org DNSKEY

{...}

udp53.org. 5882 IN DNSKEY 257 3 5 BEAAAAMKj6IGc8E/bBW7i6zDGgnKUXwamtR9PlFiuTg0/oa4i1okCg4J vLEq7EVpxdDi4yc1Ym9kGTUngZ59iVleoL8O5Zq+oPAPCYSbtn+ASsL6 0iCp4PJ6LV0A9d2NE/BetXO/Re/NRsSG18yFZCWGfX8mBnb2zG7Mb+0t pUuRsu9dBN31ljsbTUGmkDbqEw2xaDAUXqDGD5+pgN0NGqcPg0/HzFv9

{...}

4) Necesitamos las llaves DLV que pueden ser conseguidas en la pagina de la ISC en:
http://ftp.isc.org/www/dlv/dlv.isc.org.key.
Las llaves DLV ((DNSSEC Look-aside Validation) son un recurso adicional utilizado en aquellos servidores DNSSEC con recursividad. La idea es apoyar al conglomerado de internet en las primeras etapas de DNSSEC en el mundo

5) Vamos a copiar esas llaves obtenidas en el archivo named.conf bajo la sección trusted-keys (si no existe dicha sección en el archivo la crearemos). Por ejemplo

trusted-keys {
"br." 257 3 5
"AwEAAdDoVnG9CyHbPUL2rTnE22uN66gQCrUW5W0NTXJB
NmpZXP27w7PMNpyw3XCFQWP/XsT0pdzeEGJ400kdbbPq
Xr2lnmEtWMjj3Z/ejR8mZbJ/6OWJQ0k/2YOyo6Tiab1N
GbGfs513y6dy1hOFpz+peZzGsCmcaCsTAv+DP/wmm+hN
x94QqhVx0bmFUiCVUFKU3TS1GP415eykXvYDjNpy6AM=";

"dlv.isc.org." 257 3 5 "BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWEn4MxDCE1+lLy2 brhQv5rN32RKtMzX6Mj70jdzeND4XknW58dnJNPCxn8+jAGl2FZLK8t+ 1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0PG73Te9fZ2kJb56dhgMde5 ymX4BI/oQ+cAK50/xvJv00Frf8kw6ucMTwFlgPe+jnGxPPEmHAte/URk Y62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOwIeU/Rw/mRx/vwwMCTgNboM QKtUdvNXDrYJDSHZws3xiRXF1Rf+al9UmZfSav/4NWLKjHzpT59k/VSt TDN0YUuWrBNh";

"udp53.org." 257 3 5 "BEAAAAMKj6IGc8E/bBW7i6zDGgnKUXwamtR9PlFiuTg0/oa4i1okCg4J vLEq7EVpxdDi4yc1Ym9kGTUngZ59iVleoL8O5Zq+oPAPCYSbtn+ASsL6 0iCp4PJ6LV0A9d2NE/BetXO/Re/NRsSG18yFZCWGfX8mBnb2zG7Mb+0t pUuRsu9dBN31ljsbTUGmkDbqEw2xaDAUXqDGD5+pgN0NGqcPg0/HzFv9";

};

6) Listo!!., reiniciar el servidor named. Por ejmplo:
/etc/init.d/named restart (o con rndc, como tu desees)

Revisar que se encuentre funcionando bien

La mejor opción es utilizar el famoso comando dig y chequear el flag AD en al respuesta. Por ejemplo:

RESPUESTA SIN DNSSEC

[root@localhost etc]# dig +dnssec registro.br

; <<>> DiG 9.6.0-P1 <<>> +dnssec registro.br
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43771 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 5




RESPUESTA CON DNSSEC

[root@localhost etc]# dig +dnssec registro.br

; <<>> DiG 9.6.0-P1 <<>> +dnssec registro.br
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1063 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 6, ADDITIONAL: 1



Más información:

* www.isc.org/files/DNSSEC_in_6_minutes.pdf
* http://registro.br/info/dnssec.html

viernes, 30 de octubre de 2009

Linux. Utilizar celular como modem para conectarse a Internet

Necesidad:
Utilizar el celular para conectarse a Internet. En mi caso utilicé el motorola W6 y Linux Mandriva

Que se necesita:
- Celular motorola
- Cable de conexión telefono -- PC

Procedimiento:
1) Instalar wvdial para maneja y discado del modem:

#urpmi wvdial

2) Identificar el nombre con el que Linux reconoce el modem. Para ello, ejecutaremos:

# tail -f /var/log/message

y simultaneamente conectaremos el telefono al PC/Laptop. Conseguiremos un nombre como /dev/ttyACM0

3) Verificar que el device se haya creado correctamente:

#ls -lh /dev/ttyACM0

4) Recomiendo crear un link simbolico entre /dev/modem y /dev/ttyACM0:

#ln -s /dev/ttyACM0 /dev/modem

5) Posteriormente hay que configurar el wvdial (ya estamos casi listos!). Para ello edita /etc/wvdial.conf similar a:

[Dialer Defaults]
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
Abort on No Dialtone = off
Password = ''
Check Def Route = off
Phone = *99#
Idle Seconds = 0
Abort on Busy = off
;Minimize = on
Modem Type = Analog Modem
Stupid Mode = on
Baud = 115200
Auto DNS = on
Dial Command = ATM1L3DT
Auto Reconnect = off
Ask Password = off
Init = ATX3
ISDN = off
Dial Attempts = 1
Username = ''
;Dock = on
Carrier Check = on
Init3 = AT+CGDCONT=1,"IP","gprsweb.digitel.ve"
Modem = /dev/ttyACM0

La configuración anterior sirve perfectamente para Digitel en Venezuela. Las partes más importantes corresponden a los DNS, baud rate y el APN de digitel (gprsweb.digitel.ve).

6) Por último, ejecuta wvdial desde la consola:

#wvdial

Debes obtener algo como:

[root@localhost etc]# wvdial
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATX3
ATX3
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2
ATQ0 V1 E1 S0=0 &C1 &D2
OK
--> Sending: AT+CGDCONT=1,"IP","gprsweb.digitel.ve"
AT+CGDCONT=1,"IP","gprsweb.digitel.ve"
OK
--> Modem initialized.
--> Sending: ATM1L3DT*99#
--> Waiting for carrier.
ATM1L3DT*99#
CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Fri Oct 30 15:37:14 2009
--> Pid of pppd: 21573
--> Using interface ppp0
--> pppd: Connect: ppp0 <--> /dev/ttyACM0
--> pppd: PAP authentication succeeded
--> local IP address 10.251.89.163
--> remote IP address 192.168.100.101
--> primary DNS address 10.99.0.11
--> secondary DNS address 204.59.152.208

Espero esta información haya sido útil.

Suerte!

martes, 20 de octubre de 2009

Configurar SSH en Router Cisco

Como todo sabemos, telnet es un protocolo que ofrece bajos niveles de seguridad, basta con que coloquemos un sniffer y podamos las ordenes que el usuario esta escribiendo, desde nombre del usuario hasta el password que este uso para entrar en el equipo.

Para poder habilitar SSH en un equipo Cisco, el IOS debe de tener los modulos de cifrado DES o 3DES, IPsec.

De resto, es bastante sencillo.


Le asignamos un nombre al equipo

Router(config)# hostname Router-SSH
Router-SSH(config)#

Luego configuramos un nombre de dominio para el equipo con el comando ip domain-name

Router-SSH(config)# ip domain-name acostanetwork.com
Router-SSH(config)#

Luego creamos una llave RSA para la autenticacion y cifrado de la data

Router-SSH(config)# crypto key generate rsa
The name for the keys will be: Router-SSH.acostanetwork.com
Choose the size of the key modulus in the range of 360 to 2048
for your General Purpose Keys. Choosing a key modulus greater than
512 may take a few minutes.

How many bits in the modulus [512]: 1024
% Generating 1024 bit RSA keys ...[OK]


Luego ejecutamos el siguiente comando para que el router solo acepte peticiones SSH, de esta manera deshabilitamos el TELNET en el equipo


Router-SSH(config-line)#transport input ssh


Y listo!



Saludos!!!!

miércoles, 14 de octubre de 2009

Secuencia de Escape / Break Sequence Minicom - Linux - Cisco

Descripción:
En muchas ocasiones es necesario entrar en rommon a los routers y/o LAN Switch Cisco, tipicamente para una recuperación de password.

En las últimas dos semanas casualmente he recibido llamadas de un par de amigos indicandome que el break sequence no les funciona con Minicom y Linux, es decir, no pueden hacer el password recovery porque no la secuencia de escape (para minicom: ctrl-a f) no les funciona.

Solución:
La solución es muy sencilla, probada con diversos terminales y sistemas operativo; incluso, muchas veces es más sencillo que la propia combinación de las teclas de escape:

* Apagar el Router/LAN Switch
* Conectar la consola al PC/Laptop con Linux
* Configurar Minicom con la siguiente configuración:
1200 baud rate
No parity
8 data bits
1 stop bit
No flow control

* Enciende el router/switch y presiona la barra espaciadora por 10-15 segundos
* Luego configura nuevamente Minicom a 9600 baud rate.
* Presiona enter

Listo, ya debes tener un prompt similar a:

rommon 2>

P.D. Esta solución también se encuentra documentada en Cisco en: http://www.cisco.com/en/US/products/hw/routers/ps133/products_tech_note09186a0080174a34.shtml#topic3

BGP Stream: un año de análisis sobre incidentes BGP

BGP Stream: un año de análisis sobre incidentes BGP 04/03/2024 Por  Alejandro Acosta , Coordinador de I+D en LACNIC LACNIC presenta  la prim...