Tuesday 30 June 2015

Consejos y trucos, artículos básicos sobre configuraciones que ayudan a un mejor desempeño de nuestros SO's. Cada proceso ha sido personalmente comprobado.





En este blog continuamos con la parte de comandos referentes a estadísticas, asi que sigamos aprendiendo acerca de los maravillosos y geniales comandos Linux.

El cajón de los comandos Linux es una guía de referencia rápida para todos los usuarios Linux que desean aprender los comandos de este gran SO. Los comandos se dividen en 15 categorías, lo cual nos permite tener un mayor entendimiento acerca de que comando utilizar en una específica situación. El agradecimiento total al creador de esta guía +Bobbin Zachariah.

Esta guía puede ser utilizada ya sea para usuarios nuevos o avanzados, proveyendo el mejor esfuerzo para dar a conocer los comandos Linux más relevantes. 

Así que empecemos con la 3ª parte de los comandos referentes a Estadísticas.

$ tail

Este comando Linux nos muestra las últimas líneas de un archivo, es más que todo utilizado para ver actualizaciones de archivos de registros ya que dichas actualizaciones están anexadas a este. Aquí aprenderemos del comando tail con las opciones más comunes.

Más del comando tail.
Este comando acepta entradas de STDIN, por defecto, el comando tail muestra las últimas 10 líneas de un archivo, aun si este que queremos ver tiene más de 10 líneas únicamente 10 serán imprimidas. 


Sintaxis.
tail [opción] [archivo]

Usando tail con un archivo como argumento.
Como ejemplo veremos las últimas 10 líneas del archivo en /etc/default/grub  (incluye líneas en blanco)



Podemos solicitar información de más de un archivo a la vez, si hacemos esto los archivos se imprimirán en el mismo orden que lo hayamos solicitado, la terminal nos imprimirá cada archivo con su nombre como título antes de mostrar su contenido. He aquí un ejemplo:





Si queremos ver la información sin encabezado podemos utilizar los parámetros -q, --quiet o --silence, veamos:





Pero si en dado caso necesitamos el encabezado de un archivo aun cuando un único archivo ha sido solicitado podemos hacerlo con los comandos -v o --verbose.




Imprimir un número específico de líneas.
En este ejemplo vamos a solicitar información del archivo boot.log, pero únicamente las 3 últimas líneas, esto lo logramos con el parámetro -n +el número de líneas.



O incluso podemos omitir la letra n y colocar solo el número de líneas deseadas, así:


¿Qué versión de tail tengo?
Y por supuesto para ver la versión de esta herramienta simplemente usamos el parámetro --version:


Esto es todo en cuanto al comando tail para más detalles referirse a man, info o help en la consola.


$ tcpdump

¿Qué es tcpdump?

Esta es una herramienta que podemos utilizar para capturar y analizar el tráfico que circula por la red. Tcpdump está disponible para la mayoría de distribuciones Unix-like, Solaris, Bsd, y Mac Osx entre otros. 
Este también llamado analizador de paquete nos permite capturar y ver paquetes TCP/IP entre otros, que son transmitidos o recibidos a través de la red a la cual el ordenador está atado; otra utilidad de esta herramienta es que nos permite tener una captura de los paquetes en un archivo que luego puede ser visto a través de tcpdump. Para ejecutar esta herramienta es necesario que seamos super usuarios.

Ejemplo 1
Al correr este comando sin argumento, nos capturará únicamente la primera interfase; por defecto tcpdump produce una línea de texto por cada paquete interceptado, cada línea comienza con una marca de tiempo y nos dice cuando el paquete arribó.


¿Cómo leo la información?
a) Hora de llegada del paquete: 15:28:46.065040
b) Nombre del protocolo IP: tcpdump entiende un muy limitado número de 
     protocolos este no nos dirá la diferencia entre paquetes http o por 
     ejemplo ftp. En lugar de esto la herramienta los marcará como paquete
     IP, entiende también algunos pocos protocolos tcp, algunos de los 
     paquetes que sincroniza son: SYN, ACK, FIN.
c) Fuente y destino de direcciones IP (192.168.0.100.ssh > 192.168.0.115):
    para paquetes IP, estas son direcciones
    IP, para otros protocolos tcpdump no imprime ningún identificador al
    menos que específicamente los solicitemos.
d) Información de los paquetes (:P 1352790525:1352790639(116) ack
    1830993579 win 9749: por ejemplo este imprime un número tcp secuencial.

Ejemplo 2
Capturar paquetes para una interfase seleccionada:


Con el comando de aquí arriba podemos ver cuantos paquetes llegaron y se enviaron a través de la interfase eth0.

Ejemplo 3 
También podemos ignorar un paquete que pertenece a un servicio en particular en este ejemplo ignoraremos los paquetes del servicio ssh.



Ejemplo 4 
Podemos también limitar el número de paquetes que tcpdump intercepta, después de tener el número de paquetes requerido tcpdump se detendrá.


Ejemplo 5
Al mismo tiempo que limitamos un número específico de paquetes que queremos que tcpdump intercepte, podemos hacer que ignore los paquetes que pertenecen al puerto 22.


Ejemplo 6
Si queremos guardar una captura de los paquetes a un archivo, hacemos lo siguiente:


Por defecto cuando capturamos paquetes en un archivo se guardarán únicamente 68 bytes de datos de cada paquete, los demás serán ignorados. En el ejemplo 6 utilizamos el parámetro -s para decirle a tcpdump cuantos bytes por paquete queremos que guarde, especificando 0 estamos diciendo que guarde el paquete completo.

Ejemplo 7
Leyendo el archivo guardado.
De una sola vez en la terminal y con la herramienta tcpdump podemos leer el archivo que hayamos guardado, veamos:


Ejemplo 8
Si queremos ver todas las solicitudes de entradas HTTP de la interface eth0 lo hacemos de esta manera:


Ejemplo 9
Para capturar solamente los primeros 25 paquetes de eth0 y luego detener la herramienta, lo hacemos así:



Ejemplo 10
Para mostrar todos los paquetes ICMP enviados de eth0:


Si en caso quisiéramos monitorizar todo el tráfico del puerto 80 (HTTP) podemos hacerlo con tcpdump -i eth0 'port 80'

Esto es todo en cuanto al comando tcpdump para más detalles referirse a man, info o help en la consola.

Saludos especiales a tod@s espero que este aporte pueda ser de su ayuda. Si les fue útil compartan o comenten.