David Bohm

Hay dos frases que definen mi manera de pensar:
Realmente no hemos prestado mucha atención al pensamiento como un proceso; hemos participado en pensamientos, pero sólo hemos prestado atención al contenido, no al proceso.
La capacidad de percibir o pensar de manera diferente es más importante que el conocimiento adquirido.
Ambas son de David Bohm.

martes, 17 de octubre de 2017

Adaptadores de red en Linux, recopilación de comandos y diferentes alternativas

Hoy a lo largo de la jornada laboral me he estado peleando literalmente con una máquina virtual con Kali Linux, otra con CentOS y la configuración de red. Al final el problema estaba en el host ya que tengo varios adaptadores de red para conectar a diferentes entornos sobre los que tenia que realizar diferentes pentestings. Me he vuelto tan loco y como he tenido que recordar ciertos comandos y aprender otros para intentar averiguar que le pasaba al adaptador y porque no conectaba, hago este resumen que me sirva para futuras lejanas ocasiones.

Este es el comando básico para ver la configuración de las diferentes interfaces que tenga el equipo. Muestra la información de configuración de red, ip, máscara, etcétera. En este caso si lo ejecutamos sin argumentos, mostrará solo las interfaces activas. Este detalle es muy importante.

# ifconfig

Con el parametro -a de all, mostrará todas las interfaces de red activas o inactivas.

# ifconfig -a

En este caso podemos mostrar la configuración específica de un interfaz concreta, en este caso la llamada eth0.

# ifconfig eth0

De esta manera podemos activar(up) o desactivar(down) una interfaz de red, en concreto la llamada eth0

# ifconfig eth0 up

# ifconfig eth0 down

Esta forma es el equivalente a hacerlo con ifconfig, yo habitualmente uso estos últimos.

# ifup eth0

# ifdown eth0

De esta forma podemos asignar una dirección ip a la interfaz eth0. Hay que tener en cuenta que esta es una forma temporal de asignar una dirección ip a la interfaz. Mas adelante vemos como hacerlo de forma definitiva.

# ifconfig eth0 192.168.1.200

Tal y como hemos hecho en el comando anterior, ahora con este comando asignamos una máscara de subred a la interfaz

# ifconfig eth0 netmask 255.255.255.0

Con este argumento de ifconfig podemos configurar la dirección de difusión para la interfaz eth0.

# ifconfig eth0 broadcast 192.168.1.255

De esta forma combinamos todos los argumentos en una única linea y se asigna ip, máscara y broadcast en un solo comando.

# ifconfig eth0 192.168.1.200 netmask 255.255.255.0 broadcast 192.168.1.255

De esta forma establecemos la dirección de gateway para la interfaz eth0, usando el comando route, por dar un poco de variedad a estos apuntes. Mas adelante vemos un poco mas sobre enrutamientos.

# route add default gw 192.168.1.254 eth0

Con este comando activaremos o desactivaremos (-) el modo promiscuo, es decir, establecemos que la tarjeta de red acepte todos los paquetes. De normal se verifica el paquete y solo admite aquellos que le pertenecen.

# ifconfig eth0 promisc

# ifconfig eth0 -promisc

Existen mas alternativas para hacer este tipo de cambios "on the fly", como con este ejemplo con el comando ip. Con o sin máscara podemos agregar la configuración de ip (add) o suprimirla (del):

# ip addr add 192.168.1.200 dev eth0

# ip addr add 192.168.1.200/24 dev eth0

# ip addr del 192.168.1.200/24 dev eth0

Con el comando ip podemos también comprobar la configuración:

# ip addr show

Para activar o desactivar la interfaz de red podemos ejecutar:

# ip link set eth0 up

# ip link set eth0 down

Si nos metemos un poco mas en harina con este comando, podemos incluso mostrar la tabla de enrutamiento:

# ip route show

Para añadir o eliminar manualmente una ruta estática:

# ip route add 10.1.1.0/24 via 192.168.1.250 dev eth0

# ip route del 10.1.1.0/24

Si lo queremos hacer con el comando route, para mostrar las rutas:

# route –n

Incluso se podría hacer con el comando netstat:

# netstat –nr

Y para añadir o borrar una ruta con route:

# route add -net 10.1.1.0 netmask 255.255.255.0 gw 192.168.1.250 dev eth0

# route del -net 10.1.1.0 gw 192.168.1.250 netmask 255.255.255.0 dev eth0

Recordemos que estamos haciendo configuraciones temporales, no son permanentes, al reiniciar se pierden.

Bien, ahora vamos a ver como podemos configurar de forma permanente el interfaz con ip, mascara, etcétera. En este caso vamos a diferenciar un poco la configuración según el tipo de familia de distribucion, he estado volviendome loco en este aspecto en multitud de ocasiones, aunque se parece, no es lo mismo:

Familia Red Hat, como por ejemplo RHEL, CentOS o Fedora. Su ruta de configuración es:

# vim /etc/sysconfig/network-scripts/ifcfg-eth0

Ejemplo de configuración:

   DEVICE="eth0"
   BOOTPROTO=static
   ONBOOT=yes
   TYPE="Ethernet"
   IPADDR=192.168.1.200
   NAME="Configuracion eth0"
   HWADDR=00:00:00:00:00:00
   GATEWAY=192.168.1.1

Familia Debian, como por ejemplo Ubuntu, Linux Mint o Kali Linux. Su ruta de configuración es:

# vim /etc/network/interfaces

Ejemplo de configuración:

   auto eth0
   iface eth0 inet static
   address 192.168.1.200
   netmask 255.255.255.0
   gateway 192.168.1.1

Siempre reiniciamos los servicios de red:

# /etc/init.d/networking restart

Si volvemos a las rutas, veamos como añadir o eliminar una ruta estática permanente, y tenemos que volver a diferenciar por familia de distribución:

Familia Red Hat, editaremos en la ruta:

# vim /etc/sysconfig/network-scripts/route-eth0

Familia Debian sin embargo como el ejemplo anterior de las ips, será en la siguiente ruta:

# vim /etc/network/interfaces

Y si completamos el ejemplo anterior quedaría:

   auto eth0
   iface eth0 inet static
   address 192.168.1.200
   netmask 255.255.255.0
   gateway 192.168.1.1
   #########{Static Route}###########
   up ip route add 10.1.1.0/24 via 192.168.1.250 dev eth0

Tal y como se ha hecho antes, debemos reiniciar los servicios de red, otra opción a la vista anteriormente es:

# service network restart

Bueno, con esto creo que mas o menos he recopilado todo lo que he ido utilizando en uno u otro momento.

SaluDOS