Redireccionar emails salientes a la IP que queramos

La necesidad de redireccionar hacia otra IP todos los emails salientes en un servidor puede ser debido a que hallan metido la IP principal de salida SMTP en alguna buena jodida lista negra en la que tarden mucho en des-listar la IP. Para solucionar este problema rápidamente hay que redireccionar todo el tráfico saliente del puerto 25 o 587 (o al puerto que tengamos configurado el SMTP) hacia otra IP que tengamos configurada en nuestro servidor. La regla de IPTables es la siguiente:

Regla para el puerto 25:


iptables -t nat -A POSTROUTING -p tcp --dport 25 -j SNAT --to-source AQUI-LA-NUEVA-IP

raiola manda y no el panda

Monitoriza tu servidor con Glance

glances

Al igual que conocéis Htop, en está ocasión vamos a ver que es y como se instala Glance.

Glance es una herramienta de monitoreo basado en CLI curses para GNU/Linux y BSD OS. Glance es mucho más completo que el ultra conocido HTOP.
Glances utiliza la librería PsUtil para obtener la información del sistema. Está desarrollada en Phyton.

glance-screenshot

Instalación

Pre-requisitos:

  • Python 2.6+ (no probado con Python 3+)
  • build-essential (para instalación vía Pypi y setup.py)
  • python-dev (para instalación vía Pypi)
  • python-setuptools (para instalación vía setup.py)
  • python-psutil 0.4.1+ (reemplaza las librería anteriores libstatgrab’s lib)
  • python-jinja2 2.0+ (opcional para exportar a HTML)
  • pysensors (librería Python para estadísticas de sensores)

Desde administrador de paquetes (la manera mas fácil)

Paquetes existen para Debian (SID), Arch, Fedora, RedHat, FreeBSD

Desde PyPi (forma facil y multiplatforma)

PyPi es una administrador de paquetes no oficial.

Primero necesitas instalar pypi en tu sistema. Por ejemplo en Ubuntu/Xubuntu:


sudo apt-get install python-pip build-essential python-dev

Luego, instalar la ultima version de Glance:


sudo pip install Glances

Esta instalación es básica para servidores y/o equipos con sistemas Debian/Ubuntu. Para instalar Glance en servidores basados en RHEL/Centos hay que instalar repositorios EPEL y después hacer


yum -y install python-pip

Ejecucion de Glance

En modo Standalone

Si quiere monitorear la maquina local, ejecuta:

glance

En modo cliente/servidor

Si quieres monitorear un maquina remotamente (llamado servidor) desde otra (llamada cliente)

Ejecuta este comando en el servidor:


server$ glances -s

Y este en el cliente:


client$ glances -c @server

Donde @server es la IP del servidor o el nombre del servidor

Glance utiliza el esquema de servicio XML/RPC y puede ser usado por otro software cliente

Guía de usuario

Por defecto las estadísticas se actualizan cada segundo, para cambiar esto puede usar la opción -t. Por ejemplo para definir la actualización cada 5 segundos seria:

glances -t 5

Las estadisticas importantes estan coloreadas como:

  • VERDE: conteo de estadísticas es “OK”
  • AZUL: conteo de estadistica es “CAREFUL” (Cuidado)
  • MAGENTA: conteo de estadistica es “WARNING” (Alarma)
  • ROJO: conteo de estadística es “CRITICAL” (Critico)

Cuando Glance esta en ejecucion puedes presionar las siguiente teclas:

‘h’ muestra el mensaje de ayuda en pantalla con las teclas que puedes utilizar

‘a’ definir el método automático. Los procesos son ordenados automaticamente

Si CPU > 70%, ordena los procesos por consumo de CPU

Si MEM > 70%, orden los procesos por consumo de tamaño de memoria

‘b’ intercambia entre bit/s o byte/s para la E/S de red

‘c’ ordena la lista de procesos por consumo de CPU

‘d’ habilita/deshabilita las estadísticas de I/O en disco

‘e’ habilita el modulo de sensores (la librería PySensors es necesaria; Solo Linux)

‘f’ hablita/deshabilita las estadísticas del sistema de archivos

‘l’ habilita/deshabilita el logeo de la aplicación.

‘m’ ordena la lista de procesos por consumo de memoria

‘n’ habilita/deshabilita las estadisticas de la interfaz de red

‘p’ ordena por el nombre del proceso

‘w’ elimina los WARNING finalizados (que ya no estan) del archivo log

’1′ intercambia entre las estadisticas globales del CPU y las estadisticas particulares por cada CORE

‘q’ salir de la aplicacion

En modo servidor, puede definir la IP donde escuchara las peticiones (-B DIRECCION) y el puerto (-p PUERTO)

En el modo cliente, puede definir el puerto del servidor con -p PUERTO

La IP de escucha por defecto es 0.0.0.0, es decir, en todas las que tenga el equipo.

Si teneis alguna pregunta sobre Glance, decirlos en los comentarios!! Be water my friends!!

Error en Qmail con demasiados procesos /var/qmail/bin/relaylock

qmail-logo

Si detectectamos en el servidor Linux con CentOS y notas que tienes muchos procesos del tipo:
/var/qmail/bin/relaylock /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/

Es posible que el servidor no resuelva correctamente las DNS de los dominios, por lo cual el sistemas de listas negras tarda mucho en cerrarse y se acumulan los procesos.
Continuar leyendo “Error en Qmail con demasiados procesos /var/qmail/bin/relaylock”

Navega de forma anónima/segura mediante túneles SSH

seguridad-informatica

Mediante los túneles SSH podemos asegurar casi todo tipo de protocolos, al conectarnos a una red insegura, como puede ser la red WiFi de un hotel, restaurante o las típicas redes públicas que algunos ayuntamientos ofrecen de forma gratuita (que por cierto, no sé cuanto durará), estamos expuesto a diferentes ataques por parte de otros usuarios conectados a la misma red.

El escenario por norma general es poner la tarjeta en modo “promiscuo” y estar mirando todos los paquetes que pasan por nuestra tarjeta de red, que puede tratarse de información sensible, desde usuarios y claves hasta números de cuentas bancarias.

Para éste ejemplo he usado un servidor VPS de tipo “budget” (precios bajos – prestaciones bajas) para realizar el artículo. Lo primero será asegurarnos de que el servidor SSH, en mi caso OpenSSH, está correctamente configurado para soportar los túneles.

Procedemos a mirar la configuración del servicio SSH en /etc/ssh/sshd_config y buscamos las siguientes directivas:

AllowTcpForwarding yes
GatewayPorts yes
TCPKeepAlive yes

Donde el primer parámetro activa el redireccionamiento y encapsulación de los diferentes protolocos basado en TCP y el segundo hace que la conexión se mantenga de forma continua, normalmente después de un tiempo, que suele ser aproximadamente unas dos horas, la conexión TCP se desconecta de forma automática.

Una vez editado el fichero de configuración, procedemos a reiniciar el servicio:

/etc/init.d/ssh restart

En otros sistemas operativos como CentOS, los demonios se encuentran en rc.d.

El siguiente paso es conectarnos y crear el túnel en el puerto que pasaremos como argumento al cliente ssh:

>ssh -D 8080 mad@servidor-personal.com

Con el comando de arriba, estamos creando un túnel en el puerto 8080 de nuestro propio equipo hacia el servidor SSH. Si queremos aprovechar el puerto y navegar de forma segura, tendremos que configurar nuestro navegador para al conectarse a los servidores web, use como servidor SOCKS nuestro propio equipo local y el puerto 8080.

Por ejemplo en Firefox se hace en la Configuración de Red:

Después de guardar los cambios, es recomendable reiniciar el navegador. El proceso es similar en la mayoría de los demás navegadores, para crear el túnel SSH, si estamos en Windows, en la parte final de artículo encontrarás otros artículos de apoyo para hacerlo desde Windows mediante el cliente SSH PuTTy.

Podemos ver un claro ejemplo si empleamos un sniffer, en éste caso WireShark, las diferencias entre el envío de datos cifrados y en claro.

En el ejemplo de arriba los datos están cifrados, mientras que en el de abajo no.

El uso de túneles no se limita sólo al ámbito web, podemos tunelizar cualquier protocolo, si queremos acceder de forma segura a nuestro servidor de correo, también podemos tunelizar POP, SMTP, IMAP y demás.

ssh -f usuario@servidor-personal.com -L 2000:smtp.gmail.com:25 -N

En éste ejemplo, estamos haciendo un túnel desde el puerto 2000 del servidor-personal al puerto 25 del servidor SMTP de gmail.com. El uso es ilimitado, sólo depende de nuestra imaginación.

Recursos y Documentación:

_SSH Port Forwarding [Symantec]

_Port Forwarding [The SSH Definitive Guide]

_How to tunnel Web Traffic with SSH Secure Shell [Using PuTTy]

_Breaking Firewalls with OpenSSH and PuTTy

Nota:
No hace falta tener un VPS o un servidor dedicado, podemos usar nuestro propio equipo que tenemos en casa, claro está, que habrá que mantenerlo encendido continuamente.

Podeis usar tambien una shell gratuita, yo uso la de http://shellmix.com

Si nó… pues siempre tendremos web proxy para navegar desde la oficina como la de NavegasinLey.com

SSHPASS nos permite incluir la password en la misma linea de conexión SSH

Con la necesidad de hacer un script en bash, me ví con la obligación de hacer una conexion ssh y no queria que me pidiera contraseña cada vez que lo ejecutara.
Tenia la opcion por claves publicas y privada pero creo que iba a perder mucho tiempo, asi que opte por la siguiente:
Nos bajamos el paquete llamado sshpass de sourceproject

wget http://heanet.dl.sourceforge.net/project/sshpass/sshpass/1.05/sshpass-1.05.tar.gz
tar xvf sshpass-1.05.tar.gz
cd sshpass-1.05
./configure
make
sudo make install

Ahora una vez instalado sshpass en nuestro sistema o servidor, la sentencia para conectarnos a ssh es la siguiente:

sshpass -p 'passwd' ssh root@192.168.1.54

Cambiar nombre del Host sin reiniciar en CentOS/RedHat – Linux

Este procedimiento deberia funcionar en las distribuciones RedHat Linux 7.x/9, RHEL, Fedora y CentOS sin problemas porque todas tienen similar configuración. El objetivo es nunca reiniciar sin necesidad y mantener el tiempo de uptime del servidor intacto y por supuesto no interrumpir los otros servicios.

  1. Abrimos una consola como usuario root.
  2. Editar el archivo network y cambiar el nombre del host en la variable HOSTNAME.
    nano /etc/sysconfig/network
    HOSTNAME=central
  3. Adicionar  el número ip del nuevo host.
    nano /etc/hosts
    192.168.0.1 central

    Las modificaciones realizadas en /etc/hosts y /etc/sysconfig/network son necesarias para que los cambios sean permanentes.
  4. Cambiar el nombre del host usando el comando hostname.
    hostname redhat9
  5. y ejecutar nuevamente el comando hostname sin incluir el host para ver el cambio.
    hostname
  6. Finalmente reiniciar el servicio de red para aplicar los cambios realizados.
    service network restart
  7. Para verificar que el nombre del host fue realmente cambiado debemos salir e ingresar nuevamente a la sesión. Con cerrar la terminal y abrir otra terminal veremos que el nombre ha cambiado.

Rápido, sin problemas y no interrumpimos los servicios del servidor ni tampoco perdemos el uptime de nuestro servidor.