sábado, 21 de julio de 2012

Herramientas para monitorear un servidor linux


La mayoría del tiempo de un sysadmin (administrador de sistemas) se la pasa monitoreando. Especialmente si se estas a cargo de muchos servidores necesitamos herramientas que te hagan la tarea mas facil; a continuación varias herramientas que nos facilitaran eltrabajo.

Monitoreo de ancho de banda

Esto es muy importante, ya que al monitorear cuanto ancho de banda consume un servidor en tiempo real podemos determinar cuales son sus horas pico y así optimizarlo.

 Para monitorear ancho de banda  iptraf nos puede ayudar a verificar todo lo que esta sucediendo en nuestra interface de red. Les adjunto algunas imágenes:








Monitoreo de consumo de CPU y Memoria

Otra de las tareas de un sysadmin es monitorear el consumo de CPU y Memoria (RAM y SWAP), linux viene con el comando “top”. A mi en lo personal no me gusta, así que uso el programa htop. Este programa es muy completo ya que nos detalla el consumo de CPU y Memoria por proceso, así como el consumo general de los recursos del sistema. Es mucho mas amigable a comparación del top normal. Incluso conforme se va usando el procesador o los núcleos del procesador el programa lo indica de una manera “gráfica” tal como lo muestra la siguiente imagen que tome de un servidor en producción:






Monitoreo de consumo de disco duro


Cada cierto tiempo necesitamos saber cuanto espacio en disco hay libre en los servidores que manejamos. Para saber el espacio en disco duro se ejecuta el comando “df” en linux. A mi en lo personal no me gusta, prefiero uno mas amigable así que utilizo uno llamado discus. Este programa es que te indica cuanto espacio esta usado y cuando espacio hay libre, así como los porcentajes de los mismos. Aquí les adjunto una foto con la comparación del “df” con el “discus”. 



Monitoreo de peticiones de DNS

Si administras un servidor de DNS, en alguna ocasión vas a querer saber cuantas peticiones tu servidor de DNS tu servidor recibe. Para monitorear esto utilizo el programa dnstop con este se puede monitorear cuantas peticiones esta teniendo tu servidor ya sea por clase de dominio .net .org, direcciones ip, por dominio o por sub dominios.
Para ejecutarlo solo ejecutas el comando:
dnstop eth1
Tienes que especificar la interface en la cual quieres que “escuche” el programa. Presionando los botones de 1 2 3 4 puedes ver los diferentes tipos de reportes que tiene.
Adjunto imagen del programa:
          

                             dnstop

Monitoreo de trafico WEB
La mayoría de nosotros estamos a cargo de un servidor que sirve paginas web, es muy importante el monitoreo en tiempo real para saber que archivos estamos sirviendo, cuantas peticiones por segundo estamos manejando y el trafico que estamos teniendo (en megas). El servidor web mas usado es apache, yo utilizo la herramienta llamada “apachetop“.
Con este programa podemos monitorear que archivos servimos con mayor frecuencia, cuantos bytes/kylobytes/megabytes servimos, cuantas peticiones por segundo, peticiones totales y un promedio general de todo lo que sirve el apache.
Adjunto una imagen del apachetop corriendo en un servidor en producción:

                                     apachetop

Monitoreo de puertos abiertos

Otra de las tareas de un sysadmin es estar al tanto de que puertos hay abiertos en un servidor. Como lo dice la regla, si un servicio no te sirve, quitalo del sistema. Para monitorear puertos uso la herramienta llamada nmap.
Con el comando:
nmap -v 127.0.0.1
Saque un listado de puertos abiertos en el servidor. Si su servidor tiene varias direcciones IP es importante que hagan un escaneo de puertos a todos los IP.
Adjunto imagen del resultado que muestra nmap:


Estas herramientas basicas pero poderosas nos ayudaran en la tarea de mantener nuestros servidores linux al dia así como estas herramientas hay miles de herramientas e incluso pueden haber mejores.

Compartir archivos entre Debian Squezee y Windows con Samba

 Samba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que ordenadores con Linux o Mac actúen como clientes en redes de Windows. Samba también permite validar usuarios haciendo de Controlador Principal de Dominio, como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresión, directorios compartidos y autenticar con su propio archivo de usuarios.

Samba fue desarrollado originalmente para Unix por Andrew Tridgell utilizando un sniffer o capturador de tráfico para entender el protocolo a través de la ingeniería inversa. El nombre viene de insertar dos vocales al protocolo estándar que Microsoft usa para sus redes, el SMB o server message block.

En un principio, Samba tomó el nombre de smbserver pero tuvieron que cambiarlo por problemas con una marca registrada. Tridgell buscó en el diccionario de su máquina Unix alguna palabra que incluyera las letras “s”, “m” y “b” con la orden grep hasta que dio con Samba.

Samba configura directorios Unix-Linux (incluyendo sus subdirectorios) como recursos para compartir a través de la red. Para los usuarios de Microsoft Windows, estos recursos aparecen como carpetas normales de red. Los usuarios de Linux pueden montar en sus sistemas de archivos estás unidades de red como si fueran dispositivos locales, o utilizar la orden smbclient para conectarse a ellas muy al estilo del cliente de la línea de órdenes ftp. Cada directorio puede tener diferentes permisos de acceso sobrepuestos a las protecciones del sistema de archivos que se esté usando en Linux. Por ejemplo, las carpetas home pueden tener permisos de lectura y escritura para cada usuario, permitiendo que cada uno acceda a sus propios archivos; sin embargo, deberemos cambiar los permisos de los archivos localmente para dejar al resto ver nuestros archivos, ya que con dar permisos de escritura en el recurso no será suficiente.

En este caso la instalacion sera en una red de hogar con un grupo de trabajo.

Para llevar a cabo la instalacion se necesitaran los siguientes paquetes:

samba
samba-client
samba-common


Para la configuración en Windows sólo hay que tener en cuenta el nombre del grupo de trabajo y el nombre de cada equipo en la red.

Comenzamos instalando Samba en Debian, Abrimos la terminal como root, colocamos:

apt-get install samba smbfs samba-common samba-client

Editamos el fichero de configuración de samba en la siguiente ruta:
vim /etc/samba/smb.conf


Buscamos la linea que dice workgroup = MSHOME, y la cambiamos por:

workgroup = nombre del grupo de trabajo


el nombre de nuestro grupo de trabajo deberá ser el mismo que usamos en la red de Windows.


Guardamos cambios y salimos.


Antes de crear los usuarios de Samba, deberemos crearlos en nuestro Debian.

 adduser nesalpa


Después creamos el usuario para Samba:

  smbpasswd -a nesalpa


el usuario deberá ser el mismo el cual creamos en  Grupos y Usuarios en Debian.

Pedirá la contraseña a utilizar, en donde también pondremos la misma del usuario que creamos en Debian, y pedirá finalmente repetir la contraseña.

Crearemos otro archivo con la lista de los usuarios:

 vim  /etc/samba/smbusers

Ahí, agregaremos lo siguiente: usuario debian = equipo  windows

usuario debian se refiere al usuario que acabamos de crear, equipo winodws se refiere al nombre del equipo con windows con el que deseamos compartir.

Volveremos a editar samba.conf:  vim  /etc/samba/smb.conf

Buscamos la linea que dice:

; security = user

Y le quitamos el ;

Además, en una siguiente linea agregamos lo siguiente:

username map = /etc/samba/smbusers

Deberá quedar así:

security = user
username map = /etc/samba/smbusers






Con esto estamos diciéndole a Samba que vamos a autentificar por usuario y donde está la lista de los usuarios permitidos.


Ahora, para compartir archivos, deberemos dar persmisos al directorio de usuarios de samba. Para esto, tecleamos en la terminal de root lo siguiente:

 chmod 777 /var/lib/samba/usershares

Y por último sólo queda elegir los directorios que deseamos compartir.
Para dar acceso a los usuario a los directorios home o personales, hacemos lo siguiente editamos

vim  /etc/samba/smbusers


[homes]
comment = Home Directories;
browseable = no
valid users = %S
writable = no

Quitamos el ";" para descomentarlos, y en writable cambiamos "no" por "yes" para que el usuario pueda escribir en el directorio.

En servicios de red de nuestro Debian, podremos acceder a la red de Windows y en Mis sitios de red de Windows, se podrá acceder a los directorios que seleccionamos para compartir en Debian.

domingo, 8 de abril de 2012

TestDisk y PhotoRec son software gratuitos para recuperacion de datos y particiones de discos.

Recientemente me paso algo que es un dolor de cabeza para cualquier informatico, (se daño el disco duro de mi laptop) el cual me dio muchos dolores de cabeza ya que tenia casi 20 dias que no realizaba respaldos de mis datos importantes hay guardados.

Gracias a TestDisk y Photorec pude reparar mis partciones y pude recuperar todos mis datos sin muchas complicaciones a si que quise escribir sobre estos maravillosos programas Testdisk y PhotoRec son aplicacionestotalmente independiente pero vienen los dos en el mismo paquete y los puedes descargar en el siguiente enlace: http://www.cgsecurity.org/wiki/TestDisk_ES


Con TestDisk puede:

  • Arreglar la Tabla de Particiones, recuperar particiones eliminadas
  • Recuperar sectores de arranque FAT32 de su copia de seguridad
  • Reconstruir sectores de arranque FAT12/FAT16/FAT32
  • Arreglar tablas de arranque de tipo FAT
  • Reconstruir sectores de arranque NTFS
  • Recuperar sectores de arranque NTFS de su copia de seguridad
  • Arreglas la MFT usando la MFT imagen
  • Localizar el Superblock de copia de seguridad de ext2/ext3/ext4
  • Recuperar archivos del sistema de archivos FAT, NTFS y ext2
  • Copiar archivos de particiones FAT, NTFS y ext2/ext3/ext4 eliminadas


TestDisk: tiene características para expertos y principiantes. Para aquellos que saben poco o nada sobre técnicas de recuperación de datos, TestDisk puede ser usado para recolectar información detallada sobre un disco que no se inicia o arranca, la cual puede ser analisada posteriomente paso a paso.

TestDisk una herramienta útil para realizar recuperación de datos sin muchos problemas es bastante amigables y facil de usar viene con otro programa PhotoRec

PhotoRec: es un software diseñado para recuperar archivos perdidos incluyendo videos, documentos y archivos de los discos duros y CDRoms así como imágenes perdidas de las memorias de las cámaras fotográficas, MP3 players, PenDrives, etc.

PhotoRec ignora el sistema de archivos y hace una búsqueda profunda de los datos, funcionando incluso si su sistema de archivos está muy dañado o ha sido re-formateado.

Gracias a este programa pude recuperar archivos e incluso recupere imagenes y archivos que tenia cuando tenia instalado otro sistema operativo.


Como funciona PhotoRec

Los sistemas de archivo FAT, NTFS, ext2/ext3/ext4 guardan los archivos en bloques de datos (también llamados clusters en Windows). El tamaño de cluster ó bloque es constante luego de haber sido definido al formatear el sistema de archivos. En general, la mayoría de los sistemas operativos intentan guardar los datos de forma contigua para minimizar el nivel de fragamentación. El tiempo de búsqueda de los discos mecánicos es bastante significante para escritura y lectura de datos, desde y hacia el disco rígido, por eso es que es importante mantener el nivel de fragmentación en un nivel mínimo.

Cuando un archivo es eliminado, la meta información sobre este archivo (Nombre, fecha/hora, tamaño, ubicación del primer bloque ó cluster, etc.) se pierden; por ejemplo, en un sistema ext2/ext3, los nombres de los archivos eliminados siguen presentes, pero la ubicación del primer bloque de datos es eliminada. Esto significa que los datos siguen estando presentes, pero solamente hasta que sean sobreescritos en parte o por completo por un nuevo archivo.

Para recuperar estos archivos 'perdidos', PhotoRec primero intenta encontrar el tamaño del bloque (ó cluster). Si el sistema de archivos no está dañado, este valor puede ser leído del superblock (ext2/ext3/ext4) ó del Volume Boot Record (FAT, NTFS). Sino, PhotoRec lee el volumen, sector por sector, buscando los primeros diez archivos, de los cuales calcula el tamaño de bloque/cluster de acuerdo a sus ubicaciones. Una vez que el tamaño de bloque es conocido, PhotoRec lee el volumen bloque a bloque (ó cluster a cluster). Cada bloque es revisado contra una base de datos de firmas; la cual viene con el programa y ha estado creciendo en cuanto a tipos de archivos que se pueden recuperar desde que la primera versión de PhotoRec salió.

sábado, 10 de marzo de 2012

Revela el password que hay atras de los asteriscos con JavaScript

¿Nunca te pasó haber escrito algún password y necesitar saber que es lo que hay atrás de los asteriscos?

Acá les traigo un script realizado en JavaScript que permite revelar que es lo que hay escrito en los campos password de JavaScript. Y revelará la contraseña que normalmente se esconde detrás de la '*' Esta no es una solución mágica ni tampoco se trata de explotar alguna vulnerabilidad se ha sabido por mucho tiempo sólo la quería compartir

 El código es el siguiente y voy a mostrar cómo utilizarlo:

javascript:(function(){var s,F,j,f,i; s = ""; F = document.forms; for(j=0; j<F.length; ++j) { f = F[j]; for (i=0; i<f.length; ++i) { if (f[i].type.toLowerCase() == "password") s += f[i].value + "n"; } } if (s) alert("Passwords in forms on this page:nn" + s); else alert("There are no passwords in forms on this page.");})();

Modos de uso

1. Lo colacamos en marcadores marcadores (favoritos o bookmarks) del navegador que estemos usando y listo.

2. Completamos los datos del marcador de la siguiente manera:

Nombre: cualquiera

URL: javascript:(function(){var s,F,j,f,i; s = ""; F = document.forms; for(j=0; j<F.length; ++j) { f = F[j]; for (i=0; i<f.length; ++i) { if (f[i].type.toLowerCase() == "password") s += f[i].value + "n"; } } if (s) alert("Passwords in forms on this page:nn" + s); else alert("There are no passwords in forms on this page.");})();

3. Luego, cuando estés en un sitio con passwords, aprieta el botón del marcador que creaste y automáticamente aparecerá un pop-up con la clave

4. Posibles usos:
  •  Hace mucho tiempo que guardaste la contraseña en el navegador  la olvido y ahora la desea cambiar
  •  Se encuentra en un lugar secreto de suma importancia y el usuario privilegiado salvo la contraseña a un recurso web muy importante.

Cómo formatear un medio estraible en Linux

En ocasiones los pendrive, memorias sd,etc... Pierden la estructura del formato, en especial si hemos sacado el dispositivo en el momento en el que esta guardando alguna informacion. La tarea de recuperar el formato y dejar el dispositivo limpio puede realizar fácilmente desde la línea de comandos.

Primero nos aseguramos cuál es el dispositivo a formatear con el comando:

 $ mount

/dev/sda1 on /boot type ext4 (rw,relatime,seclabel,user_xattr,barrier=1,data=ordered)
/dev/mapper/VolGroup-lv_home on /home type ext4 Disco duro

(rw,relatime,seclabel,user_xattr,barrier=1,data=ordered)
/dev/sdb1 on /media/BLACKBERRY type vfat (rw,nosuid,nodev,relatime,uid=500,gid=500,fmask=0022,dmask=0077,codepage=cp437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks) Memoria Mini-SD


/dev/sdc1 on /media/HP_607 type vfat (rw,nosuid,nodev,relatime,uid=500,gid=500,fmask=0022,dmask=0077,codepage=cp437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks) Memoria SD
Normalmente los dispositivos como pen drive y memorias extraibles  van formateados en vfat mientras que los discos duros de linux son ext3 o ext4 depende de la version.

Una vez localizado el dispositivo en este caso la Memoria SD, desmontamos y formateamos con los siguientes comandos: 


$ umount /dev/sdc1 desmontamos


$ sudo mkfs -t vfat /dev/sdc1 formateamos

jueves, 23 de febrero de 2012

Nueva Version de Nessus 5


 
 
Nessus 5 que salió hace poco con muchas mejoras y con la calidad de siempre.
Nessus es un escáner de vulnerabilidades de la empresa estadounidense Tenable Network Security, sus funcionalidades son las de:
  • Descubrimiento activo de redes
  • Escaneo de vulnerabilidades
  • Política de auditoria
Permite la exportación de informes en varios formatos donde posteriormente pueden ser asociados con Metasploit y otras herramientas de pentest.
Nessus en su versión 5 ha renovado alguna de sus muchas funcionalidades y ha añadido numerosas mejoras y/o actualizaciones:

  • Cambios en la criticidad de las vulnerabilidades encontradas: de las categorías anteriores se pasa a los niveles de Info, Low, Medium, High y Critical, más acordes y compatibles con otras herramientas de seguridad existentes. 
  • Cambios en los reportes: posibilidad de crear reportes personalizados además de los nuevos formatos pre-configurados y las plantillas existentes. También se incluyen diversos formados compatibles a la hora de exportar cualquier informe, como, por ejemplo, PDF, HTML, etc. También se incluye la posibilidad de combinar diferentes informes en un único reporte. 
  • Mejoras en la instalación: nuevo asistente de instalación que facilita enormemente la puesta en marcha de la herramienta y su posterior administración. En esta versión 5.0, todo se configura a través del interface de navegación Web, independientemente del Sistema Operativo donde esté instalado Nessus 5.0, inclusive la actualización de los plugins de Nessus y demás. 
  • Cambios y mejoras en la creación de políticas: se han añadido nuevos plugins que facilitan el sistema de filtros de nessus y la creación de políticas para realizar escaneos más precisos. Se añaden filtros como la fecha de publicación de una determinada vulnerabilidad, el tipo de plugin de Nessus (local o remoto), la información de la vulnerabilidad publicada en las bases de datos de Bugtraq, CERT Advisory, Secunia y OSVDB, etc. 
  • Nueva visualización de los datos de la auditoria: para proporcionar una visión inmediata del resultado de cualquier revisión de seguridad realizada sin necesidad de recurrir a cargar el reporte correspondiente. Con un sólo click se puede ver el nivel de riesgo y la criticidad de la vulnerabilidad.
Estas y otras funcionalidades hacen de nessus 5 la herramienta por excelencia a la hora de realizar un escaneo de vulnerabilidades, los dejo con el video oficial de las novedades implementadas en nessus 5



sábado, 11 de febrero de 2012

IP Forwarding con Linux

El mecanismo de “IP forwarding” se encarga de la retransmisión de los paquetes que se reciben por una interfaz física y de retransmitirlos por otra interfaz hacia otro nodo.


Cuando un paquete IP se recibe por una interfaz física, el modulo IP de entrada (IPinput ) procesa el paquete. 
 
Si la dirección IP destino del paquete se corresponde con la del dispositivo se procesa el paquete y se pasa al modulo TCPinput.
 
En caso de que la dirección IP destino no se corresponda con la del dispositivo y
 
el módulo IP forwarding está desactivado, el paquete IP se descarta.
En el caso de que la dirección IP destino no se corresponda con la del dispositivo y el módulo IP forwarding esté activado, se pasa el paquete al módulo IP de salida (IPoutput ), se consulta la tabla de encaminamiento y el paquete se retransmite por la interfaz correspondiente.



Imaginemos el escenario de la imagen. Tenemos uno o varios ordenadores en nuestra red (da igual que sistema operativo sean) y queremos que compartan una IP de salida a internet (o a otra red cualquiera). Lo que haremos es decirles a los equipos locales que su router es la ip del equipo con Linux:

Equipo Linux:
tarjeta de red 1: 10.10.0.1
tarjeta de red 2: DHCP con nuestro proveedor de Internet

IP Local 1:
tarjeta de red 1: 10.10.0.2  (Con router apuntando a 10.10.0.1)

IP Local 2:
tarjeta de red 1: 10.10.0.3  (Con router apuntando a 10.10.0.1)

Al equipo Linux le vamos a decir que todos los paquetes que provengan de la red 10.10.0.x (que recibiremos por su tarjeta de red 1) nos los encamine a otra red, internet o la que sea, sacando los paquetes por su tarjeta de red 2. Para ello lo haremos de la siguiente manera:


Modificamos el valor booleano de /proc/sys/net/ipv4/ip_forward

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward


Descomentamos, modificamos o añadimos la siguiente linea en /etc/sysctl.conf

net.ipv4.ip_forward=1


Aplicamos los cambios con

sysctl -p


Y ahora enrutamos los paquetes segun nuestras redes:

iptables -F
iptables -F -t nat
iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o eth0 -j MASQUERADE
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


Para listar las normas introducidas (y comprobar que estan bien aplicadas);

iptables -L
iptables -L -t nat


Con esto ya queda funcionando nuestro Linux (Ubuntu,Fedora,Debian) en modo router.