lunes, 24 de agosto de 2009

Enviar mail adjunto desde la CLI

Instalamos biabam:

#apt-get install biabam

Ejecutamos el comando con el asunto, archivo adjunto y destinatarios:

#echo "Contenido del mail" | biabam /ruta/del/archivo/a/adjuntar -s "Asunto del mail" destinatario1@midominio.com,destinatario2@midominio.com

viernes, 14 de agosto de 2009

Restaurar conexion luego de insertar una regla erronea con iptables

Usualmente solemos agregar una regla en iptables, en la cual nos deja afuera del server. Si nuestro servidor esta alojado en otro pais y no disponemos de que nadie realice el cambio en la regla para volver acceder podemos utilizar el comando iptables-apply.

Un ejemplo de uso podria ser el siguiente:

Pensemos que queremos bloquear el acceso ssh para todos las PCs menos nuestra pc, si por casualidad nos equivocamos o ponemos mal algun filtro nos quedaremos sin acceso al server.

Guardamos las reglas de iptables en un archivo de texto:

#iptables-save > ipt.txt

Editamos dicho archivo:

#vim ipt.txt

En el INPUT denegamos el ssh, no tengamos miedo, ya que hasta que no restablezcamos no perderemos coneccion. Tengamos en cuenta que no restauraremos con el comando iptables-restore, sino que lo haremos con iptables-apply.

Dentro del ipt.txt pondremos lo siguiente dentro del la cadena INPUT:

-A INPUT -p tcp --dport 24 -j DROP

Guardamos y salimos:

:wq

Ahora indicaremos el tiempo que tendremos para que el servidor vuelva a restablecer las reglas antes que perdamos la conexion ssh. Tengamos en cuenta que si vemos un mensaje para volver validarlo, el cual pedira confirmacion, si no lo vemos perderemos la conexion. Recuerden que luego del tiempo que le ponemos mediante el parametro -t volveremos a poder conectarnos.

Ejecutamos el util comando:

#iptables-apply -t 30 ipt.txt

Vemos que se aplicaron bien las reglas y perdemos conexion a la terminal:

Applying new ruleset... done.

Luego de 30 segundos u otra cantidad que le especifiquemos con el -t volveremos a poder conectarnos.

Con itables -L veremos que volvio hacia atras el ultimo cambio que realizamos.

En cambio si hubiesemos colocado la regla correcta nos aparecera en pantalla un mensaje, al cual le indicaremos que si y aplicara los cambios sin volver a atras los cambios

Applying new ruleset... done.
Can you establish NEW connections to the machine? (y/N) y
... then my job is done. See you next time.

lunes, 25 de mayo de 2009

Script para cambiar serial de un DNS Server

#!/bin/sh

#Guardar serial que tiene en la zona antes del cambio:
SERIAL_VIEJO_COMPLETO=`cat mi-zona.com.ar | grep serial |cut --delimiter=" " -f 1`

#Obtener numero de serial solo de la zona antes del cambio:
SERIAL_SOLO_VIEJO=`echo $SERIAL_VIEJO_COMPLETO | cut -c9,10`

#Obtener fecha sola antes del cambio, sin incluir los ultimos digitos del serial:
FECHA_VIEJA=`echo $SERIAL_VIEJO_COMPLETO|cut -c1-8`

#Nuevo formato de la fecha para el serial, falta agregar el nuevo serial:
FECHA=$(date +%Y%m%d)

#Obtener numero de serial viejo solo:
SERIAL_SOLO_VIEJO=`echo $SERIAL_VIEJO_COMPLETO | cut -c9,10`

#Sumar numero serial viejo completo +1 cuando las fechas son iguales:
let NEW_SERIAL=SERIAL_VIEJO_COMPLETO+1

if test $FECHA -eq $FECHA_VIEJA
then
#echo "son iguales, solo incrementar el serial"
let SERIAL_NUEVO_COMPLETO=SERIAL_VIEJO_COMPLETO+1
echo $SERIAL_NUEVO_COMPLETO
else
#echo "son distintas, cambiar la fecha y poner el serial a 00"
echo `echo $FECHA`00
fi

viernes, 8 de mayo de 2009

Huevos de Pascuas

Poderes de Super Vaca de apt-get:

server1:~# apt-get moo

Tren:

server1:~# apt-get install sl
server1:~# sl
server1:~# sl -l
server1:~# sl -F
server1:~# sl -e
server1:~# sl -alFe


Aptitude, tiene Huevos?

server1:~# aptitude moo
There are no Easter Eggs in this program.
server1:~# aptitude moo -v
There really are no Easter Eggs in this program.
server1:~# aptitude moo -vv
Didn't I already tell you that there are no Easter Eggs in this program?
server1:~# aptitude moo -vvv
Stop it!
server1:~# aptitude moo -vvvv
Okay, okay, if I give you an Easter Egg, will you go away?
server1:~# aptitude moo -vvvvv
All right, you win.
server1:~# aptitude moo -vvvvvv
What is it? It's an elephant being eaten by a snake, of course.


Jajaja, cualquiera, una vibora comiendo un elefante, jojooo.

Otro haciendo telnet:

telnet towel.blinkenlights.nl

sábado, 4 de abril de 2009

Papelera en Linux

Creamos una carpeta oculta en el home del root o del usuario que deseamos:

server1:~# mkdir /root/.papelera

Creamos el alias para el comando rm que pase a ejecutarse el mv:

server1:~# alias rm='mv --target-directory=/root/.papelera'

Ejecutamos el comando alias para verificar que fue correctamente agregado:

server1:~# alias
alias rm='mv --target-directory=/root/.papelera'


Creamos un archivo para luego al eliminarlo lo envie a la papelera:

server1:~# echo hola > pepe.txt

Ahora si eliminamos el archivo:

server1:~# rm pepe.txt

Verificamos que en vez de eliminarlo fue movido a /root/.papelera con el comando:

server1:~# ls -la /root/.papelera/
total 12
drwxr-xr-x 2 root root 4096 2009-04-04 23:50 .
drwxr-xr-x 6 root root 4096 2009-04-04 23:50 ..
-rw-r--r-- 1 root root 5 2009-04-04 23:46 pepe.txt


Obviamente que al crear un alias, al cerrar la sesion se pierde y hay que volver ejecutarlo, o simplemente podremos poner el comando ejecutado en el /root/.bashrc

Partir archivos con split y volverlos a unir

El archivo pepe.txt pesa 65 Megas:

server1:/pruebas# ls -lath pepe.txt
-rw-r--r-- 1 root root 65M 2009-04-04 22:33 pepe.txt


Quiero partir el archivo pepe.txt en archivos de 10 Mbytes:

server1:/pruebas# split -b 10m pepe.txt pepe.txt-

Muestro la salida de los archivos partidos:

server1:/pruebas# ls -lath pepe.*
-rw-r--r-- 1 root root 10M 2009-04-04 22:40 pepe.txt-af
-rw-r--r-- 1 root root 5,0M 2009-04-04 22:40 pepe.txt-ag
-rw-r--r-- 1 root root 10M 2009-04-04 22:40 pepe.txt-ad
-rw-r--r-- 1 root root 10M 2009-04-04 22:40 pepe.txt-ae
-rw-r--r-- 1 root root 10M 2009-04-04 22:40 pepe.txt-ab
-rw-r--r-- 1 root root 10M 2009-04-04 22:40 pepe.txt-ac
-rw-r--r-- 1 root root 10M 2009-04-04 22:40 pepe.txt-aa
-rw-r--r-- 1 root root 65M 2009-04-04 22:33 pepe.txt


Borro el pepe.txt original:

server1:/pruebas# rm pepe.txt

Vuelvo a unir los archivos partidos en el archivo original:

server1:/pruebas# cat pepe.txt-* > pepe.txt

lunes, 5 de enero de 2009

Conexion VPN por linea de comandos

Para realizar una conexión VPN en forma automática pondremos en un .bat los siguientes comandos:

Para conectar a la VPN:

rasdial
rasdial trabajo morsa passguord

Este por si no queremos que vean el password:

rasdial trabajo morsa *


Desconectamos a la VPN:

rasdial /disconnect

Guardar configuración del Putty

Como el putty no tiene archivo de configuración, ni permite exportarlo, hay que hacer el backup de la configuración desde el registro de windows.

Hay que exportar la siguiente clave:

HKEY_CURRENT_USER\Software\SimonTatham

Hacemos botón derecho sobre la clave putty y la exportamos, luego le damos doble click y "si" para copiarla en otra pc o en la misma luego de formatear.