lunes, 28 de febrero de 2011

Actualizar ProFtpd Plesk desde la version 9 hasta la 10.0.1

Aquí teneis una explicación en Castellano del bug http://wiki.woop.es/ProFTPD_TELNET_IAC

La solución de este bug es muy fácil

Como la gente de Atomicturtle.com son mas previsores agregaron a sus repositorios la versión 1.3.3c de psa-proftpd 1.3.3c solamente con agregar los repositorios al servidor y hacer despues un yum upgrade psa-proftpd basta para subsanar el bug de proFTPd

1) Agregamos el repositorio de Atomic con lo siguiente:

1
wget -O - http://www.atomicorp.com/installers/atomic |sh

2) Actualizamos psa-proftpd a la versión 1.3.3c con:

1
yum upgrade psa-proftpd

domingo, 27 de febrero de 2011

Configurando logwatch para automatizacion de lecturas de log

Log watch es un analizador de logs adaptable a nuestras necesidades, Logwatch analiza los logs en tu sistema en tiempos determinados y crea reportes en las tareas especificas que deceas analizar al detalle que requiera .

para instalar el programa instalamos primeramente el repositodio de Dag wiers

# rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

instalamos el programa necesario por medio de yum

# yum -y install logwatch

hacemos un respaldo del archivo de configuracion de logwatch ubicado en /etc/log.d/logwatch.conf

# cp /etc/log.d/logwatch.conf /etc/log.d/logwatch.conf-OLD

editamos el archivo /etc/log.d/logwatch.conf con las configuraciones que requerimos, el archivo se encuentra 100% documentado y explicado como adecuar a nuestras necesidades la aplicacion, en nuestro caso veremos como configurarlo con el mas alto nivel de información

# vi /etc/log.d/logwatch.conf

// indica el directorio donde tomara los logs
LogDir = /var/log

//directorio temporal
TmpDir = /tmp

//a que usuario enviara el correo generado con la informacion de los logs, existe la opcion de guardarlo en archivo

MailTo = root

// en este parametro al colocar "Yes" la salida sera enviada en pantalla y no por correo

Print = No

// dejar este parámetro en "Yes" si ud desea usar MkTemp y su versión soporta la opción -d

UseMkTemp = Yes

// folder MkTemp
MkTemp = /bin/mktemp

// se utiliza para indicar al programa que busque información en los archivos /var/log/message.1 o /var/log/messages.1.gz y no solo en /var/log/messages

Archives = Yes

//se utiliza para especificar el rango de periodo que recolectara la informacion de los logs . las opciones son , Today, Yesterday, All ,

Range = yesterday

//india el nivel de detalle de la información que sera enviara los parametros pueden ser Low, Med, High

Detail = High

// indica que servicios serán incluidos en el reporte para ver mas detalle en el archivo de configuración
Service = All

//indica el programa que utilizara para enviar el correo electronico

mailer = /bin/mail

para activar el script ( el rpm lo genera automatico ) se puede generar un enlace simbolico en el folder /etc/cron.daily de la sig manera

# ln -s /etc/log.d/scripts/logwatch.pl /etc/cron.daily

esto generara un reporte diario a las 4:00 am

How To Install BFD (Brute Force Detection) on CentOS


:: What is
Please take a look at this.


:: Installing dependency
Please take a look at this.


:: Installing BFD
[root@centoz ~]# mkdir download
[root@centoz ~]# cd download
[root@centoz download]# wget http://www.rfxnetworks.com/downloads/bfd-current.tar.gz
[root@centoz download]# tar -xzf bfd-current.tar.gz
[root@centoz download]# cd bfd-1.2/
[root@centoz bfd-1.2]# ./install.sh
.: BFD installed
Install path: /usr/local/bfd
Config path: /usr/local/bfd/conf.bfd
Executable path: /usr/local/sbin/bfd


:: Configuring BFD
[root@centoz bfd-1.2]# vi /usr/local/bfd/conf.bfd
==[ change on this options ]==
# send email alerts for all events [0 = off; 1 = on]
EMAIL_ALERTS="1"
# local user or email address alerts are sent to (separate multiple with comma)
EMAIL_ADDRESS="email@yourdomain.tld"
===================

:: Configure to Trasted IP
[root@centoz bfd-1.2]# vi /usr/local/bfd/ignore.hosts
==[ add your fix ip ]==
127.0.0.1
10.100.100.33
===============


:: Start BFD Service
[root@centoz bfd-1.2]# /usr/local/sbin/bfd -s

Instalacion de un Brute Force Detection Centos

how to install APF (Advanced Policy Firewall)

-:( what is ):-
please take a look at this.


-:( installing apf ):-
[root@centoz ~]# mkdir download
[root@centoz ~]# cd download
[root@centoz download]# wget http://www.rfxnetworks.com/downloads/apf-current.tar.gz
[root@centoz download]# tar -xzf apf-current.tar.gz
[root@centoz download]# cd apf-9.7-1/
[root@centoz apf-9.7-1]# ./install.sh

-:( configuring apf ):-
[root@centoz apf-9.7-1]# vi /etc/apf/conf.apf
++++[ example in and outbound ]+++++
# Common inbound (ingress) TCP ports
IG_TCP_CPORTS="21,22,25,53,80,443,110,143,6000_7000"

# Common inbound (ingress) UDP ports
IG_UDP_CPORTS="53"

# Outbound (egress) filtering
EGF="1"

# Common outbound (egress) TCP ports
EG_TCP_CPORTS="21,25,80,443,43"

# Common outbound (egress) UDP ports
EG_UDP_CPORTS="20,21,53"
++++++++++++++++++++


-:( starting apf service ):-
[root@centoz apf-9.7-1]# /usr/local/sbin/apf -s
after apf started, please set DEVEL_MODE="1" to "0" for automatically clearing stop firewall every 5 minutes from cron.
[root@centoz apf-9.7-1]# vi /etc/apf/conf.apf
+++++++++
DEVEL_MODE="0"
++++++++


-:( configure apf rules ):-
[root@centoz apf-9.7-1]# vi /etc/apf/deny_hosts.rules
+++[ add ip address for denied ]++++
# deny ip host
10.100.100.2

# deny ssh connection
tcp:in:d=22:s=0/0
out:d=22:d=0/0
++++++++++

[root@centoz apf-9.7-1]# vi /etc/apf/allow_hosts.rules
++++[ add ip address for allowed ]++++
# allow ip host
10.100.100.33

# allow ssh connection from host
tcp:in:d=22:s=10.100.100.33
out:d=22:d=10.100.100.33
++++++++++++++++


-:( restart apf service ):-
[root@centoz apf-9.7-1]# /usr/local/sbin/apf -r


-:( add apf service on booting ):-
[root@centoz apf-9.7-1]# chkconfig --level 2345 apf on

-:( take a look apf log ):-
[root@centoz apf-9.7-1]# tail -f /var/log/apf_log

viernes, 25 de febrero de 2011

Recopilacion de Articulos que me han sido utiles para darle mantenimiento y gestion de : Qmail, Deteccion de spam, Mantenimiento de la cola de correo,

Para iniciar, parar o reiniciar el servidor plesk / psa:

/etc/init.d/psa stop o psa start

Para iniciar, parar o reiniciar el servidor de correo por comandos:

/etc/init.d/qmail restart  | stop | start
 

Manejar la Cola de Correo Qmail con Plesk

Para ver las estadísticas de la cola:


/usr/local/psa/admin/bin/mailqueuemng -s
Messages in local queue: 0 Los mensajes en cola local: 0
Messages in remote queue: 0 Los mensajes en cola remota: 0
Messages in todo queue: 0 Los mensajes en cola de hacer: 0
Messages total: 0 Total de mensajes: 0
Messages found: 0 Los mensajes encontrados: 0
Timestamp: 1215870834 Timestamp: 1215870834
-

De esto se puede ver el estado de qmails local, remoto y hacer la lista.

- Si usted desea hacer una entrega de los mensajes en cola ahora ejecutar el siguiente comando

/usr/local/psa/admin/bin/mailqueuemng -a

- Para una lista de cola de mensajes remotos:

/usr/local/psa/admin/bin/mailqueuemng -R

- lista de cola de mensajes local:

/usr/local/psa/admin/bin/mailqueuemng -L / Usr / local / psa / admin / bin / mailqueuemng L-

- Para borrar los mensajes con un patrón particular en el asunto

/usr/local/psa/admin/bin/mailqueuemng -S”text”

eg: /usr/local/psa/admin/bin/mailqueuemng -S”failure notice”

Se eliminarán todos los mensajes de error en la entrega. Nota: si deseas ver el asunto de los mensajes que estan atascados en la cola de correo, puedes entrar a la carpeta: /var/qmail/queue/mess/ Ahi encontraras varias carpetas con nombres de numeros, y en cada una varios numeros, cada numero es un mensaje/correo solo tienes que darle a mirar/abrir el fichero y listo.
- Para borrar todos los mensajes de la cola (Utilizar con precaución - posible pérdida de datos)

/usr/local/psa/admin/bin/mailqueuemng -D

Como Tratar Problemas de Spam en Plesk - Qmail

Aqui anexo otro articulo que encontre, para ayudarnos a localizar correos en el ervidor de qmail, abrirlos, mirar su contenido, detectar posibles ataques de spam, etc. 
- Dependiendo del número de clientes alojados en un servidor, encontrar que cuenta está enviando spam puede resultar difícil.

Mediante consola podemos ver como está la cola de correo:

# /var/qmail/bin/qmail-qstat
messages in queue: 500
messages in queue but not yet preprocessed: 0

Tenemos 500 mensajes en la cola. Examinemos la cola mediante qmail-read. Tanto correo en cola sin enviar tiene pinta de spam.

# /var/qmail/bin/qmail-qread


Examinamos el contenido de los mensajes en la cola usando el gestor de cola de correo de Plesk o bien el comando less. Primero deberíamos encontrar el mensaje usando qmail-qread, luego encontrarmos el contenedor del fichero de correo en /var/qmail/queue con el comando find.

# /var/qmail/bin/qmail-read
[...]
20 Jan 2010 02:35:10 GMT #220458745 1552 <>
remote
user@yahoo.comEsta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
[...]

#find /var/qmail/queue/ -name 220458745
/var/qmail/queue/mess/12/220458745
/var/qmail/queue/remote/12/220458745
/var/qmail/queue/info/12/220458745

# less /var/qmail/queue/mess/12/220458745
Received: (qmail 10728 invoked from network); 20 Jan 2010 02:35:10 +0100
Received: from unknown (HELO User) (90.91.92.93)
by domain.com with SMTP; 20 Jan 2010 02:35:10 +0100
Reply-To: <
support@bankofamerica.comEsta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla >
From: “PayPal”<
support@bankofamerica.comEsta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla >
Subject: Bank of america
Date: Tue, 20 Jan 2010 02:35:10 +0100
MIME-Version: 1.0
Content-Type: text/html;
charset=”Windows-1251″
Content-Transfer-Encoding: 7bit
X-Priority: 1
X-MSMail-Priority: High
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
[...]

Vaya, parece que tenemos alguien enviando spam desde la dirección ip: 90.91.92.93 (es una ip ficticia de ejemplo como los datos del correo). Ahora deberíamos eliminar dichos mensajes antes de que nos metan la ip del servidor en una lista negra.
Una vez eliminados, comprobamos que seguimos teniendo los mismos mensajes.
Llega la hora de usar tcpdump para analizar el tráfico de dicha ip que nos está dando la lata.

# tcpdump -i eth0 -n src 90.91.92.93 \or dst 90.91.92.93 -w smtp.tcpdump -s 2048

Con esto analizamos todo el tráfico entrante y saliente de dicha ip y lo guardamos en un archivo llamado smtp.tcpdump, el cual luego analizaremos mediante el comando less.

220 server.domain.com ESMTP
helo User
250-server.domain.com
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-AUTH LOGIN CRAM-MD5 PLAIN
250-STARTTLS
250-PIPELINING
250 8BITMIME
AUTH LOGIN
334 VXNlcm5hbWU6
dGVzdA==
334 UGFzc3dvcmQ6
MTIzNDU=
235 go ahead

Quizá esté algo más enrevesado o con caracteres de otra codificación, pero tenemos que buscar lo que hay debajo de los números 334, y encontraremos usuario y contraseña.

Procedemos a decodificar esas cadenas de texto mediante perl:

#perl –MIME::Base64 -e ‘print decode_base64(“dGVzdA==”)’
#perl –MIME::Base64 -e ‘print decode_base64(“MTIzNDU=”)’

Esto nos revelará el usuario y contraseña con los que se ha autentificado dicho spammer y revisaremos el servidor, ya que un cliente ha creado un usuario llamado “test” con contrasela “12345″

# mysql -uadmin -p`cat /etc/psa/.psa.shadow` psa
[...]
mysql> SELECT m.mail_name, d.name, a.password FROM mail AS m LEFT JOIN (domains AS d, accounts AS a) ON (m.dom_id = d.id AND m.account_id = a.id) WHERE m.mail_name=’test’ AND a.password=’12345′;
+———–+————+———-+
| mail_name | name | password |
+———–+————+———-+
| test | example.com | 12345 |
+———–+————+———-+
1 row in set (0.01 sec)

Bien, ahora procedemos a eliminar la cuenta y repetirle al cliente que “NO SE DEBEN USAR CONTRASEÑAS INSEGURAS”

Se recomienda que se active en el servidor lo siguiente:

Ajustes de Servidor > Correo > Verificar las contraseñas para los buzones en el vocabulario.

Truco interesante para buscar cuentas de correo en plesk-qmail con contraseñas faciles:
Podemos incluso realizar comprobaciones mediante esta consulta, la cual nos indicará que usuarios de correo tienen como contraseña “12345″

SELECT m.mail_name, d.name, a.password FROM mail AS m LEFT JOIN (domains AS d, accounts AS a) ON (m.dom_id = d.id AND m.account_id = a.id) WHERE a.password=’12345′;
Fuentes: 
http://www.cordobyte.com/blog/2010/02/como-tratar-problemas-de-spam-en-plesk/ 
http://www.forosdelweb.com/f92/destrabar-cola-correo-no-procesado-625181/ 
http://youropensource.com/projects/482-How-to-Managethe-mail-queue-in-Plesk  

martes, 1 de febrero de 2011

Como saber el separador Decimal y el separado de Miles en C#

Bueno , derrepente en varios proyectos donde se maneje dinero necesitaremos saber cual es el separador decimal en nuestro IDIOMA.
En este caso para c# se averigua de la siguiente manera:

string s;

s = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator;
MessageBox.Show("El separador decimal es: '" + s + "'");

s = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyGroupSeparator;
MessageBox.Show("El separador de miles es: '" + s + "'");


Espero les sea de ayuda