Este documento resume el funcionamiento de varios comandos de red comunes en Linux, incluyendo hostname, ifconfig, netstat, nslookup, ping, traceroute y wireshark. Explica qué información proporciona cada comando y ofrece ejemplos de su uso.
Comando HOSTNAME
Este comando muestra el nombre del DNS del sistema de dominio. Si vemos en el man del
comando podemos definir la sintaxis de ejecución del comando.
hostname [-v] [-a] [--alias] [-d] [--domain] [-f] [--fqdn] [-i] [--ip- address] [--long] [-s] [--
short] [-y] [--yp] [--nis]
hostname [-v] [-b] [--boot] [-F filename] [--file filename] [hostname]
hostname [-v] [-h] [--help] [-V] [--version]
En el man, explica cada una de las funciones del comando, así que no se van a explicar
aquí.
Veamos un ejemplo sencillo de la utilización del comando:
La primera opción nos muestra el nombre del equipo. Si lo ejecutamos con la opción -i
nos muestra la ip. En este caso nos muestra la IP de loop-back (que hace referencia al equipo
local).
En el siguiente ejemplo vemos como podemos cambiar el HostName
Hay que tener en cuenta que al cambiar el hostname puede que las aplicaciones dejen de
funcionar.
Para poder cambiar el nombre del host se necesitan privilegios de administrador.
Página 2
3.
Comando ifconfig
Este comando sirve para ver las propiedades de red de una maquina. Igual que en el
ejercicio anterior no vamos a explicar este comando entero (para ello está el man ifconfig) y
vamos a enseñar unos ejemplos básicos concretos.
Analicemos la imagen. En la columna izquierda vemos las interfaces de red que tiene el
equipo. ETH0 es la tarjeta de red de Ethernet que tiene el equipo. lo la tienen todos los equipos
aunque estos no tengan tarjeta de red.es el interfaz que se usa para referirse al propio equipo.
wlan0 es la interfaz de la tarjeta wifi (que es la que se está usando en estos momentos).
Analicemos esta última interfaz. La línea superior a la línea resaltada nos muestra la
direccionHW (dirección hardware o dirección mac). Esta dirección es la dirección física que
tiene la tarjeta de red. En la línea remarcada nos ponen la dirección IP que se nos ha asignado y
la máscara que le corresponde.
Si utilizamos:”ifconfig <nombre_interfaz>” visualizaremos solo la información de la
interfaz que hemos pedido, por ejemplo:
ifconfig eth0
Además este comando no solo sirve para visualizar información sobre nuestra
configuración de red, sino que también sirve para configurarla. Pongamos un ejemplo. Con la
configuración que hemos mostrado anteriormente en la imagen eth0 no tenía ninguna ip.
Pensemos que conecto el ordenador por cable (a esa interfaz), para poder utilizarlo (si no se ha
puesto de manera automática) debería darle una ip y una máscara para poder funcionar,
veamos cómo hacerlo con ifconfig.
Comando:”ifconfig <interfaz> <direccion_ip> netmask <mascara_de_rez>”
Ejemplo: “ifconfig eth0 192.168.0.2 netmask 255.255.255.0
Veamos en la siguiente imagen como todo funciona de forma correcta:
Página 3
4.
Nota: Para realizaresta operación son necesarios privilegios de administrador.
Página 4
5.
Comando netstat
Es una herramienta para comprobar la configuración de una red. En realidad es una
colección de herramientas combinadas.
Veamos unos cuantos ejemplos de esta utilidad.
Por ejemplo con netstat podemos ver la tabla de rutas (hacia dónde van los paquetes que
salen de nuestro ordenador). Estas tablas de rutas, al ser de un usuario, generalmente son
pequeñas ya que manda todos los paquetes al router, sin embargo, en un router (o un PC que
haga de router (ipforwardin activado) estas tablas de rutas suelen ser más grandes).
Como podemos ver, hay 3 líneas. La última línea es la ruta por defecto, todos los paquetes
que no cumplan las otras rutas irán a la dirección 172.18.120.1. Como podemos ver el destino es
0.0.0.0 y la máscara es 0.0.0.0 esta regla la cumplen todos los paquetes. Otro dato importante
que nos da es el interfaz que usa esa ruta.
Esta información se puede saber usando el comando:”route -nr” dándonos la misma
información.
Con netstat podemos ver además las estadísticas de la red utilizando el comando: “netstat -
i”
Vamos a explicar que significa cada cosa.
MTU: es el valor del MTU que tiene en ese momento.
Met: métrica para ese interfaz.
RX-OK: cuantos paquetes fueron transmitidos sin errores
Página 5
6.
RX-ERR: cuantos paquetesfueron transmitidos con errores
RX-DRP: cuantos paquetes fueron descargados
RX-OVR: cuantos paquetes se perdieron por desbordamiento
TX- : Lo mismo que con los RX
La última columna muestra abreviado de un indicador que se puede ver en ifconfig. Las
abreviaturas son las siguientes:
B: Dirección de difusión activa
L: Si la interfaz es un dispositivo de lazo
M: modo promiscuo
O: no funciona el ARP en esta interfaz
P: punto a punto
R: la interfaz funciona
U: la interfaz esta activa
Netstat también es muy útil para ver los puertos que estén activos o pasivos. Para ello
tiene una serie de comandos para ver los diferentes puertos. Por ejemplo para saber que
puertos están escuchando se usaría el comando -a.
En el ejemplo de la imagen vemos los puertos TCP (t) UDP (u) y que están escuchando.
Para ver los puertos RAW (w) y los UNIX (x)
Esta herramienta es muy útil ya que nos puede decir que puertos son vulnerables a un
ataque (aquellos que están escuchando) y también que servicios tenemos activos. Por ejemplo
en la primera línea vemos que tengo el servicio mysql activo ya que está escuchando.
Una vez que sabemos que tenemos mysql ejecutándose (ya que está escuchando)
podemos intentar buscar el PID(identificador del proceso) de cada uno de los procesos, para
matarlos, pararlos, etc. Una manera de saber esto sería utilizando el comando “ps -aux”, este
comando nos dice todos los servicios que están corriendo, parados, zombis, etc. Como en un
ordenador suele haber muchos procesos y si nosotros queremos buscar información sobre uno
en concreto podemos apoyarnos en el grep.
Un ejemplo práctico.
No sabemos qué puertos tcp y udp están escuchando, usamos el comando netstat -tau (el
orden de las letras no importa) y vemos que mysql está activo, y nosotros no usamos mysql y
queremos matar ese proceso, para ello tenemos que saber el pid, usamos entonces “ps -aux |
Página 6
7.
grep mysql”. Esecomando hace lo siguiente, busca todos los procesos activos (parados,
zombis...) del sistema, y luego realiza un filtrado por mysql
Como podemos ver, nos salen todos los servicios de mysql que están activos, si hacemos
un kill <pid> de todos los procesos que nos salen, dejaremos de ejecutar mysql. Hay que darse
cuenta que la ultima línea que nos sale es el proceso que hemos creado al invocar la orden:”ps -
aux | grep mysql”.
Estas son las opciones que me han parecido buenas destacar, netstat tiene alguna opción
más, para ello siempre podemos consultar el man.
Página 7
8.
Comando nslookup
Este comando es para saber si el DNS está funcionando correctamente. Se le puede
preguntar un nombre de dominio y te dice su dirección IP
La primera línea Server nos da la dirección IP de a quien le ha preguntado la DNS. La
segunda es la dirección a la que se lo ha preguntado y el puerto (53, el típico del DNS). El resto
es la información del host por el cual hemos preguntado.
También se puede realizar la consulta al revés, preguntar por “nslookup <direccion_ip>” y
nos devuelve información sobre esa ip.
Como en los casos anteriores, se pueden usa nslookup con otros comando y tener
resultados más avanzados, pero creo que se sale de la explicación básica del servicio. Como
siempre para mayor información utilizar el man.
Página 8
9.
Otros comandos
Comando ARP
Este comando sirve para manipular el cache ARP
Expliquemos brevemente para que se usa el ARP. Deseamos mandar un paquete a una
dirección ip conocida. Para poder mandarlo, necesitamos saber si dirección física. Lo que hace la
maquina que tiene que mandar el paquete es mandar a la dirección de broadcast (a toda la red)
un paquete preguntando quien es esa dirección IP. La maquina que sea esa dirección IP
contestara diciendo que esa dirección es el. Al recibir el paquete de respuesta, la primera
máquina ya sabe esa dirección física y se la apunta en la cache por si tiene que mandar más
paquetes a esa dirección ip. Si al cabo de un tiempo no manda más paquetes, borrara esta
cache.
Pues bien, el comando ARP nos permite ver y manipular esta cache. Podemos añadir,
eliminar líneas, o simplemente visualizar esta tabla. Para visualizar utilizaríamos el comando
”arp”
Comando PING
Este es uno de los comandos más usados para comprobar el correcto funcionamiento de
una red. Tiene un funcionamiento sencillo, el ordenador que realiza el ping manda paquetes a la
dirección destino, y cuando el destinatario los recibe contesta diciendo que los ha recibido. Es
muy útil para saber si dos ordenadores pueden conectarse.
Para usarlo, hay que utilizar:”ping <dirección ip>” o también funciona con “ping
<nombre_host>.
Veamos un ejemplo:
Página 9
10.
Como vemos enel ejemplo nos da cierta información, en cada línea nos dice, la dirección
IP a la que ha hecho el ping, luego el valor del paquete icmp_seq y por último el tiempo tardado.
Al final del todo nos dice los paquetes que se han transmitido, los recibidos y él % de paquetes
perdidos. Como podemos ver, con esta utilidad podemos ver que tal funciona nuestra red,
mirando el % de los paquetes que hemos perdido.
El ping como en otros casos deja efectuar diversos cambios, por ejemplo se puede
aumentar el tamaño del paquete a enviar y otras variantes. Esta funcionalidad a veces se ha
utilizado (con muchas maquinas) para realizar ataques por denegación de servicio, entorpecer
servidores e incluso tirarlos de la red.
Comando traceroute
Este comando no tiene porque venir instalado, pero instalarlo simplemente hay que
realizar esta orden:”sudo apt-get install traceroute”.
Este comando es también muy útil y sirve para ver el recorrido que hacen nuestros
paquetes por la red, puede servir para optimizar una red, saber porque tu red no va (saber
hasta dónde llega tu paquete etc…). Esta aplicación se basa en el TTL de los paquetes. Comienza
mandando paquetes con un salto, y cuando le contestan manda otro paquete incrementando en
uno el TTL de esta manera podemos ir viendo el recorrido que realiza el paquete por la red.
Pongamos un ejemplo:
En algunos routers hay cortafuegos por lo que, puede que el mapa de la red quede
incompleto.
Se puede utilizar poniendo el nombre de la web o la dirección ip.
Comando wireshark
Este comando tampoco viene instalado, y hay que instalarlo a mano. De manera análoga a
la anterior, “sudo apt-get install wireshark”. Para su ejecución: ”sudo wireshark”, este programa
requiere permisos de administrador.
Página 10
11.
Este programa esuno de los muchos sniffers que existen. Es pasivo, y lo que hace es leer
los paquetes que pasan por la red. Los datos de los paquetes que pasan por la red, pueden ser
guardados en fichero para posteriores estudios. Es una herramienta muy útil para la seguridad
de un ordenador.
Pantalla principal
Para empezar analizar el tráfico que pasa por el ordenador, tenemos que pulsar el botón
que aparece debajo del cursor en la pantalla.
Nos saldrá una pantalla emergente, y seleccionamos el interfaz, por el que queremos
observar el tráfico.
Mientras tenemos el programa escuchando abrimos el navegador y observamos el
programa.
Página 11
12.
Como podemos ver,los dos primeros paquetes que le llegan son los ARP, con destino
broadcast. Pregunta primero ¿quién es 192.168.1.1? (pregunta por la dirección 192.168.1.1
porque es la ruta por defecto en la tabla de rutas), y el router le responde:”yo soy la dirección
192.168.1.1”. Una vez que ya se sabe quién es la dirección 192.168.1.1 se guarda su dirección
física (mac) en una cache para no tener que preguntar continuamente.
Después de esos paquetes vienen los paquetes DNS que nos transformaran el nombre
“www.google.com” en su dirección ip. Una vez que se tiene la dirección ip comienzan los
paquetes donde nos viene la información de la página pedida.
Podemos fijarnos, que hasta ahora el dialogo era entre el router y el ordenador, pero una
vez sabemos cual es la dirección IP del host destino, se realizan las peticiones TCP
correspondientes y vemos también una petición HTTP.
Esta herramienta es muy útil para la seguridad de los equipos, ya que vemos todo lo que
entra y lo que sale por nuestra interfaz web.
Página 12