Esta ves me a tocado crear un template para un switch 3com 4200G de 48 puertos, en este caso el template lo he creado sin la pantalla de uso de los puertos puesto que zabbix a tenido la idea genial de no vincular las pantallas de los templates a la pestaña "pantallas", por lo tanto sin mas, aqui el template.
https://sourceforge.net/projects/zt3crom4200g48port/
Como siempre las dudas y recomendaciones son bien recibidas.
PD: Al fin decidí agregar la plantilla dentro del template, a fin de cuentas es bastante útil.
miércoles, 9 de julio de 2014
martes, 17 de junio de 2014
Template lxc para scientific linux
Probando las "nuevas" tecnologías dentro de las que destacan los contenedores en linux, me decidí a probarlo, encontrando templates para debian, fedora y oracle linux? :S. Probé los contenedores debian y fedora y trabajan muy bien.
Pero al momento de crear un contenedor de tipo centos entro mi primera duda, no fue difícil una pequeña búsqueda en google y di con el template para centos, teniendo como primera pega que al momento de estar dentro del contenedor no se puede ver el espacio en el disco.
Desde ese momento me nació la duda si pasaría también el scientific linux u oracle linux; la primera que descarté fue oracle linux la cual arrastra el mismo problema, pero a la hora de instalar un scientific linux comenzaron mis problemas; lo primero que encontré fue un template viejo no funcional y con mucho trabajo por hacer.
https://github.com/johanek/toft/blob/master/scripts/lxc-templates/lxc-scientific-6
así que me decidí a echar mano de bash y entender un poco el proceso de la creación de los contenedores y como resultado aquí lo tenemos, un template para scientific linux que soporta limites dentro de los parámetros y sin arrastrar los problemas al ver el espacio en disco.
https://sourceforge.net/projects/lxctsl/
Espero que sea de utilidad para alguien y si se encuentran errores los informen.
Pero al momento de crear un contenedor de tipo centos entro mi primera duda, no fue difícil una pequeña búsqueda en google y di con el template para centos, teniendo como primera pega que al momento de estar dentro del contenedor no se puede ver el espacio en el disco.
Desde ese momento me nació la duda si pasaría también el scientific linux u oracle linux; la primera que descarté fue oracle linux la cual arrastra el mismo problema, pero a la hora de instalar un scientific linux comenzaron mis problemas; lo primero que encontré fue un template viejo no funcional y con mucho trabajo por hacer.
https://github.com/johanek/toft/blob/master/scripts/lxc-templates/lxc-scientific-6
así que me decidí a echar mano de bash y entender un poco el proceso de la creación de los contenedores y como resultado aquí lo tenemos, un template para scientific linux que soporta limites dentro de los parámetros y sin arrastrar los problemas al ver el espacio en disco.
https://sourceforge.net/projects/lxctsl/
Espero que sea de utilidad para alguien y si se encuentran errores los informen.
lunes, 3 de marzo de 2014
verificar RBL/listas negras mediante scritp en bash
Como todo mundo ya conoce y a vivido en carne propia el molesto spam y el día de hoy tuve otro encuentro cercano con un cliente listado en RBL's, decidí comenzar en la búsqueda de como automatizar la verificación de determinados servidores en las listas negras mas populares.
Me encontré con este script que si bien es de mi utilidad no llenaba todos los requisitos que necesitaba, así que le hice ciertas modificaciones para que se adaptará a mis necesidades.
#!/usr/bin/env bash
DEBUG="$1"
LOG="`mktemp`"
SRV="correo.prueba.org.co mail.example.com.co"
# RBL list from http://www.anti-abuse.org/multi-rbl-check/
RBL="bl.spamcop.net
cbl.abuseat.org
b.barracudacentral.org
dnsbl.sorbs.net
http.dnsbl.sorbs.net
dul.dnsbl.sorbs.net
misc.dnsbl.sorbs.net
smtp.dnsbl.sorbs.net
socks.dnsbl.sorbs.net
spam.dnsbl.sorbs.net
web.dnsbl.sorbs.net
zombie.dnsbl.sorbs.net
dnsbl-1.uceprotect.net
pbl.spamhaus.org
sbl.spamhaus.org
xbl.spamhaus.org
zen.spamhaus.org
bl.spamcannibal.org
psbl.surriel.com
ubl.unsubscore.com
dnsbl.njabl.org
combined.njabl.org
rbl.spamlab.com
dnsbl.ahbl.org
ircbl.ahbl.org
dyna.spamrats.com
noptr.spamrats.com
spam.spamrats.com
cbl.anti-spam.org.cn
cdl.anti-spam.org.cn
dnsbl.inps.de
drone.abuse.ch
httpbl.abuse.ch
dul.ru
korea.services.net
short.rbl.jp
virus.rbl.jp
spamrbl.imp.ch
wormrbl.imp.ch
virbl.bit.nl
rbl.suresupport.com
dsn.rfc-ignorant.org
ips.backscatterer.org
spamguard.leadmon.net
opm.tornevall.org
netblock.pedantic.org
multi.surbl.org
ix.dnsbl.manitu.net
tor.dan.me.uk
rbl.efnetrbl.org
relays.mail-abuse.org
blackholes.mail-abuse.org
rbl-plus.mail-abuse.org
dnsbl.dronebl.org
access.redhawk.org
db.wpbl.info
rbl.interserver.net
query.senderbase.org
bogons.cymru.com
csi.cloudmark.com"
for server in $SRV
do
lip=$(dig +short $server)
for ip in $lip
do
rip=$(echo $ip|awk -F"." '{for(i=NF;i>0;i--) printf i!=1?$i".":"%s",$i}')
echo $server $rip
for rbl in $RBL
do
if [ ! -z "$DEBUG" ]
then
echo "testing $server ($ip) against $rbl"
fi
result=$(dig +short $rip.$rbl)
if [ ! -z "$result" ]
then
echo "$server ($ip) esta en $rbl con codigo $result" >> $LOG
echo "$server ($ip) devolvió el siguiente mensaje $(dig +short -t txt $rip.$rbl)" >> $LOG
echo "" >> $LOG
fi
if [[ ! -z "$DEBUG" && -z "$result" ]]
then
echo "\`->negative"
fi
done
done
done
if [ ! -z "$(cat $LOG)" ] ; then
cat $LOG | mail -s "Spam en uno de nuestros clientes" admin@example.com.co
fi
rm $LOG
Las modificaciones mas relevantes fueron el hecho de que en caso que un nombre de los servidores a verificar tuviese mas de una ip estas también fuesen verificadas y el envío de la notificación a través de correo electrónico en caso de que encuentre algún servidor listado.
Eso es todo por el momento, agradezco los comentarios y mejoras que se le puedan hacer al script.
Me encontré con este script que si bien es de mi utilidad no llenaba todos los requisitos que necesitaba, así que le hice ciertas modificaciones para que se adaptará a mis necesidades.
#!/usr/bin/env bash
DEBUG="$1"
LOG="`mktemp`"
SRV="correo.prueba.org.co mail.example.com.co"
# RBL list from http://www.anti-abuse.org/multi-rbl-check/
RBL="bl.spamcop.net
cbl.abuseat.org
b.barracudacentral.org
dnsbl.sorbs.net
http.dnsbl.sorbs.net
dul.dnsbl.sorbs.net
misc.dnsbl.sorbs.net
smtp.dnsbl.sorbs.net
socks.dnsbl.sorbs.net
spam.dnsbl.sorbs.net
web.dnsbl.sorbs.net
zombie.dnsbl.sorbs.net
dnsbl-1.uceprotect.net
pbl.spamhaus.org
sbl.spamhaus.org
xbl.spamhaus.org
zen.spamhaus.org
bl.spamcannibal.org
psbl.surriel.com
ubl.unsubscore.com
dnsbl.njabl.org
combined.njabl.org
rbl.spamlab.com
dnsbl.ahbl.org
ircbl.ahbl.org
dyna.spamrats.com
noptr.spamrats.com
spam.spamrats.com
cbl.anti-spam.org.cn
cdl.anti-spam.org.cn
dnsbl.inps.de
drone.abuse.ch
httpbl.abuse.ch
dul.ru
korea.services.net
short.rbl.jp
virus.rbl.jp
spamrbl.imp.ch
wormrbl.imp.ch
virbl.bit.nl
rbl.suresupport.com
dsn.rfc-ignorant.org
ips.backscatterer.org
spamguard.leadmon.net
opm.tornevall.org
netblock.pedantic.org
multi.surbl.org
ix.dnsbl.manitu.net
tor.dan.me.uk
rbl.efnetrbl.org
relays.mail-abuse.org
blackholes.mail-abuse.org
rbl-plus.mail-abuse.org
dnsbl.dronebl.org
access.redhawk.org
db.wpbl.info
rbl.interserver.net
query.senderbase.org
bogons.cymru.com
csi.cloudmark.com"
for server in $SRV
do
lip=$(dig +short $server)
for ip in $lip
do
rip=$(echo $ip|awk -F"." '{for(i=NF;i>0;i--) printf i!=1?$i".":"%s",$i}')
echo $server $rip
for rbl in $RBL
do
if [ ! -z "$DEBUG" ]
then
echo "testing $server ($ip) against $rbl"
fi
result=$(dig +short $rip.$rbl)
if [ ! -z "$result" ]
then
echo "$server ($ip) esta en $rbl con codigo $result" >> $LOG
echo "$server ($ip) devolvió el siguiente mensaje $(dig +short -t txt $rip.$rbl)" >> $LOG
echo "" >> $LOG
fi
if [[ ! -z "$DEBUG" && -z "$result" ]]
then
echo "\`->negative"
fi
done
done
done
if [ ! -z "$(cat $LOG)" ] ; then
cat $LOG | mail -s "Spam en uno de nuestros clientes" admin@example.com.co
fi
rm $LOG
Las modificaciones mas relevantes fueron el hecho de que en caso que un nombre de los servidores a verificar tuviese mas de una ip estas también fuesen verificadas y el envío de la notificación a través de correo electrónico en caso de que encuentre algún servidor listado.
Eso es todo por el momento, agradezco los comentarios y mejoras que se le puedan hacer al script.
lunes, 30 de diciembre de 2013
Dansguardian Console Manager ncurses Version (Beta)
Después de estar tocando cosas aquí y allá con mi primera versión de dansguardiancm y ver lo incomodo que resultaba trabajar con él, decidí crear otra versión un poco mas seria y un poco mas elaborada, esta ves escrita en C++ apoyandome en las librerias ncurses, la nueva versión es mucho mas amigable y mucho mas facil de expandir sus funcionalidades ya que se cuidaron bastantes aspectos es la programación estructurada (si, si ya se que debo hacerlo en POO pero eso será para futuras versiones) que no es lo mejor pero por algo se empieza (recuerden no soy desarrollador) asi que al igual que en la versión anterior lo cargue a sourceforge allí encontraran la wiki y demas puntos a considerar.
Sobra decir que espero sus comentarios a fines de hacer mejor la herramienta y claro desempolvar c++ ya que hacía años que no hacía algo minimamente serio :)
Dansguardiancm ncurses version
Sobra decir que espero sus comentarios a fines de hacer mejor la herramienta y claro desempolvar c++ ya que hacía años que no hacía algo minimamente serio :)
Dansguardiancm ncurses version
viernes, 6 de septiembre de 2013
Agregar alias y enmascarar dominio en Zimbra
Esta ves les comento la situación que se presento con un cliente el cual decidió cambiar su dominio de .com a .net, como ya sabrán cambiar el dominio principal en zimbra no es cosa que sea facil por no decir que imposible a cambio de intentar una tarea suicida lo que optamos fue por crear un alias y enmascarar el correo de salida como lo haría cualquier buen samaritano, para el ejemplo vamos a utilizar los dominios "dominioexistente.com" y "dominioalias.net".
Ahora vamos a proceder con los pasos:
1) Realizar los ajustes acordes necesarios en el DNS, ajustes tales como registros MX, PTR (este es con su isp) y registros spf
2) Asegurarse de realizar un backup, nunca esta demás hacerlo y te puede sacar de un apuro en caso que los dedos te traicionen al momento de teclear algún comando.
3) Ahora como usuario zimbra ejecutamos el siguiente comando: "zmprov createAliasDomain dominioalias.net dominioexistente.com zimbraMailCatchAllForwardingAddress @dominioexistente.com" en este punto ya tenemos creado el alias es decir que todos los emails que lleguen a dominioalias.net serán redirigidos a dominioexistente.com.
4) Una ves creado el alias ahora debemos enmascarar el correo saliente, es decir que todos los correos salientes no se envíen con @dominioexistente.com si no dominioalias.net esto lo hacemos con el siguiente comando: "zmprov md dominioexistente.com zimbraMailCatchAllAddress @dominioexistente.com zimbraMailCatchAllCanonicalAddress @dominioalias.net".
5) Hacer pruebas de envío y recepción de correo
En caso que se quiera eliminar el enmascaramiento sencillamente se ejecuta el mismo comando con el que se agrego pero anteponiendo el menos a la opción del enmascaramiento, esto de la siguiente forma: "zmprov md dominioexistente.com zimbraMailCatchAllAddress @dominioexistente.com -zimbraMailCatchAllCanonicalAddress @dominioalias.net"
Esto sería todo en esta ocasión, espero que sea de ayuda a alguien y como siempre las criticas o preguntas son bienvenidas.
Ahora vamos a proceder con los pasos:
1) Realizar los ajustes acordes necesarios en el DNS, ajustes tales como registros MX, PTR (este es con su isp) y registros spf
2) Asegurarse de realizar un backup, nunca esta demás hacerlo y te puede sacar de un apuro en caso que los dedos te traicionen al momento de teclear algún comando.
3) Ahora como usuario zimbra ejecutamos el siguiente comando: "zmprov createAliasDomain dominioalias.net dominioexistente.com zimbraMailCatchAllForwardingAddress @dominioexistente.com" en este punto ya tenemos creado el alias es decir que todos los emails que lleguen a dominioalias.net serán redirigidos a dominioexistente.com.
4) Una ves creado el alias ahora debemos enmascarar el correo saliente, es decir que todos los correos salientes no se envíen con @dominioexistente.com si no dominioalias.net esto lo hacemos con el siguiente comando: "zmprov md dominioexistente.com zimbraMailCatchAllAddress @dominioexistente.com zimbraMailCatchAllCanonicalAddress @dominioalias.net".
5) Hacer pruebas de envío y recepción de correo
En caso que se quiera eliminar el enmascaramiento sencillamente se ejecuta el mismo comando con el que se agrego pero anteponiendo el menos a la opción del enmascaramiento, esto de la siguiente forma: "zmprov md dominioexistente.com zimbraMailCatchAllAddress @dominioexistente.com -zimbraMailCatchAllCanonicalAddress @dominioalias.net"
Esto sería todo en esta ocasión, espero que sea de ayuda a alguien y como siempre las criticas o preguntas son bienvenidas.
martes, 13 de agosto de 2013
fedora 18 - mouse bloqueado al inicio / mouse blocked when start
Bueno esta ves el detalle esta con el mouse y fedora 18 (fedora 19 con hw ati vaya que se lleva mal), el inconveniente se esta presentando a la hora del arranque, el sistema inicia correctamente pero despues de uno o dos minutos el touchpad comienza a fallar y se bloquea por unos minutos hasta que vuelve a reaccionar, esto claramente es un dolor de cabeza que no e podido solucionar y no se si culpar a los drivers propietarios de ati (seguramente que si) o como tal un bug del f18.
El tema se me ocurrió "y que pasa si a nivel de kernel desconecto el mouse y lo vuelvo a conectar" a pues vaya trabajo para hacer esto, pues aquí esta lo que hice para poder desbloquear el mouse en caso de que se quede bloqueado.
echo -n "serio1" | tee /sys/bus/serio/drivers/psmouse/unbind
ojo que serio1 debe existir dentro del directorio /sys/bus/serio/drivers/psmouse/ de lo contrario no va a funcionar, aquí la muestra de como luce el directorio.
ls -la /sys/bus/serio/drivers/psmouse/
total 0
drwxr-xr-x. 2 root root 0 ago 13 09:00 .
drwxr-xr-x. 4 root root 0 ago 13 09:00 ..
--w-------. 1 root root 4096 ago 13 09:11 bind
-rw-r--r--. 1 root root 4096 ago 13 09:10 bind_mode
-r--r--r--. 1 root root 4096 ago 13 09:10 description
lrwxrwxrwx. 1 root root 0 ago 13 09:10 module -> ../../../../module/psmouse
lrwxrwxrwx. 1 root root 0 ago 13 10:55 serio1 -> ../../../../devices/platform/i8042/serio1
--w-------. 1 root root 4096 ago 13 09:00 uevent
--w-------. 1 root root 4096 ago 13 09:35 unbind
si solo ejecutamos el comando ya mencionado el kernel se encargara de reactivarlo y listo el mouse volverá a estar funcional.
En caso que se desactive el tapclik y el vertscroll pueden utilizar los siguientes comandos desde el usuario de trabajo.
synclient TapButton1=1
synclient VertEdgeScroll=1
Bueno eso es todo por el momento hasta el momento en que encuentre cual es la raiz del problema.
Hasta la próxima.
El tema se me ocurrió "y que pasa si a nivel de kernel desconecto el mouse y lo vuelvo a conectar" a pues vaya trabajo para hacer esto, pues aquí esta lo que hice para poder desbloquear el mouse en caso de que se quede bloqueado.
echo -n "serio1" | tee /sys/bus/serio/drivers/psmouse/unbind
ojo que serio1 debe existir dentro del directorio /sys/bus/serio/drivers/psmouse/ de lo contrario no va a funcionar, aquí la muestra de como luce el directorio.
ls -la /sys/bus/serio/drivers/psmouse/
total 0
drwxr-xr-x. 2 root root 0 ago 13 09:00 .
drwxr-xr-x. 4 root root 0 ago 13 09:00 ..
--w-------. 1 root root 4096 ago 13 09:11 bind
-rw-r--r--. 1 root root 4096 ago 13 09:10 bind_mode
-r--r--r--. 1 root root 4096 ago 13 09:10 description
lrwxrwxrwx. 1 root root 0 ago 13 09:10 module -> ../../../../module/psmouse
lrwxrwxrwx. 1 root root 0 ago 13 10:55 serio1 -> ../../../../devices/platform/i8042/serio1
--w-------. 1 root root 4096 ago 13 09:00 uevent
--w-------. 1 root root 4096 ago 13 09:35 unbind
si solo ejecutamos el comando ya mencionado el kernel se encargara de reactivarlo y listo el mouse volverá a estar funcional.
En caso que se desactive el tapclik y el vertscroll pueden utilizar los siguientes comandos desde el usuario de trabajo.
synclient TapButton1=1
synclient VertEdgeScroll=1
Bueno eso es todo por el momento hasta el momento en que encuentre cual es la raiz del problema.
Hasta la próxima.
domingo, 12 de mayo de 2013
Dansguardian console manager
Bueno, despues de mucho tiempo de no publicar nada en mi blog y ver que ya era necesario de agregar algo, pues aquí esta.
dansguardiancm (dansguardian console manager), ;) hasta suena bonito y todo jjeje, esto no es mas que una iniciativa propia al ver que dansguardian no cuenta con un configurador amigable y todo toca a través de los archivos de configuración (claro soluciones como ipcop, clearos, entre otros traen estas interfaces pero todas web).
A esta ves fui un poco mas lejos y subi mi script a sourceforge jejeje, espero poder ir mejorando este script con miras a que se convierta en una opción de confiar y de utilidad a la hora de manipular dansguardian desde consola.
Pues no es mas aquí dejo en enlace a la url:
https://sourceforge.net/projects/dansguardiancm
Por el momento no lo e documentado pero a grosso modo cuenta con una sección de configuración al inicio y eso es todo el script se encarga de el resto.
Saludos y pues espero criticas de cualquier tipo a fin de cuenta si es critica es constructiva ;).
dansguardiancm (dansguardian console manager), ;) hasta suena bonito y todo jjeje, esto no es mas que una iniciativa propia al ver que dansguardian no cuenta con un configurador amigable y todo toca a través de los archivos de configuración (claro soluciones como ipcop, clearos, entre otros traen estas interfaces pero todas web).
A esta ves fui un poco mas lejos y subi mi script a sourceforge jejeje, espero poder ir mejorando este script con miras a que se convierta en una opción de confiar y de utilidad a la hora de manipular dansguardian desde consola.
Pues no es mas aquí dejo en enlace a la url:
https://sourceforge.net/projects/dansguardiancm
Por el momento no lo e documentado pero a grosso modo cuenta con una sección de configuración al inicio y eso es todo el script se encarga de el resto.
Saludos y pues espero criticas de cualquier tipo a fin de cuenta si es critica es constructiva ;).
Suscribirse a:
Entradas (Atom)