Archivo de la categoría: Sistemas

Gestor de scripts Unix centralizado y distribuible

Voy a describir el funcionamiento y la estructura de una herramienta que creé hace tiempo, pero que creo que puede serle útil a más gente, la herramienta sirve para gestionar los scripts de forma centralizada en entornos de tipo Unix y se llama DCSM de sus siglas en inglés (Distributable Centralized Scripts Manager, Gestor de scripts centralizado y distribuible) esta programada mediante shell scripts y se desarrolló sobre Solaris pero funciona en cualquier Unix, el único requisito es un servidor CVS (era muy complejo instalar subversion en los Solaris 8 😉 ) y crond. A continuación reproduzco el documento que describe esta herramienta.

La situación general, en gran cantidad de redes,  a la hora de gestionar los scripts de los servidores, que siempre existen, es crear los scripts específicos para cada servidor, y si es necesario en otro servidor se copia. Este sistema de administración de scripts es muy típico y, aunque evita algo de trabajo, tiene unas claras desventajas, las que intento solucionar son las siguientes:

  1. Es difícil hacer un seguimiento de los scripts que están en cada servidor.
  2. Si se modifica un script que se usa en más de un servidor hay que modificarlo en cada uno de los servidores, si tenemos en cuenta el punto 1 puede ser que no se apliquen los cambios deseados a todos los servidores.

Estas desventajas se pueden resolver mediante la centralización de la gestión y distribución de los scripts.

Sigue leyendo

Convertir un certifacado pfx (Microsoft) al formato PEM con openssl

  1. openssl pkcs12 -in archivo.pfx -out resultado.pem
  2. openssl pkcs12 -nokeys -in archivo.pfx -out resultado.cert
  3. openssl pkcs12 -nocerts -in archivo.pfx -out resultado.key -nodes
  4. Si vas a usar el certificado en un Cisco CSS hay que eliminar todo el contenido delante de «—–BEGIN RSA PRIVATE KEY—–» en el archivo resultado.key

Como saber la versión de gcc usada para compilar el kernel de Linux

Quien no ha compilado un módulo X y al intentar cargarlo se ha encontrado con el desagradable mensaje de que no se puede cargar el módulo por que se ha compilado con una versión de gcc distinta a la utilizada para compilar el kernel. Cada vez que me pasa me encuentro con lo mismo…¿Cómo se que versión de gcc utilizaron para compilar el kernel? y es que es tan sencillo que siempre se me olvida, a ver si al escribirlo aquí se me queda también en la cabeza y si no pues aquí lo tengo… bueno es tan sencillo como ejecutar en un terminal:

shell#: cat /proc/version

¿fácil no?

byte byte 😉

Conectar Microsoft SCCM a ISA Server 2006

Al intentar conectar Microsoft Service Center Configuration Manager (SCCM) con Microsoft ISA server las conexiones RPC eran denegadas, al intentar conectar mediante wmi desde la administración del sistema tampoco se podía conectar. Buscando un poco se encuentran varias soluciones como: agregar el servidor SCCM al conjunto de equipos «Equipos de administración remota» o desactivar la comprobación estricta de RPC. Pero la única que me ha funcionado a mi ha sido añadir una excepción a la regla del sistema que gestiona la administración remota y crear una que la sustituya para el servidor SCCM añadiendole el rango de puertos 1024-6535 para las conexiones RPC. Los pasos son.

  1. Abrir la sección de Directiva de firewall
  2. Añadir un protocolo para los puertos de salida 1024 a 65535, lo llamaré «Puertos > 1024 salida», en el panel derecho: Herramientas>Protocolos>Nuevo>Protocolo. Añadir los puertos 1024 a 65535 TCP de salida. Si no se desea abrir todo el rango superior al 1024 hay que configurar el RPC en el sistema para que use unos puertos concretos en lugar de uno aleatorio por encima del 1024, seguir los pasos descritos en este articulo de la KB de Microsoft: http://support.microsoft.com/kb/154596/en-us/
  3. Añadir una regla nueva, la llamaremos sccm en el ejemplo
  4. La regla sccm debe permitir el tráfico de los protocolos: Control de Firewall de Microsoft, Datagrama NetBios, RPC (todas las interfaces), Servicio de nombre NetBios, Sesión NetBios y el protocolo creado en el punto anterior Puertos > 1024 salida
  5. La regla se debe aplicar al trafico que venga del servidor SCCM y la red Host local y enviado a los destinos Host local y al servidor SCCM, debe permitirse al conjunto de usuarios Todos los usuarios
  6. Una vez creada la regla pulsar el botón derecho sobre ella, seleccionar la opción Configurar protocolo RPC y deseleccionar el checkbox Hacer cumplir la comprobación RPC estricta
  7. Ahora tan solo queda añadir una excepción para el servidor SCCM en la directiva del sistema, seleccionar la pestaña Tareas del panel derecho y pulsar sobre la opción Mostrar reglas de directivas del sistema
  8. Doble click sobre la directiva Permitir la administración remota desde equipos seleccionados que usan MMC, seleccionar la pestaña «De» y añadir el servidor SCCM en el apartado excepciones, cerrar, aplicar los cambios y voila!! funciona
  9. Para finalizar recomiendo que se añada la regla al final de las permisivas para que no se solape con una regla ya existente, debido a que se aplica a todos los puertos.

Una vez comprobado que todo funciona como debe (se puede acceder los recursos compartidos, hacer peticiones WMI remotas) se puede restringir más el acceso de esta regla, ya sea por usuarios o por origenes de la petición.

Byte byte my nerds 😉

Configurar Linux como cliente web de Microsoft ISA Server o Forefront en 5 pasos

El otro día en el curro me iva fatal la conexión ADSL que utilizaba para funcionar con el único pc con Linux de la empresa (un laptop viejo que me cedieron en su día), por otro lado buscando un proxy en python para una idea que me ronda la cabeza encontré proxies que soportan la autenticación NTLM (NT Lan Manager) que es la usada por Windows y, por lo tanto, por el ISA server o Forefront, entonces se me encendió la bombilla, hice una busqueda rápida y efectivamente!! se puede validar un Linux contra un ISA server mediante un proxy que soporte NTLM, siempre y cuando el servidor de Microsoft tenga activada la opción de ser proxy web. En los repositorios de ubuntu hay varios, yo he elegido el cntlm. No es necesario añadir el pc Linux al dominio ya que conectaremos al proxy web pero ya que estamos ¿porqué no hacerlo?

Pasos a seguir

1-Añadir el pc al dominio mediante likewise-open

Como he dicho esto es OPCIONAL, y se puede obviar si no se dispone de una cuenta con suficientes privilegios para añadir elementos al Active Directory o simplemente no queremos que la máquina forme parte del mismo

  • shell#: sudo aptitude install likewise-open5
  • shell#: sudo domainjoin-cli dominio usuario_administrador_del_dominio
  • shell#: sudo /etc/init.d/likewise-open restart

Si se desea añadir el usuario del dominio a sudo hay que  editar /etc/sudoers y añadir una line del tipo DOMINIO\\usuario permisos

2- Instalar y configurar el proxy

Simplemente así

A- Instalar cntlm

shell#: sudo aptitude install cntlm

B -Editar/etc/cntlm.conf

shell#: sudo vi /etc/cntlm.conf

y establecer las variables: Username, Domain, Password, Proxy (Normalmete es ip_isa_server:8080)

C -Ejecutar

shell#: sudo cntlm -M http://abdulet.net (o cualquier url)

Default config file opened successfully
cntlm: Proxy listening on 127.0.0.1:3128
cntlm: Resolving proxy 192.168.50.37…
cntlm: Workstation name used: kubuntu
cntlm: Using proxy proxyserver:8080
Config profile  1/11… OK (HTTP code: 301)
—————————-[ Profile  0 ]——
Auth            NTLMv2
PassNTLMv2      XXXXXXXXXXXXXXXXXXXXXXX

————————————————
cntlm: Terminating with 0 active threads

D -Vomver a editar /etc/cntlm.conf, pegar el texto en rojo ¿Qué… en donde? pues donde más rabia te de 😉 y además borrar la linea del Password en texto plano

E -Reiniciar el proxy

shell#: sudo /etc/init.d/cntlm restart

F -Configurar las aplicaciones para usar el proxy 127.0.0.1 puerto 3128 (estas opciones se puede cambiar en el archivo /etc/cntlm.conf). Para configurar el proxy para las aplicaciones en general hay que editar el archivo .profile

shell#: vi .profile

, añadir estas lineas

http_proxy=»http://localhost:3128″

ftp_proxy=»ftp://localhost:3128″

y volver a iniciar sesión

Y a disfrutar la navegación!!

Como evitar las contraseñas al iniciar sesión en Gnome, también la de la wifi ;)

Aún que no sea lo más seguro, la verdad es que cansa tener que escribir la contraseña cada vez que enciendo el ordenador, sobre todo cuando no tengo nada que esconder en él y si alguien lo necesita se encuentre con este tipo de problemas, así que voy a explicar como hacer que Gnome no pida ningún tipo de contraseña, ni para iniciar sesión ni para conectarse a Internet o usar alguna de las contraseñas que están almacenadas en el anillo de claves. Sigue leyendo

Como activar/desactivar Ctrl+alt+backspace en Xorg

En Ubuntu (9,04) Jaunty jackalope han decidido desactivar el reinicio del servidor Xorg mediante la combinación de teclas Ctrl+alt+backspace. Esto es algo que suelo utilizar bastante así que buscando un poco por internet encontré la manera de volver a activarlo, hay dos opciones una es intalando la aplicación dontzap. Pero para quien, como yo, no quiera instalar una aplicación para gestionar una opción del servido Xorg, tan solo hay que establecer la opción del servidor X DontZap editando el fichero /etc/X11/xorg.conf y añadiendole estas lineas:

Section «ServerFlags»
Option «DontZap» «false»
EndSection

La opción DontZap indica al servidor Xorg que no capture la pulsación de esta combinación de teclas, si la establecemos a false (siguiendo la lógica de doble negación) estaremos activando la combinación, para desativarla de nuevo tan solo hay que establecer la opción a «true» o borrar estas lineas 😉

Compilar madwifi para injectar paquetes con el chipset AR5008 de atheros en Ubuntu 9.04 (Jaunty)

1-Pasos rápidos (Todo está explicado en detalle en el siguiente punto)

  • SO:  Ubuntu 9.04 jaunty (ejecuta el comando lsb_release -a para obtenerla)
  • Tarjeta wifi: Atheros Communications Inc. AR5008 Wireless Network Adapter (rev 01) (ejecuta el comando lscpi)
  • Kernel: 2.6.28-11-generic (obtenido mediante el comando uname -a)
  • gcc del kernel: gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) (ejecuta: cat /proc/version)

Para los que tengan esta versión de ubuntu aquí dejo un paquete con el driver listo para ser usado 😉 madwifi-hal-01056-r4003_20090416-1_i386

1-Obtener los drivers de madwifi-hal de la página de snapshots del projecto madwifi

2-Obtener el parche desde esta web r3745-corregido o mediante la orden:

wget http://patches.aircrack-ng.org/madwifi-ng-r3745.patch

3-Preparar, compilar el código, cargar el módulo y probar la injección

cd src

tar zxf madwifi-hal-0.10.5.6-current.tar.gz

cd madwifi-hal-0.10.5.6-r4003-20090416/

sudo aptitude install patch

patch -p1 < ../r3745.patch-corregido

make && sudo make install

sudo modprobe -r ath9k && sudo modprobe ath_pci

sudo airmon-ng start wifi0

Found 5 processes that could cause trouble.
If airodump-ng, aireplay-ng or airtun-ng stops working after
a short period of time, you may want to kill (some of) them!

PID    Name
2834    wpa_supplicant
2851    avahi-daemon
2852    avahi-daemon
5332    NetworkManager
9426    dhclient
Process with PID 9426 (dhclient) is running on interface ath0

Interface    Chipset        Driver

wifi0        Atheros        madwifi-ng
ath0        Atheros        madwifi-ng VAP (parent: wifi0)
ath1        Atheros        madwifi-ng VAP (parent: wifi0) (monitor mode enabled)

sudo aireplay-ng -9 ath1
18:25:52  Trying broadcast probe requests…
18:25:52  Injection is working!
18:25:54  Found 5 APs

Perfecto listo y funcionando 😉

Sigue leyendo