Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Tutoriales / Redes en Linux - Información relacionada con IP y Ethernet (I)

Redes en Linux - Información relacionada con IP y Ethernet (I)

 ***** (4 opiniones)
Copyright Tutorial de Joshua Drake - 22 de Diciembre de 2006
Temas Relacionados: Linux
10. Información relacionada con IP y Ethernet (I)

Esta sección cubre la información específica a Ethernet e IP. Estas subsecciones han sido agrupadas juntas debido a que pienso que son las más interesante dentro de la que previamente se llamó sección de «Tecnología Específica». Cualquiera que tenga una LAN se beneficiará de esta parte.

6.1 Ethernet

Los dispositivos Ethernet son eth0, eth1, eth2, etc. A la primera tarjeta detectada por el núcleo se le asigna eth0 y al resto se les asigna secuencialmente en el orden en que sean detectadas.

Por defecto, el núcleo de Linux sólo intenta buscar una tarjeta de red, por lo que tendrá que pasarle algunos parámetros para forzar la detección de las demás.

Para aprender cómo hacer trabajar una tarjeta Ethernet bajo Linux debería acudir al Ethernet Howto, Ethernet-HOWTO.html.

Una vez que tenga el núcleo compilado para reconocer su tarjeta Ethernet, configurar la tarjeta es sencillo.

Normalmente debería hacer algo como:

root# ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
root# route add -net 192.168.0.0 netmask 255.255.255.0 eth0

La mayoría de los controladores Ethernet fueron desarrollados por Donald Becker, becker@CESDIS.gsfc.nasa.gov.

6.2 EQL - ecualizador de tráfico para líneas múltiples

El nombre del dispositivo EQL es eql. Con las fuentes estándar del núcleo sólo podrá tener un dispositivo EQL por máquina. EQL proporciona un medio para utilizar múltiples líneas punto a punto como un solo enlace PPP, slip o PLIP lógico para llevar tcp/ip. A menudo es más barato usar varias líneas de baja velocidad que tener una sola línea de alta velocidad.

Opciones de Compilación del Núcleo:

Network device support  --->
  [*] Network device support
  <*> EQL (serial line load balancing) support
 

Para poder usar este mecanismo la máquina en el otro extremo de la línea debe admitirlo también. Linux, Livingstone Portmasters y los nuevos servidores dial-in soportan servicios compatibles.

Para configurar EQL necesitará las herramientas eql que están disponibles en ftp://metalab.unc.edu/pub/linux/system/Serial/eql-1.2.tar.gz.

La configuración es bastante directa. Se comienza por la interfaz eql. La interfaz es exactamente como la de cualquier otro dispositivo de red. La dirección IP y mtu se configura usando ifconfig, con algo como:

root# ifconfig eql 192.168.10.1 mtu 1006

Lo siguiente que se necesita es iniciar manualmente cada una de las líneas que se vayan a usar. Esta puede ser cualquier combinación de dispositivos de red punto a punto. Cómo iniciar las conexiones depende del tipo de enlace que sea, por lo que ha de mirar las secciones apropiadas para más información.

Finalmente necesitará asociar el enlace serie con el dispositivo EQL, esto se llama «esclavizar» y se hace con la orden eql_enslave como se ve en el ejemplo:

root# eql_enslave eql sl0 28800
root# eql_enslave eql ppp0 14400

El parámetro velocidad estimada que se da a eql_enslave no hace nada directamente. Lo usa el controlador (driver) EQL para determinar qué parte de los datagramas va a recibir cada dispositivo, para así afinar el balance de las líneas jugando con este valor.

Para disociar una línea de un dispositivo EQL use eql_emancipate de esta manera:

#root eql_emancipate eql sl0

Puede añadir rutas de la misma manera que para cualquier otro enlace punto a punto, excepto en que las rutas deben referirse al dispositivo eql en lugar de a los verdaderos dispositivos en serie. Normalmente usará:

root# route add default eql

El controlador EQL fue desarrollado por Simon Janes, simon@ncm.com.

6.3 IP Accounting (en Linux 2.0)

Los servicios de auditoría IP del núcleo de Linux le permiten recolectar y analizar datos de uso de la red. Los datos recogidos comprenden el número de paquetes y de bytes acumulados desde que se puso a cero la última vez. Tiene a su disposición varias reglas para categorizar estas cifras para que se ajusten a los propósitos que les vaya a dar. Esta opción ha sido eliminada del núcleo a partir de la versión 2.1.102, porque el viejo sistema de cortafuegos basado en ipfwadm fue reemplazado por ipfwchains.

Opciones de Compilación del Núcleo:

Networking options  --->
  [*] IP: accounting
 

Después de que haya compilado e instalado el núcleo necesitará hacer uso de la orden ipfwadm para configurar la auditoría de IP. Hay muchas maneras diferentes de obtener la información de auditoría para elegir. He creado un ejemplo sencillo de lo que podría ser útil, pero debería leer la página de manual de ipfwadm para obtener más información.

Escena: Tenemos una red Ethernet que accede a la Internet mediante un enlace PPP. En la Ethernet tiene una máquina que ofrece cierta variedad de servicios y está interesado en saber cuánto tráfico se genera por cada conexión ftp y http, así como el tráfico total tcp y udp.

Podrías usar un conjunto de órdenes que se pareciese a lo siguiente, que se presenta como guión de ejecución de órdenes (shell script):

#!/bin/sh
#
# Borrar las reglas de contabilidad
ipfwadm -A -f
#
# Establecer macros
localnet=44.136.8.96/29
any=0/0
# Agregar reglas para los segmentos de la red local
ipfwadm -A in  -a -P tcp -D $localnet ftp-data
ipfwadm -A out -a -P tcp -S $localnet ftp-data
ipfwadm -A in  -a -P tcp -D $localnet www
ipfwadm -A out -a -P tcp -S $localnet www
ipfwadm -A in  -a -P tcp -D $localnet
ipfwadm -A out -a -P tcp -S $localnet
ipfwadm -A in  -a -P udp -D $localnet
ipfwadm -A out -a -P udp -S $localnet
#
# Reglas por defecto
ipfwadm -A in  -a -P tcp -D $any ftp-data
ipfwadm -A out -a -P tcp -S $any ftp-data
ipfwadm -A in  -a -P tcp -D $any www
ipfwadm -A out -a -P tcp -S $any www
ipfwadm -A in  -a -P tcp -D $any
ipfwadm -A out -a -P tcp -S $any
ipfwadm -A in  -a -P udp -D $any
ipfwadm -A out -a -P udp -S $any
#
# Mostrar las reglas
ipfwadm -A -l -n
#

Los nombres ftp-data y www se refieren a líneas en /etc/services. La última orden da una lista de cada una de las reglas de auditoría y muestra los totales obtenidos.

Una cosa importante a tener en cuenta cuando analizamos IP accounting es que los totales de todas las reglas que se han cumplido se han incrementado, por tanto para obtener las diferencias tendrá que hacer los cálculos apropiados. Por ejemplo, si quiero saber cuantos datos no fueron de ftp, ni www restaré los totales individuales de la regla que se corresponde con todos los puertos.

root# ipfwadm -A -l -n
IP accounting rules
 pkts bytes dir prot source               destination          ports
    0     0 in  tcp  0.0.0.0/0            44.136.8.96/29       * -> 20
    0     0 out tcp  44.136.8.96/29       0.0.0.0/0            20 -> *
   10  1166 in  tcp  0.0.0.0/0            44.136.8.96/29       * -> 80
   10   572 out tcp  44.136.8.96/29       0.0.0.0/0            80 -> *
  252 10943 in  tcp  0.0.0.0/0            44.136.8.96/29       * -> *
  231 18831 out tcp  44.136.8.96/29       0.0.0.0/0             * -> *
    0     0 in  udp  0.0.0.0/0            44.136.8.96/29       * -> *
    0     0 out udp  44.136.8.96/29       0.0.0.0/0            * -> *
    0     0 in  tcp  0.0.0.0/0            0.0.0.0/0            * -> 20
    0     0 out tcp  0.0.0.0/0            0.0.0.0/0            20 -> *
   10  1166 in  tcp  0.0.0.0/0            0.0.0.0/0            * -> 80
   10   572 out tcp  0.0.0.0/0            0.0.0.0/0            80 -> *
  253 10983 in  tcp  0.0.0.0/0            0.0.0.0/0            * -> *
  231 18831 out tcp  0.0.0.0/0            0.0.0.0/0            * -> *
    0     0 in  udp  0.0.0.0/0            0.0.0.0/0            * -> *
    0     0 out udp  0.0.0.0/0            0.0.0.0/0            * -> *

6.4 IP Accounting (en Linux 2.2)

El nuevo código para llevar la contabilidad se accede mediante «IP Firewall Chains». Consulte la página principal de IP chains http://www.adelaide.net.au/~rustcorp/ipfwchains/ipfwchains.html si desea más información. Entre otras cosas, necesitará usar ipchains en lugar de ipfwadm para configurar sus filtros. (De Documentation/Changes en las últimas fuentes del núcleo)

6.5 IP Aliasing

Hay algunas aplicaciones para las que es útil ser capaz de asignar varias direcciones IP a un sólo dispositivo de red. Los Proveedores de Servicios de Internet usan esto a menudo para ofertar a sus usuarios WWW y FTP «a medida». Puede acudir al IP-Alias mini-HOWTO si quiere obtener más información de la que aquí hay.

Opciones de Compilación del Núcleo:

Networking options  --->
   ....
   [*] Network aliasing
   ....
   <*> IP: aliasing support

Después de compilar e instalar su núcleo con la implementación de IP_Alias, la configuración es muy sencilla. Los alias se añaden a dispositivos de red virtuales asociados al verdadero dispositivo de red. Se aplica una convención sencilla para dar nombres a estos dispositivos, que es <nombredisp>:<núm disp virtual>, por ejemplo eth0:0, ppp0:10, etc. Tenga en cuenta que dispositivo nombre:número sólo se puede configurar después de haber activado la interfaz principal.

Por ejemplo, asumiremos que tiene una red Ethernet que soporta dos redes IP diferentes simultáneamente y quiere que tu máquina tenga acceso directo a ambas. Podríamos hacer algo como:

root# ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
root# route add -net 192.168.1.0 netmask 255.255.255.0 eth0

root# ifconfig eth0:0 192.168.10.1 netmask 255.255.255.0 up
root# route add -net 192.168.10.0 netmask 255.255.255.0 eth0:0

Para borrar un alias sencillamente añadimos un `-' al final de su nombre y nos referimos a él de forma tan sencilla como:

root# ifconfig eth0:0- 0

También serán borradas automáticamente todas las rutas asociadas con ese alias.

6.6 IP Firewall (para Linux 2.0)

Los temas referentes a Cortafuegos IP y al trabajo con Cortafuegos está cubierto en mayor profundidad en el http://www.insflug.org/documentos/Cortafuegos-Como/. Tener un Cortafuegos IP le permite asegurar su máquina frente a accesos por la red no autorizados filtrando o permitiendo que entren datagramas de o hacia las direcciones IP que sean designadas. Hay tres clases diferentes de reglas, filtrado de entradas (incoming filtering), filtrado de salidas (outgoing filtering) y filtrado de reenvíos (forwarding filtering). Las reglas de entradas son aplicadas a los datagramas recibidos en un dispositivo de red. Las reglas de salidas se aplican a los datagramas que va a transmitir un dispositivo de red. Las reglas de reenvíos se aplican a datagramas que se reciben pero que no son para esta máquina, como por ejemplo datagramas que entran por una interfaz para ser encaminados por otra.

Opciones de Compilación del Núcleo:

Networking options  --->
  [*] Network firewalls
  ....
  [*] IP: forwarding/gatewaying
  ....
  [*] IP: firewalling
  [ ] IP: firewall packet logging

La configuración de las reglas del cortafuegos IP se realiza usando la orden ipfwadm. Como mencioné antes, yo no soy un experto en seguridad, por lo aunque le voy a presentar un ejemplo que se puede usar, usted debería investigar y desarrollar sus propias reglas si la seguridad es algo que le importe.

El uso más común de los cortafuegos IP es probablemente cuando está usando su máquina Linux como encaminador y pasarela (gateway) cortafuegos para proteger tu red local de accesos sin autorización desde fuera de la red.

La configuración siguiente está basada en una contribución de Arnt Gulbrandsen, agulbra@troll.no.

El ejemplo describe la configuración de las reglas de cortafuegos en la máquina cortafuegos/encaminadora ilustrada en este diagrama.

-                                   -
 \                                  | 172.16.37.0
  \                                 |   /255.255.255.0
   \                 ---------      |
    |  172.16.174.30 | Linux |      |
NET =================|  f/w  |------|    ..37.19
    |    PPP         | router|      |  --------
   /                 ---------      |--| Mail |
  /                                 |  | /DNS |
 /                                  |  --------
-                                   -

Las órdenes que siguen, deberían normalmente estar situadas en un fichero rc de manera que sean ejecutadas automáticamente cada vez que el sistema reinicie. Para mayor seguridad deberían ser llamadas después de que ser configuradas las interfaces de red, pero antes de que las interfaces hayan sido puestas «en marcha» para prevenir cualquier intento de acceder mientras la máquina cortafuegos está reiniciando.

#!/bin/sh

# Limpiar la tabla de reglas de 'Reenvíos'
# Cambiar la política por defecto a 'accept'
#
/sbin/ipfwadm -F -f
/sbin/ipfwadm -F -p accept
#
# .. y lo mismo para 'Entradas'
#
/sbin/ipfwadm -I -f
/sbin/ipfwadm -I -p accept

# Antes que nada, sellamos la interfaz PPP
# Me encantaría usar '-a deny' en lugar de '-a reject -y' pero entonces
# sería imposible originar conexiones desde ese interfaz.
# El -o causa que todos los datagramas rechazados sean registrados. Esto
# toma espacio de disco a cambio de tener el conocimiento de un ataque
# por error de configuración.
#
/sbin/ipfwadm -I -a reject -y -o -P tcp -S 0/0 -D 172.16.174.30

# Eliminar ciertos tipos de paquetes que obviamente han sido generados
# de forma 'artificial': No puede venir nada de direcciones
# multicast/anycast/broadcast
#
/sbin/ipfwadm -F -a deny -o -S 224.0/3 -D 172.16.37.0/24
#
# y nunca deberíamos ver llegar por un cable nada de la red
# 'loopback'
#
/sbin/ipfwadm -F -a deny -o -S 127.0/8 -D 172.16.37.0/24

# aceptamos entradas de las conexiones SMTP y DNS, pero sólo
# hacia el Mail/Name Server
#
/sbin/ipfwadm -F -a accept -P tcp -S 0/0 -D 172.16.37.19 25 53
#
# DNS usa tanto UPD como TCP, por lo tanto los permitimos ambos
# para quien pregunte por nuestro servidor de nombres
#
/sbin/ipfwadm -F -a accept -P udp -S 0/0 -D 172.16.37.19 53
#
# pero no "respuestas" que lleguen a puertos peligrosos como el de NFS
# y extensiones de NFS de Larry McVoy. Si ejecutamos squid, añadir
# su puerto aquí también.
#
/sbin/ipfwadm -F -a deny -o -P udp -S 0/0 53 \
-D 172.16.37.0/24 2049 2050

# valen las respuestas a otros puertos de usuario
#
/sbin/ipfwadm -F -a accept -P udp -S 0/0 53 \
        -D 172.16.37.0/24 53 1024:65535

# Rechazar conexiones de entrada a identd Usaremos 'reject' aquí para que
# se le diga al ordenador que intenta conectar que no continúe, si no lo
# hiciéramos, experimentaríamos retrasos mientras ident da un error de
# 'time out'
#
/sbin/ipfwadm -F -a reject -o -P tcp -S 0/0 -D 172.16.37.0/24 113

# Aceptamos algunas conexiones a servicios comunes desde las redes
# 192.168.64 y 192.168.65, que son amistades en las que confiamos.
#
/sbin/ipfwadm -F -a accept -P tcp -S 192.168.64.0/23 \
       -D 172.16.37.0/24 20:23

# aceptar y dejar pasar cualquier cosa que se origine dentro
#
/sbin/ipfwadm -F -a accept -P tcp -S 172.16.37.0/24 -D 0/0

# denegar la mayoría del resto de conexiones TCP y registrarlas
# (añade 1:1023 si tiene problemas con el FTP)
#
/sbin/ipfwadm -F -a deny -o -y -P tcp -S 0/0 -D 172.16.37.0/24

# ... para UDP también
#
/sbin/ipfwadm -F -a deny -o -P udp -S 0/0 -D 172.16.37.0/24

Las buenas configuraciones de cortafuegos son un poco complicadillas. Este ejemplo debería ser un punto de partida razonable. La página de manual de ipfwadm ofrece más asistencia en lo que respecta al manejo de la herramienta. Si intenta configurar un cortafuegos, asegúrese de que hace suficientes preguntas para tener información de las fuentes que considera fiables y haga algunas pruebas de funcionamiento con su configuración desde el exterior de la red.

Autor y licencia de 'Redes en Linux - Información relacionada con IP y Ethernet (I)'
Joshua Drake Extraído de: http://www.insflug.org/COMOs/Redes-En-Linux-Como/Redes-En-Linux-Como.html Copyright
The NET-3-HOWTO, information on how to install and configure networking support for Linux. Copyright (c) 1997 Terry Dawson, 1998 Alessandro Rubini, 1999 {POET} - LinuxPorts. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Redes en Linux - Información relacionada con IP y Ethernet (I)'

A lo largo de este trabajo se va a intentar hacer un repaso de los... Más »
Este documento describe cómo activar la función IP Masquerade en un servidor Linux, permitiendo conectar... Más »
En este documento se presenta la información acerca de la instalación, configuración, ejecución y mantenimiento... Más »
Este documento describe el soporte de sonido para Linux. Enumera el hardware de sonido soportado,... Más »
Josep Palau i Fabre, poeta barcelonés nacido en 1917, es uno de los máximos representantes... Más »
¿Estás seguro de que deseas eliminar este capítulo?