[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ siguiente ]
Este capítulo se centra en la administración de redes en Debian. Para una
introducción general sobre redes en GNU/Linux lea el Net-HOWTO
.
Para que un equipo Debian sea capaz de acceder a Internet sus interfaces de red necesitan ser soportadas por el kernel y configuradas apropiadamente.
El primer requisito es el soporte del kernel para los dispositivos de interfaz de red tales como las tarjetas Ethernet, tarjetas Wi-Fi y módems. Para obtener este soporte es posible que necesite recompilar el kernel o añadirle módulos como se describe en El kernel de Linux en Debian, Capítulo 7.
La configuración de los dispositivos de red se explica a continuación. La información en este capítulo ha sido actualizada para Sarge. Mucho de todo esto no se aplica a versiones anteriores.
Un equipo Debian puede tener diversas interfaces con una diferente dirección IP. Las interfaces pueden ser de diversos tipos diferentes, incluyendo:
Loopback: lo
Ethernet: eth0, eth1, ...
Wi-Fi: wlan0, wlan1, ... [37]
Token Ring: tr0, tr1, ...
PPP: ppp0, ppp1, ...
Existe un amplio rango de otros dispositivos de red disponibles, incluyendo SLIP, PLIP (línea IP serie y paralelo), dispositivos "shaper" para controlar el tráfico de ciertas interfaces, conmutación de tramas, AX.25, X.25, ARCnet y LocalTalk.
Cada interfaz de red conectada directamente a Internet (o a cualquier red basada en IP) es identificada por una única dirección IP de 32 bits. [38] La dirección IP se puede dividir en la parte relativa a la red y la parte relativa a la máquina. Si se considera una dirección IP, se ponen 1 en los bits que son parte de la dirección de red y ceros en la parte de la dirección de la máquina se obtiene la máscara de red.
Tradicionalmente, las redes IP fueron agrupadas en clases cuyas direcciones de red componentes eran de 8, 16 o 24 bits de tamaño. [39]
direcciones IP máscara de red longitud Clase A 1.0.0.0 - 126.255.255.255 255.0.0.0 = /8 Clase B 128.0.0.0 - 191.255.255.255 255.255.0.0 = /16 Clase C 192.0.0.0 - 223.255.255.255 255.255.255.0 = /24
Las direcciones IP que no se encuentran en estos rangos se utilizan para propósitos especiales.
En cada clase existen rangos de direcciones reservados para su uso en redes de área local (LANs). Se garantiza que estas direcciones no entren en conflicto con las direcciones propias de Internet (en consecuencia, si una de estas direcciones se asigna a un equipo éste no podrá acceder a Internet directamente sino a través de una puerta de enlace que actúe como proxy para los servicios individuales o hacer la traducción de direcciones de red – NAT) Estos rangos de direcciones se dan en la siguiente tabla junto con el número de rangos en cada clase.
direcciones de red longitud cantidad Clase A 10.x.x.x /8 1 Clase B 172.16.x.x - 172.31.x.x /16 16 Clase C 192.168.0.x - 192.168.255.x /24 256
La primera dirección en una red IP es la dirección de la propia red. La última dirección es la dirección de difusión de la red. [40] Todas las otras direcciones se pueden asignar a máquinas de la red. De éstas, la primera o la última dirección generalmente se asigna a la puerta de enlace para Internet.
La tabla de rutas contiene información sobre cómo enviar paquetes IP a sus destinos. Veamos una impresión de ejemplo de la tabla de rutas para una máquina Debian de una red de área local (LAN) con dirección IP 192.168.50.x/24. La máquina 192.168.50.1 (también en la LAN) es un router para la red corporativa 172.20.x.x/16 y la máquina 192.168.50.254 (también en la LAN) es un router para Internet.
# route Kernel IP routing table Destination Gateway Gateway Genmask Flags Metric Ref Use Iface 127.0.0.0 * 255.0.0.0 U 0 0 2 lo 192.168.50.0 * 255.255.255.0 U 0 0 137 eth0 172.20.0.0 192.168.50.1 255.255.0.0 UG 1 0 7 eth0 default 192.168.50.254 0.0.0.0 UG 1 0 36 eth0
La primera línea después del encabezado dice que el tráfico destinado a la red 127.x.x.x será encaminado hacia la interfaz de retorno (loopback) lo.
La segunda línea dice que el tráfico destinado para las máquinas de la LAN será encaminado a través de eth0.
La tercer línea dice que el tráfico destinado a la red corporativa será encaminado a la puerta de enlace 192.168.50.1 y también a través de eth0.
La cuarta línea dice que el tráfico destinado a Internet será encaminado a la puerta de enlace 192.168.50.254 también a través de eth0.
Las direcciones IP en la tabla también pueden aparecer como nombres que se
obtienen observando las direcciones en /etc/networks
o usando la
biblioteca C resolver.
Ademas de encaminar, el kernel puede realizar la traducción de las direcciones de red, la modulación del tráfico y su filtrado.
Véase el Net-HOWTO
y
other
networking HOWTOs
para más información.
Las herramientas tradicionales de configuración de red a bajo nivel en sistemas
GNU/Linux son los programas ifconfig
y route
que
vienen en el paquete net-tools
. Estas herramientas han sido
oficialmente reemplazadas por ip
que viene en el paquete
iproute
. El programa ip
funciona con Linux 2.2 y
superior y es más poderoso que las herramientas anteriores. Sin embargo, las
herramientas anteriores aún funcionan y resultan más familiares para muchos
usuarios.
ifconfig
y route
Veamos una ilustración de cómo cambiar la dirección IP de la interfaz
eth0 de 192.168.0.3 a 192.168.0.111 y
convertir a eth0 en la ruta a la red 10.0.0.0 vía
192.168.0.1. Empiece ejecutando ifconfig
y
route
sin argumentos para mostrar el estado actual de todas las
interfaces de red y encaminamiento.
# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:46:7A:02:B0 inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:23363 errors:0 dropped:0 overruns:0 frame:0 TX packets:21798 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:13479541 (12.8 MiB) TX bytes:20262643 (19.3 MiB) Interrupt:9 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:230172 errors:0 dropped:0 overruns:0 frame:0 TX packets:230172 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:22685256 (21.6 MiB) TX bytes:22685256 (21.6 MiB) # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * 255.255.0.0 U 0 0 0 eth0 default 192.168.0.1 255.255.255.255 UG 0 0 0 eth0
Primero deshabilitamos la interfaz.
# ifconfig eth0 inet down # ifconfig lo Link encap:Local Loopback ... (no más entradas eth0) # route ... (no más entradas en la tabla de rutas)
Luego la habilitamos con la nueva IP y la nueva ruta.
# ifconfig eth0 inet up 192.168.0.111 \ netmask 255.255.0.0 broadcast 192.168.255.255 # route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.0.1 dev eth0
El resultado:
# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:46:7A:02:B0 inet addr:192.168.0.111 Bcast:192.168.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 ... lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 ... # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * 255.255.0.0 U 0 0 0 eth0 10.0.0.0 192.168.0.1 255.0.0.0 UG 0 0 0 eth0
Para más información véase ifconfig(8)
y route(8)
.
ip
Los comandos ip
equivalentes a los comandos ifconfig
y route
anteriores son:
ip link show
ip route list
ip link set eth0 down
ip addr del dev eth0 local 192.168.0.3
ip addr add dev eth0 local 192.168.0.111/16 broadcast 192.168.255.255
ip link set eth0 up
ip route add dev eth0 to 10.0.0.0/8 src 192.168.0.111 via 192.168.0.1
El programa ip
muestra la sintaxis de sus comandos cuando se
ejecuta con el argumento help. Por ejemplo, ip link
help imprime por pantalla :
Usage: ip link set DEVICE { up | down | arp { on | off } | dynamic { on | off } | multicast { on | off } | txqueuelen PACKETS | name NEWNAME | address LLADDR | broadcast LLADDR | mtu MTU } ip link show [ DEVICE ]
Véase también ip(8)
.
Para interfaces Wi-Fi se utiliza el programa iwconfig
, que viene
con el paquete wireless-tools
, además de ifconfig
o
ip
.
Véase iwconfig(8)
.
Si accede a Internet mediante un módem conectado a la línea telefónica doméstica la conexión se negocia usando el Protocolo Point-to-Point (PPP). Dichas conexiones se acceden como interfaces de red ppp0, ppp1, etc.
Una interfaz PPP es administrada por el demonio PPP pppd
que viene
con el paquete ppp
. De esta manera, para el usuario, configurar
una interfaz PPP equivale a configurar pppd
.
pppd
en forma manual
Para establecer un vínculo con una red, se necesita abrir un puerto de
comunicación (generalmente un puerto serie), los comandos deben enviarse a un
dispositivo de comunicación (generalmente un módem) se debe marcar un número
telefónico, se debe autenticar la identidad con un demonio PPP externo, se debe
crear una interfaz PPP y deben modificarse las tablas de ruta de modo que el
tráfico se pueda enviar por el enlace. pppd
puede hacer todo esto
y, en consecuencia, posee una lista muy extensa de opciones operativas. Estas
opciones se describen en pppd(8)
.
En un sistema Debian, las opciones globales se configuran en
/etc/ppp/options
. Las opciones específicas al usuario se
configuran en ~/.ppprc
. Las opciones que dependen del puerto de
comunicación utilizado son almacenadas en
/etc/ppp/options.nombre_puerto
. Por ejemplo,
supongamos que tiene dos módems— un módem interno Lucent LT accesible a
través de /dev/LT-modem y un módem externo accesible a través de /dev/ttyS0.
Cree los dos archivos de opciones siguientes.
# cat > /etc/ppp/options.LT-modem <<EOF 115200 init "/usr/sbin/chat -f /etc/chatscripts/setup-LT-modem" EOF # cat > /etc/ppp/options.ttyS0 <<EOF 115200 init "/usr/sbin/chat -f /etc/chatscripts/setup-ttyS0" EOF
Estos se refieren a los siguientes scripts chat. Primero,
/etc/chatscripts/setup-LT-modem
.
ABORT ERROR '' ATZ OK 'ATW2X2 S7=70 S11=55' OK AT
Segundo, /etc/chatscripts/setup-ttyS0
.
ABORT ERROR '' ATZ OK 'ATL1M1Q0V1W2X4&C1&D2 S6=4 S7=70 S11=55 S95=63 S109=1 +FCLASS=0' OK AT
Obviamente, los contenidos de estos archivos dependen de su hardware.
Las opciones también se pueden pasar como argumentos a pppd
.
En Debian pppd
generalmente se inicia usando el comando
pon
. Cuando se utiliza pon
, su primer argumento
define un archivo de opciones en /etc/ppp/peers/
que también es
leído por pppd
. [41] Es allí donde se configuran las opciones que son
específicas a un máquina distante particular, por ejemplo, a un determinado
Proveedor de Servicios de Internet (ISP).
Supongamos, por ejemplo, que alterna entre Amsterdam y Den Haag. En cada ciudad tiene acceso a dos ISP —Planet y KPN. Primero cree un archivo de opciones básico para cada ISP.
# cat > /etc/ppp/peers/KPN <<EOF remotename KPN noauth user kpn noipdefault ipparam KPN EOF # cat > /etc/ppp/peers/Planet <<EOF remotename Planet auth user usuario3579@planet.nl noipdefault mru 1000 mtu 1000 ipparam Planet EOF
Estos archivos fijan opciones que difieren entre los dos ISPs. Las opciones
comunes a ambos ISPs se pueden ubicar en /etc/ppp/options
o, según
corresponda, en uno de los archivos de opciones específico a la interfaz.
A continuación, cree los archivos de opciones para el ISP de cada ciudad. En nuestro ejemplo, la única diferencia entre conectarse a un ISP en un lugar y en otro es el script chat que se necesita (el script chat es diferente porque el número telefónico de acceso local es diferente)
# cat > /etc/ppp/peers/KPN-Amsterdam <<EOF connect "/usr/sbin/chat -v -f /etc/chatscripts/KPN-Amsterdam" file /etc/ppp/peers/KPN EOF # cat > /etc/ppp/peers/KPN-DenHaag <<EOF connect "/usr/sbin/chat -v -f /etc/chatscripts/KPN-DenHaag" file /etc/ppp/peers/KPN EOF # cat > /etc/ppp/peers/Planet-Amsterdam <<EOF connect "/usr/sbin/chat -v -f /etc/chatscripts/Planet-Amsterdam" file /etc/ppp/peers/Planet EOF # cat > /etc/ppp/peers/Planet-DenHaag <<EOF connect "/usr/sbin/chat -v -f /etc/chatscripts/Planet-DenHaag" file /etc/ppp/peers/Planet EOF
Cada una de las directivas file incluye uno de los archivos de
opciones que se mostraron anteriormente. La directiva connect
especifica el comando que pppd
utiliza para establecer la
conexión. Normalmente se utiliza para esto el programa chat
,
adaptando el script chat al ISP. Veamos los scripts chat para Den Haag. Los
pertenecientes a Amsterdam podrían ser similares (salvo el número telefónico) o
diferentes si el ISP ofrece allí su servicio a través de otra compañia.
# cat > /etc/chatscripts/KPN-DenHaag <<EOF ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT ERROR OK-AT-OK ATDT 0676012321 CONNECT \d\c EOF # cat > /etc/chatscripts/Planet-DenHaag <<EOF ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT ERROR OK-AT-OK ATDT 0676002505 CONNECT \d\c EOF
Para poderse conectar a estos ISPs se necesitan los nombres de cliente y
contraseñas que pppd
puede suministrar bajo demanda. Esta
información se almacena en /etc/ppp/pap-secrets
(si se utiliza el
protocolo PAP) o en /etc/ppp/chap-secrets
(si se utiliza el
protocolo CHAP). Aunque CHAP es más seguro, PAP aún sigue siendo ampliamente
utilizado. Puesto que estos archivos contienen información confidencial, ni el
grupo ni el resto de usuarios deberían tener permiso de lectura o escritura
sobre ellos. El formato de estos archivos se explica en pppd(8)
.
Un "secreto" (tercer campo) se localiza en el archivo buscando el
nombre del cliente (primer campo) y/o el nombre del servidor (segundo campo).
Al conectarse a un ISP uno, generalmente, no conoce el nombre del servidor y,
en cambio, suministra el nombre del cliente (usuario); esto fue hecho en las
líneas user de peers/KPN
y peers/Planet
de arriba.
# nombre del cliente nombre del servidor secreto kpn * kpn usuario3579@planet.nl * mi_mascota_preferida
pppd
usando pppconfig
Una manera rápida de configurar pppd
consiste en usar el programa
pppconfig
que viene con el paquete del mismo nombre.
pppconfig
configura los archivos como los anteriores luego de
formular preguntas al usuario a través de una interfaz de menús.
Si elije usar resolvconf
entonces asegúrese de elegir
"None" en la pantalla "Configure Nameservers".
wvdial
Un enfoque diferente para usar pppd
consiste en ejecutarlo desde
wvdial
que viene con el paquete wvdial
. En vez de
hacer que pppd
ejecute chat
para marcar y negociar la
conexión, wvdial
realiza el marcado, la negociación inicial y
luego inicia pppd
para que haga el resto. En la mayoría de los
casos dando sólamente el número telefónico, el nombre de usuario y la
contraseña, wvdial
logra establecer la conexión.
Un sistema Debian a veces necesita identificarse por su nombre. Para este propósito el kernel guarda el hostname (nombre de la máquina).
El script de inicio /etc/init.d/hostname.sh
establece el nombre de
la máquina durante el arranque (con el comando hostname
) usando el
nombre almacenado en /etc/hostname
. Este archivo
únicamente debería contener el nombre de la máquina y no un
nombre de dominio completo.
Para mostrar el nombre actual de la máquina ejecute hostname
sin
argumentos.
El mailname (nombre para el correo) de un máquina es el nombre
que los programas relacionados con el correo utilizan para identificar la
máquina. El archivo /etc/mailname
contiene este nombre seguido de
una nueva línea. Generalmente el nombre para el correo es uno de los nombres
de dominio completo de la máquina. Véase mailname(5)
.
Lo que ve el destinatorio de los mensajes de correo en la cabecera From: del mensaje enviado por su máquina Debian depende de cómo se encuentran configurados el Agente de Usuario de Correo (MUA) y el Agente de Transferencia de Correo (MTA). Supongamos que un usuario local quiensea envía un mensaje de una máquina con nombre para el correo mimáquina.dom. La cabecera From: del mensaje saliente será:
"From: quiensea@mimáquina.dom" si el MUA no tiene configurada la cabecera From:;
"From: bar@mimáquina.dom" si el MUA tiene configurado "From: bar";
"From: bar@falso.dom" si el MUA tiene configurado "From: bar@falso.dom".
Incluso cuando el MUA tiene una cabecera From: configurada el MTA puede añadir una cabecera "Sender:quiensea@herman.dom" para indicar su verdadero origen.
Por supuesto, cuando cualquier MTA realiza la reescritura de direcciones como se discutió en Direcciones de correo electrónico inexistentes (Exim), Sección 9.6.1.2 y Reescritura selectiva de direcciones del correo saliente (Exim), Sección 9.6.1.3, la dirección electrónica visualizada por el destinatario se puede modificar arbitrariamente.
Las máquinas son referenciadas por el nombre de dominio y por su dirección IP.
DNS es un sistema cliente-servidor en donde los sistemas de resolución de
nombres (llamados también traductores de direcciones) consultan a los
servidores de nombres con objeto de asociar los nombres de dominio con las
direcciones IP y otras propiedades de las máquinas. La biblioteca C GNU
resolver(3)
también puede buscar direcciones IP en archivos o
consultar a los Servicios de Información de Red (NIS).
Para ver la dirección IP asociada a una máquina local utilice el comando hostname --fqdn. Esto muestra el primer nombre de dominio completo que el sistema de resolución encuentra para el nombre de máquina local. [42]
La tarea de averiguar las direcciones IP asociadas con un nombre de dominio
particular es la función de un sistema de resolución (resolver). El más
utilizado es el conjunto de funciones de la biblioteca C GNU que llevan este
nombre (resolver(3)
). Otro es sistema de resolución FireDNS que
viene con el paquete libfiredns
.
La forma que el sistema de resolución de la biblioteca C resuelve los nombres
viene dada por la línea hosts del archivo de configuración
/etc/nsswitch.conf
. Esta línea lista los servicios que deberían
usarse para resolver un nombre: por ejemplo, dns,
files, nis, nisplus. [43] Véase
nsswitch.conf(5)
. Si se utiliza el servicio files,
el comportamiento del sistema de resolución también viene regido por el archivo
de configuración /etc/hosts
. Véase hosts(5)
.
Todos los archivos anteriores son estáticos y se pueden editar con su editor favorito.
Si se utiliza el servicio dns, el comportamiento del sistema de
resolución también viene dado por el archivo de configuración
/etc/resolv.conf
. Véase resolv.conf(5)
. Una de las
funciones importantes del archivo resolv.conf
consiste en listar
las direcciones IP de los servidores de nombres que se contactarán para
resolver el nombre. Esta lista a menudo depende del entorno de red que puede
cambiar de tanto en tanto mientras la máquina está funcionando. Programas
tales como pppd
y dhclient
son capaces de manipular
resolv.conf
para añadir y eliminar líneas, pero estas
características no siempre funcionan adecuadamente y entran en conflicto entre
sí. El paquete resolvconf
soluciona mejor el problema
proporcionando un marco estándar para la actualización de este archivo. Véase
Administrando la información del servidor de
nombres – resolvconf
, Sección 10.4.2.
resolvconf
El paquete resolvconf
proporciona un marco para la administración
dinámica de la información relativa a los servidores de nombres disponibles.
Soluciona el antiguo problema de mantener las listas dinámicas de los nombres
de los servidores para ser usadas por el sistema de resolución y los cachés
DNS. Resolvconf se posiciona como intermediario entre los programas que
controlan las interfaces de red y suministran información de los servidores de
nombre, y las aplicaciones que necesitan de dicha información.
resolvconf
está diseñado para funcionar sin que sea necesaria
ninguna configuración manual. No obstante, el paquete es bastante nuevo y
puede requerir alguna intervención para lograr que funcione adecuadamente.
Esto será realmente así si alguna vez personalizó paquetes para que actualicen
al /etc/resolv.conf
: necesitará deshabilitar estas
personalizaciones.
Véase /usr/share/doc/resolvconf/README.gz
para más detalles.
dnsmasq
Salvo que su servidor de nombres sea el servidor oficial de un dominio resulta
mejor utilizar un servidor de nombres con caché local como dnsmasq
que funciona bien con resolvconf
.
bind
Si necesita proveer un servicio de nombres oficial para un dominio entonces
necesita de un servidor de nombres completo como named
que viene
con el paquete bind9
o con bind
. Para nuevas
instalaciones se recomienda bind9
.
Para instalar bind9
, instale estos paquetes básicos:
bind9
; dnsutils
. Puede que también quiera instalar
estos paquetes de utilidades: bind9-host
; dns-browse
;
dnscvsutil
; nslint
. Este paquete de documentación:
bind9-doc
. y estos paquetes de desarrollo:
libbind-dev
; libnet-dns-perl
. Si configura
interfaces usando DHCP entonces puede encontrar útil el siguiente paquete:
dhcp-dns
.
Instale bind9
o vuelva a configurarlo usando
dpkg-reconfigure
para realizar la configuración básica. La
configuración consiste en editar named.conf
. En Debian este
archivo se encuentra en /etc/bind/
y se utiliza principalmente
para definir las zonas DNS básicas; incluye otros dos archivos:
named.conf.local
, utilizado para definir las zonas locales y
named.conf.options
, utilizado para configurar opciones (este
último es procesado por resolvconf
para producir
/var/run/bind/named.options
que es el mismo que el original
excepto que la especificación forwarders es una lista de los
servidores de nombre no locales actualmente disponibles. Para hacer uso de
ello, cambie la línea include del named.conf
de modo
que incluya /var/run/bind/named.options
. Véase Administrando la información del servidor de nombres
– resolvconf
, Sección 10.4.2.)
Los archivos de base de datos sin una ruta completa mencionados en
named.conf*
se almacenarán en /var/cache/bind/
. Este
es el lugar correcto para almacenar archivos generados por named
:
por ejemplo, los archivos de bases de datos para las zonas cuyo demonio es
secundario. Los archivos de base de datos estáticos de /etc/bind/
están y deben referenciarse en named.conf
mediante sus rutas
completas. Véase /usr/share/doc/bind9/README.Debian.gz
para más detalles.
La configuración de las interfaces de red de bajo nivel se puede automatizar mediante el Protocolo de Configuración Dinámica de Hosts (DHCP). De esta manera, su cortafuegos, router o su ISP de banda ancha puede suministrar direcciones IP y otros parámetros.
Para que esto funcione debe instalar uno de los siguientes paquetes:
dhcp3-client
(versión 3, Internet Software Consortium)
dhcpcd
(Yoichi Hariguchi y Sergei Viznyuk)
pump
(Red Hat)
pump
es sencillo y ampliamente utilizado.
dhcp3-client
es complejo pero más configurable. [44]
A fin de facilitar la configuración de la red, Debian proporciona una
herramienta estándar de configuración de red de alto nivel que consiste en los
programas ifup
, ifdown
y el archivo
/etc/network/interfaces
. [45] Si elige utilizar ifupdown
para realizar la
configuración de su red, entonces no debería usar los comandos
de bajo nivel. [46]
Ifupdown
se programó bajo la suposición que sólo iba a ser
utilizado para configurar y desconfigurar las interfaces de red.
Para actualizar la configuración de la interfaz haga lo siguiente:
# ifdown eth0 # editor /etc/network/interfaces # modifique a su antojo # ifup eth0
Para más información véase interfaces(5)
, /usr/share/doc/ifupdown/examples/network-interfaces.gz
y ifup(8)
.
Supongamos que desea configurar una interfaz Ethernet que tiene una dirección
IP fija 192.168.0.123. Esta dirección comienza con
192.168.0 por lo tanto debe estar en una LAN. Supongamos además
que 192.168.0.1 es la dirección de la puerta de enlace de la LAN a
Internet. Edite /etc/network/interfaces
de modo que incluya un
fragmento como el siguiente:
iface eth0 inet static address 192.168.0.123 netmask 255.255.255.0 gateway 192.168.0.1
Si tiene instalado el paquete resolvconf
puede añadir líneas para
especificar la información relativa al DNS. Por ejemplo:
iface eth0 inet static address 192.168.0.123 netmask 255.255.255.0 gateway 192.168.0.1 dns-search nicedomain.org dns-nameservers 195.238.2.21 195.238.2.22
Luego que se activa la interfaz, los argumentos de las opciones
dns-search y dns-nameservers quedan disponibles para
resolvconf
para su inclusión en resolv.conf
. El
argumento lindodominio.org de la opción dns-search
corresponde al argumento de la opción search en
resolv.conf(5)
. Los argumentos 195.238.2.21 y
195.238.2.22 de la opción dns-nameservers corresponde
a los argumentos de las opciones nameserver en
resolv.conf(5)
. Otras opciones reconocidas son
dns-domain y dns-sortlist. Véase Administrando la información del servidor de nombres
– resolvconf
, Sección 10.4.2.
Para configurar una interfaz usando DHCP edite el
/etc/network/interfaces
de manera que incluya un fragmento como el
siguiente :
iface eth0 inet dhcp
Para que esto funcione debe tener instalado uno de los clientes DHCP mencionados en Configurando las interfaces de red usando DHCP, Sección 10.5.
El paquete wireless-tools
incluye el script
/etc/network/if-pre-up.d/wireless-tools
que permite configurar
hardware Wi-Fi (802.11a/b/g) antes que se active la interfaz. La configuración
se realiza usando el programa iwconfig
; véase
iwconfig(8)
. Para cada parámetro posible del comando
iwconfig
puede incluir una opción en
/etc/network/interfaces
con un nombre como el del parámeto con el
prefijo "wireless-". Por ejemplo, para fijar el ESSID de
eth0 en miessid y la clave de cifrado en
123456789e antes de activar eth0 usando DHCP, edite
el /etc/network/interfaces
de modo que incluya un fragmento como
el siguiente :
iface eth0 inet dhcp wireless-essid miessid wireless-key 123456789e
Obsérvese que no debería utilizar este método para configurar el ESSID y la
clave si está ejecutando waproamd
para esta interfaz. En el
momento que se ejecuta ifup
, waproamd
ya tiene
configurados ESSID y la clave. Véase Activando
la configuración de la red – waproamd
, Sección 10.9.4.
Los programas ifup
e ifdown
utilizan pon
y poff
para añadir y eliminar interfaces PPP, por lo tanto,
primero lea Configurando una interfaz PPP, Sección
10.2.4.
Supongamos que ha configurado PPP para que funcione con mi_isp.
Edite /etc/network/interfaces
de modo que incluya una sección como
la siguiente :
iface ppp0 inet ppp provider mi_isp
con este fragmento, ifup ppp0
hace
pon mi_isp
Desafortunadamente no es posible hoy por hoy proporcionar otras opciones a
pppd
en un sección ppp de
/etc/network/interfaces
. [47]
Actualmente no es posible usar ifupdown
para realizar una
configuración auxiliar de las interfaces PPP. Como pon
desaparece
antes que pppd
haya terminado de establecer la conexión,
ifup
ejecuta los scripts up antes que la interfaz PPP
esté lista para usar. Hasta que se solucione este fallo [48] sigue siendo necesario
realizar una configuración posterior en /etc/ppp/ip-up
o
/etc/ppp/ip-up.d/
.
Muchos Proveedores de Servicios de Internet (ISPs) de banda ancha utilizan PPP
para negociar las conexiones incluso cuando las máquinas de los clientes están
conectados mediante Ethernet y/o redes ATM. Esto se logra mediante PPP sobre
Ethernet (PPPoE) que es una técnica para el encapsulamiento del flujo PPP
dentro de las tramas Ethernet. Supongamos que su ISP se llama
mi_isp. Primero configure PPP y PPPoE para
mi_isp. La manera más fácil de hacerlo consiste en
instalar el paquete pppoeconf
y ejecutar pppoeconf
desde la consola. A continuación, edite /etc/network/interfaces
de modo que incluya un fragmento como el siguiente:
iface eth0 inet ppp provider mi_isp
A veces surgen problemas con PPPoE relativos a la Unidad de Transmisión Máxima
(Maximum Transmit Unit o MTU) en líneas DSL (Digital Subscriber Line). Véase
DSL-HOWTO
para
más detalles.
Obsérvese que si su módem posee un router entonces el módem/router maneja por sí mismo la conexión PPPoE y aparece del lado de la LAN como una simple puerta de enlace Ethernet a Internet.
Supongamos que eth0
está conectada a Internet con un dirección IP
configurada con DHCP y eth1
está conectada a la LAN con una
dirección IP estática 192.168.1.1. Edite
/etc/network/interfaces
de modo que incluya un fragmento similar
al siguiente:
iface eth0 inet dhcp iface eth1 inet static address 192.168.1.1 netmask 255.255.255.0
Si activa NAT en esta máquina como se describe en Configurando una puerta de enlace, Sección 10.12 puede compartir la conexión de Internet con todas las máquinas de la LAN.
Usando interfaces virtuales puede configurar una única tarjeta Ethernet para
que sea la interfaz de distintas subredes IP. Por ejemplo, supongamos que su
máquina se encuentra en una red LAN 192.168.0.x/24. Desea conectar la máquina
a Internet usando una dirección IP pública proporcionada con DHCP usando su
tarjeta Ethernet existente. Edite /etc/network/interfaces
de modo
que incluya un fragmento similar al siguiente:
iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 iface eth0:0 inet dhcp
La interfaz eth0:0 es una interfaz virtual. Al activarse también lo hará su padre eth0.
En lo que sigue sería importante que el lector comprenda la diferencia entre una interfaz física y una interfaz lógica. [49] Una interfaz física es lo que hemos estado llamando "interfaz", lo que hemos designado con eth0, ppp1, etc. Una interfaz lógica es un conjunto de valores que pueden asignarse a los parámetros variables de una interfaz física. Si al leer le resulta confuso, reemplace la expresión "configurada como interfaz lógica X" por la expresión "configurada con el perfil de la interfaz X".
Las definiciones iface en /etc/network/interfaces
son, en realidad, definiciones de interfaces lógicas no de interfaces físicas.
[50] Si nunca más desea volver
a configurar sus interfaces entonces puede ignorar este hecho ya que la
interfaz física X será configurada, por defecto, como interfaz
lógica X.
No obstante, supongamos que su máquina es un equipo portátil que transporta de su casa a su trabajo. Cuando conecta la máquina a una red corporativa o a su LAN hogareña, necesita configurar eth0 adecuadamente.
Primero defina dos interfaces lógicas hogar y trabajo (en vez de eth0 como hicimos antes) que describen cómo debería configurarse la interfaz para la red hogareña y la del trabajo respectivamente.
iface hogar inet static address 192.168.0.123 netmask 255.255.255.0 gateway 192.168.0.1 iface trabajo inet static address 81.201.3.123 netmask 255.255.0.0 gateway 81.201.1.1
De esta manera, la interfaz física eth0 se puede activar para la red hogareña con la configuración apropiada especificándola en la línea de comandos:
# ifup eth0=hogar
Para reconfigurar eth0 para la red del trabajo, ejecute los comandos:
# ifdown eth0 # ifup eth0=trabajo
Obsérvese que con el archivo interfaces
escrito así ya no
resultará posible activar eth0 haciendo solamente ifup
eth0. La razón es que ifup
utiliza el nombre de la
interfaz física como el nombre de la interfaz lógica eth0
predeterminada y, en realidad, en nuestro ejemplo no hay una interfaz lógica
definida.
Cuando se ejecuta ifup
, los nombres de las interfaces lógicas se
pueden transformar en los nombres de otras interfaces lógicas. La manera en
que se transforman los nombres depende de las circunstancias. Por ejemplo, se
puede configurar ifup
para activar una determinada interfaz física
con la interfaz lógica adecuada entre un conjunto de alternativas predefinidas.
La transformación del nombre de la interfaz lógica ocurre en los siguientes casos :
Si en la línea de comandos de ifup
no se da el nombre de la
interfaz lógica entonces como nombre de interfaz lógica inicial se utiliza el
nombre de la interfaz física.
Si el nombre de la interfaz lógica coincide con el patrón de una sección mapping entonces se aplica esta transformación para generar un nuevo nombre de interfaz lógica. Esto se realiza recursivamente hasta que no haya más coincidencias con el patrón.
Si el nombre de la última interfaz lógica corresponde a la definición de una
interfaz lógica de /etc/network/interfaces
entonces la interfaz
física es activada como esta interfaz lógica. Caso contrario ifup
muesta el mensaje "Ignoring unknown interface" y se detiene.
La sintaxis de una sección mapping es la siguiente:
mapping patrón script nombre_script [map script]
El script llamado en la sección mapping es ejecutado con el nombre de la interfaz física como argumento y con el contenido de todas las líneas "map" de la sección. Antes de finalizar, el script muestra el resulta de la transformación por la salida estándar.
Por ejemplo, la siguiente sección mapping hará que
ifup
active la interfaz eth0 como interfaz lógica
hogar.
mapping eth0 script /usr/local/sbin/echo-hogar
donde /usr/local/sbin/echo-hogar
es :
#!/bin/sh echo hogar
Como la transformación se realiza mediante un script, resulta posible
seleccionar la interfaz lógica basándose en algun tipo de prueba. Veamos un
ejemplo. Supongamos que posee dos tarjetas de red diferentes: una para el
hogar y otra para el trabajo. El directorio
/usr/share/doc/ifupdown/examples/
contiene un script de
transformación que se puede usar para seleccionar una interfaz lógica basándose
en la dirección MAC (Media Access Controller). Primero instale el script en un
directorio apropiado.
# install -m770 /usr/share/doc/ifupdown/examples/get-mac-address.sh \ /usr/local/sbin/
A continuación añada una sección como la siguiente al
/etc/network/interfaces
:
mapping eth0 script /usr/local/sbin/get-mac-address.sh map 02:23:45:3C:45:3C hogar map 00:A3:03:63:26:93 trabajo
Programas de transformación más sofisticados se describen en guessnet, Sección 10.8.1 y laptop-net, Sección 10.8.2.
Instale guessnet
y luego añada una sección como la siguiente al
/etc/network/interfaces
:
mapping eth0 script guessnet-ifupdown map hogar map trabajo
Ahora al hacer ifup eth0
, guessnet
verificará si
eth0 tiene que activarse como hogar o
trabajo. Para ello utiliza la información almacenada en las
definiciones de las interfaces lógicas.
El paquete laptop-net
toma un enfoque diferente para la
reconfiguración automática de la red. Laptop-net no utiliza las interfaces
lógicas de ifupdown
sino sus propios "esquemas" de
configuración y "perfiles" de sistemas. No obstante, laptop-net
sigue usando ifupdown
para configurar las interfaces físicas.
Para más información consulte la excelente documentación de
laptop-net-doc
.
Hemos visto como se reconfiguran las interfaces. La reconfiguración necesita realizarse en el momento apropiado.
Tradicionalmente la red era configurada durante la secuencia de arranque
mediante el script init /etc/rcS.d/S40networking
y raramente se
volvía a configurar. Los servicios que dependían de la red eran lanzados luego
durante la secuencia de arranque. Al apagar o reiniciar, los scripts init eran
ejecutados en el orden inverso.
Sin embargo, actualmente existe una tendencia en GNU y Linux al soporte de
hardware y entornos que cambian dinámicamente. El primer soporte se añadió
para la inserción en caliente de tarjetas PCMCIA ; más recientemente ha sido
incorporado el mecanismo hotplug para que muchos más periféricos
se puedan enchufar y desenchufar mientras la máquina se encuentra funcionando.
Esto incluye el hardware de red. Observe que los servicios que dependen del
hardware que se conecta en caliente sólo deben iniciarse luego que el hardware
haya sido insertado y deben detenerse cuando se hayan eliminado. Esto
significa que dichos servicios deben liberarse del control del sistema init
System V y ponerlos, en cambio, bajo el control de ifupdown
.
Por ejemplo, supongamos que el servicio loquesea controlado por el
script init /etc/init.d/loquesea
depende dinámicamente de la
interfaz de red reconfigurada eth0.
Primero elimine loquesea del control del sistema init. Si está
ultilizando el sistema init sysv-rc
entonces haga lo siguiente.
[51]
# rm /etc/rc?.d/S??loquesea
Luego ponga loquesea bajo el control de ifupdown
añadiendo las opciones up y down en la sección
eth0 de /etc/network/interfaces
que contiene las
llamadas al script init loquesea:
iface eth0 inet dhcp up /etc/init.d/loquesea start down /etc/init.d/loquesea stop
Al arrancar, el script de init /etc/rcS.d/S40networking
ejecuta el
comando ifup -a
. Esto activa todas las interfaces físicas que
aparecen en las secciones auto de
/etc/network/interfaces
.
Actualmente, a menudo resulta mejor manejar la configuración de la red usando
métodos dinámicos. Una vez configurados los mecanismos para el soporte de
hardware que cambia en forma dinámica, resulta más sencillo tratar el hardware
estático como si fuera dinámico. El arranque se puede considerar como un
simple evento hotplug. (Véase Activando la
configuración de la red – hotplug
, Sección 10.9.2.)
No obstante, en casi todos los casos uno desea por lo menos que la interfaz de
retorno (loopback) lo se active en el arranque. Por lo tanto,
asegúrese que /etc/network/interfaces
incluya las siguientes
líneas:
auto lo iface lo inet loopback
Puede listar los nombres de interfaces físicas adicionales en las secciones
auto si desea que también se activen durante el arranque.
Nunca incluya las interfaces PCMCIA en las secciones
auto. cardmgr
se inicia durante el arranque luego de
/etc/rcS.d/S40networking
.
hotplug
Para el soporte del arranque en caliente instale el paquete
hotplug
.
El hardware de red se puede enchufar en caliente ya sea durante el arranque,
tras haber insertado la tarjeta en la máquina (una tarjeta PCMCIA, por
ejemplo), o luego que una utilidad como discover
se haya ejecutado
y cargado los módulos necesarios. [52]
Cuando el kernel detecta nuevo hardware inicializa el controlador para el
hardware y luego ejecuta el programa hotplug
para configurarlo.
Si más tarde se elimina el hardware, ejecuta nuevamente hotplug
con parámetros diferentes. En Debian, cuando se llama a hotplug
éste ejecuta los scripts de /etc/hotplug/
y
/etc/hotplug.d/
. Véase hotplug(8)
para más detalles.
El hardware de red recientemente conectado es configurado por el
/etc/hotplug/net.agent
. [53] Supongamos que su tarjeta de red PCMCIA ha sido conectada
lo que implica que la interfaz eth0 esta lista para usar.
/etc/hotplug/net.agent
hace lo siguiente:
ifup eth0=hotplug
A menos que haya añadido una interfaz lógica llamada hotplug en
/etc/network/interfaces
, este comando no hará nada. Para que este
comando configure eth0, añada las siguientes líneas al
/etc/network/interfaces
:
mapping hotplug script echo
Como se explicó en Reconfiguración de la red, Sección 10.7 esto transformará el comando mostrado arriba de modo que sea equivalente al siguiente:
ifup eth0=eth0
(No incluya una sección de este tipo si también posee una
sección ifplugd para la misma interfaz como se describió en Activando la configuración de la red –
ifplugd
, Sección 10.9.3.)
Si sólo desea que eth0 se active en caliente y no otras interfaces
utilice grep
en vez de echo
como se muestra a
continuación :
mapping hotplug script grep map eth0
Véase Reconfiguración mágica de la red, Sección
10.8 y /usr/share/doc/hotplug/README.Debian
para más trucos.
ifplugd
ifplugd
activa o desactiva una interfaz según si el hardware
subyacente está o no conectado a la red. El programa puede detectar un cable
conectado a una interfaz Ethernet o un punto de acceso asociado a una interfaz
Wi-Fi. Cuando ifplugd
ve que el estado del enlace ha cambiado
ejecuta un script que por defecto ejecuta ifup
o
ifdown
para la interfaz.
ifplugd
funciona correctamente en combinación con
hotplug
. Al insertar una tarjeta, lo que significa que la
interfaz está lista para usar, /etc/hotplug.d/net/ifplugd.hotplug
inicia una instancia de ifplugd
para dicha interfaz. Cuando
ifplugd
detecta que la tarjeta es conectada a una red, ejecuta
ifup
para esta interfaz.
Véase el archivo README del paquete waproamd
para más información.
waproamd
Para asociar una tarjeta Wi-Fi con un punto de acceso puede que necesite
programarla con una clave de cifrado WEP adecuada. Si está utilizando
ifplugd
para controlar ifup
como se explicó en Activando la configuración de la red –
ifplugd
, Sección 10.9.3 entonces evidentemente no podrá
configurar la clave de cifrado usando ifup
ya que éste sólo es
llamado luego que la tarjeta ha sido asociada. Una solución posible consiste
en programar todas las claves necesarias en la memoria no volátil de la tarjeta
Wi-Fi. Pero si deambula por diversas redes su tarjeta Wi-Fi puede no ser capaz
de almacenar suficientes claves.
Otra solución consiste en usar waproamd
que configura la clave de
cifrado WEP según los puntos de acceso disponibles que se descubren mediante
escaneo.
waproamd
funciona perfectamente con hotplug
. Al
insertar una tarjeta, lo que implica una interfaz lista para usar,
/etc/hotplug.d/net/waproamd.hotplug
inicia una instancia de
waproamd
para dicha interfaz.
Para más información, véase el archivo README del paquete
waproamd
.
Si utiliza tarjetas de red PCMCIA de 16 bits entonces debe añadir
CARDMGR_OPTS="-f" al /etc/default/pcmcia
.
Esto enlentece un poco el proceso de inicialización pero evita una situación de
concurrencia (condición de carrera) ejecutando cardmgr
en segundo
plano hasta que hayan sido configuradas todas las tarjetas PCMCIA de 16 bits.
Aunque por defecto /etc/init.d/pcmcia
se ejecuta desde
/etc/rc2.d/S20pcmcia
puede ubicarlo antes, por ejemplo, en
/etc/rc2.d/S12pcmcia
para aseugrarse que el subsistema PCMCIA se
inicialice antes de arrancar los servicios de red en S20.
Existen diversas maneras para configurar las interfaces de red PCMCIA.
Para tarjetas de red PCMCIA PCI de 32 bits (CardBus):
hotplug
/ ifupdown
Para tarjetas de red PCMCIA ISA de 16 bits:
hotplug
/ ifupdown
con
/etc/pcmcia/network
desactivado (recomendado), o
pcmcia-cs
/ ifupdown
con
/etc/pcmcia/network
por defecto (obsoleto), o
pcmcia-cs
personalizado para habilitar características de
/etc/pcmcia/network
(obsoleto)
La manera recomendada para tarjetas de 16 bits aprovecha el hecho que el
subsistema hotplug de Linux 2.4 ahora soporta PCMCIA. Simplemente
siga las instrucciones de Activando la
configuración de la red – hotplug
, Sección 10.9.2. [54] Sin embargo, nótese que afin
de evitar que el script /etc/pcmcia/network
de
cardmgr
no interfiera con hotplug
debe añadir la
línea:
exit 0
al comienzo de /etc/pcmcia/network
para desactivar su
comportamiento predeterminado.
Obsérvese que no hay nada de malo ejecutar cardmgr
. Simplemente,
no deseamos que llame a los programas de configuración de red.
Para que cardmgr
funcione correctamente puede que necesite editar
/etc/pcmcia/config.opts
a fin de configurar los recursos asignados
a las tarjetas PCMCIA de 16 bits. Véase PCMCIA, Sección 7.2.1 y el
Linux PCMCIA
HOWTO
para más información.
La configuración típica de los servicios de red en un entorno de escritorio o servidor hogareño incluye:
El superservidor de Internet y envoltorio de demonios TCP/IP, véase Control de accesos a los demonios, Sección 9.2.5.
/etc/inetd.conf
ssh
: shell segura OpenSSH, véase SSH, Sección 9.5.
/etc/ssh/ssh_config
/etc/ssh/sshd_config
exim
: agente de transporte de correo, véase Nombre para el correo, Sección 10.3.2 y Agente de transporte de correo (MTAs), Sección
9.6.1.
/etc/exim/exim.conf
/etc/mailname
/etc/aliases
/etc/email-addresses
fetchmail
: demonio para descargar el correo de una cuenta POP3,
véase Utilidad de correo (Fetchmail),
Sección 9.6.2.
/etc/fetchmailrc
procmail
: programa para filtrar y distribuir el correo local,
véase Utilidad de correo (Procmail),
Sección 9.6.3.
~/.procmailrc
Nombre de la máquina y DNS (proxy, caché, ...), véase Nombre de la máquina, Sección 10.3.1 y Servicio de Nombres de Dominio (DNS), Sección 10.4.
/etc/host.conf
/etc/hostname
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/resolv.conf
/etc/bind/named.conf
(editar)
/etc/bind/db.lan
(añadir para los equipos de una LAN)
/etc/bind/db.192.168.0
(añadir para el DNS inverso de
una LAN)
DHCP, véase Configurando las interfaces de red usando DHCP, Sección 10.5.
/etc/dhcp3/dhclient.conf
(DHCP del lado del cliente)
/etc/default/dhcp3-server
(DHCP del lado del servidor)
/etc/dhcp3/dhcpd.conf
(DHCP del lado del servidor)
cvs
: sistema de versiones concurrentes, véase Sistema de versiones concurrentes (CVS), Sección
12.1.
/etc/cvs-cron.conf
/etc/cvs-pserver.conf
nfs-kernel-server
: sistema de archivos de red, véase Configuración NFS, Sección 3.4. (para
sistemas tipo UNIX)
/etc/exports
samba
: archivos de red y compartición de impresoras en redes
Windows, véase Configuración de Samba,
Sección 3.5 y Samba, Sección
8.6.38.
/etc/samba/smb.conf
Demonio para el sistema de impresión, véase Configuración de la impresora, Sección 3.6.
/etc/printcap
(para lpr)
apache
y apache2
: servidor web.
/etc/apache/*
/etc/apache2/*
squid
: servidor proxy-caché.
/etc/squid/*
Si tropieza con problemas verifique la salida de los siguientes comandos para obtener una primera idea :
# ifconfig # cat /proc/pci # cat /proc/interrupts # dmesg | more
También véase las siguientes secciones Probando la red, Sección 8.6.29.
Si tiene problemas con ciertos sitios web, véase Problemas extraños al acceder a ciertos sitios de Internet, Sección 3.7.5.
Una máquina Debian puede ser una puerta de enlace multipropósito que haga la Traducción de las Direcciones de Red (NAT, también conocida como enmascaramiento), la transferencia de correo, DHCP, caché DNS, caché HTTP, servidor CVS, servidor NFS y servidor Samba. Véase Máquinas IP para usar en una LAN, Sección 3.1.9 para un ejemplo de esta configuración.
El proyecto netfilter/iptables es un sistema de firewall para Linux 2.4 y
posteriores. Véase Netfilter
donde se explican
diversos temas sobre la configuración de redes.
Netfilter procesa los paquetes mediante 5 cadenas incorporadas: PREROUTING, INPUT, FORWARD, OUTPUT, y POSTROUTING.
decisión de interfaz enrutado interfaz IN ------> PRE ---> ------> FORWARD -----> ----> POST -----> OUT ROUTING \ filter / ROUTING DNAT | tracking ^ SNAT REDIRECT | seguimiento | MASQUERADE v | INPUT OUTPUT | filtro ^ filtro,DNAT v | \--> Proceso Local --/ programas del espacio de usuario
Los paquetes son procesados por cada cadena según la siguiente tabla.
filter (filtro de paquetes, predeterminado)
INPUT (para los paquetes que llegan a la máquina)
FORWARD (para los paquetes encaminados por la máquina)
OUTPUT (para los paquetes generados localmente).
nat (Network Address Translation o Traducción de Direcciones de Red)
PREROUTING (para modificar los paquetes tan pronto lleguen)
OUTPUT (para modificar los paquetes generados localmente antes de encaminarlos)
POSTROUTING (para modificar los paquetes a punto de salir)
manipulación (manipulación de direcciones de red, efectiva a partir de la versión 2.4.18)
las 5 cadenas incluidas.
Las reglas de firewall poseen diversos objetivos:
los 4 objetivos básicos:
ACCEPT significa dejar pasar el paquete.
DROP significa descartar el paquete.
QUEUE significa pasar al paquete al espacio de usuario (si es soportado por el kernel).
RETURN significa detener el paso en la cadena y continuar con la regla siguiente de la cadena anterior.
otros objetivos:
LOG activa los registros del kernel.
REJECT reenvía un paquete con error y descarta el paquete.
SNAT modifica la dirección de origen del paquete y se usa únicamente en la cadena POSTROUTING (tabla nat únicamente)
--to-source ipaddr[-ipaddr][:port-port]
MASQUERADE es lo mismo que SNAT pero para direcciones IP asignadas en forma dinámica (conexión telefónica). (tabla nat únicamente)
--to-ports port[-port]
DNAT modifica la dirección de destino del paquete y se usa en las cadenas PREROUTING, OUTPUT y las cadenas definidas por el usuario que se llaman únicamente desde dichas cadenas (tabla nat únicamente)
--to-destination ipaddr[-ipaddr][:port-port]
REDIRECT modifica la dirección IP de destino para enviar el paquete a la propia máquina.
--to-ports port[-port]
Los comandos básicos de iptables
son:
iptables -N cadena # crear una cadena iptables -A cadena \ # añadir regla a la cadena -t tabla \ # usar tabla (filtro, nat, mangle) -p protocolo \ # tcp, udp, icmp, or all, -s dirección-fuente[/mask] \ --sport puerto[:port] \ # puerto de origen si -p es tcp o udp -d dirección-destino[/mask] \ --dport puerto[:port] \ # puerto de destino si -p es tcp o udp -j objetivo \ # qué hacer si coincide -i nombre-interfaz-entrada \# para INPUT, FORWARD, PREROUTING -o nombre-interfaz-salida # para FORWARD, OUTPUT, POSTROUTING
Las máquinas de una LAN pueden acceder a los recursos de Internet a través de una puerta de enlace que utiliza enmascaramiento IP (NAT) compartiendo una única dirección IP accesible desde el exterior
# apt-get install ipmasq
Aplique las reglas de ejemplo para mejorar la protección ipmasq
.
Consulte /usr/share/doc/ipmasq/examples/stronger/README
. Para el
paquete kernel-image-2.4 de Debian asegúrese de cargar los módulos adecuados.
Véase Funciones de Red, Sección
7.2.3 para efectuar la correspondiente configuración.
Para el paquete kernel-image-2.2 de Debian, edite de la siguiente manera
Z92timeouts.rul
en /etc/masq/rules
para asegurar una
conexión más duradera con sitios distantes (conveniente para mensajes de correo
grandes, etc.):
# tcp, tcp-fin, udp # 2hr, 10 seg, 160 seg - predeterminado # 1 día, 10 min, 10 min - modificación $IPCHAINS -M -S 86400 600 600
Asimismo, si se accede a la red mediante una tarjeta de red PCMCIA,
ipmasq
necesita iniciarce desde
/etc/pcmcia/network.opts
. (consulte: /usr/share/doc/ipmasq/ipmasq.txt.gz
)
o desde /etc/network/interfaces
(consulte: Configuración de la red y PCMCIA, Sección 10.9.5 y
Activando la reconfiguración de la red, Sección
10.9).
Supongamos que tiene una PC portátil configurada para otro entorno de red y que desea usar su programa de correo sin tener que reconfigurarla.
Añadiendo las siguientes reglas mediante el comando iptables
en la
puerta de enlace, la conexión SMTP será redirigida hacia ella.
# iptables -t nat -A PREROUTING -s 192.168.1.0/24 -j REDIRECT \ -p tcp --dport smtp --to-port 25 # smtp=25, INPUT se encuentra abierta
Para el redireccionamiento de un conjunto de reglas más complejo considere
instalar el paquete ipmasq
y agregue
en el directorio
M30redirect.def
/etc/ipmasq/rules/
.
[FIXME] Política de encaminamiento (por Phil Brutsche pbrutsch@tux.creighton.edu
):
Ver el iproute manual
para más
detalles. El control de tráfico (tc) puede ser también interesante.
Entorno:
eth0: 192.168.1.2/24; puerta de enlace 192.168.1.1 eth1: 10.0.0.2/24; puerta de enlace 10.0.0.1 Sin enmascaramiento en esta máquina.
Algo de magia:
ip rule add from 192.168.1.2 lookup 1
ip rule add from 10.0.0.2 lookup 2
ip route add to default via 10.0.0.1 metric 0
ip route add to default via 192.168.1.1 metric 1
ip route add table 1 to 192.168.1.0/24 via eth0
ip route add table 1 to 10.0.0.2/24 via eth1
ip route add table 1 to default via 192.168.1.1
ip route add table 2 to 192.168.1.0/24 via eth0
ip route add table 2 to 10.0.0.2/24 via eth1
ip route add table 2 to default via 10.0.0.2
[FIXME] Nunca hice esto. ¿Cómo configurar una conexión telefónica como respaldo de una conexión rápida y automática? Por favor, envíenme un parche :)
[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ siguiente ]
Guía de referencia Debian
CVS, jue ene 18 11:52:44 UTC 2007osamu#at#debian.org
wecharri#at#infovia.com.ar