Como la mayoría de las cosas interesantes que usted puede hacer
con una computadora, como conectarla a una red involucra tener algo de hardware
especial, usted necesitará una NIC ( Tarjeta de Interfaz de Red) para
conectarla a una red LAN, quizás un módem para conectarse a
un proveedor de Internet, o quizás ambos (o alguno , o ninguno).
Para los propósitos de configuración, nosotros podemos dividir
dicho hardware en PCMCIA (para las computadoras portátil) y no-PCMCIA.
La razón para esta división algo desequilibrada es que actualmente
el hardware PCMCIA no es soportado por la distribución Kernel, pero
es posible lograrlo con un paquete separado que incluye los drivers necesarios
(como los módulos Kernel) y algún software para la configuración
y manejo de dispositivos de PCMCIA. Todo lo demás se maneja con la
distribución Kernel normal.
ifconfig
Ahora que su Kernel puede comunicarse con su hardware de red ,lo que se necesita
lograr es que el software le diga al Kernel como pasar información
a través de él y viceversa. Nosotros necesitamos configurar
una interfáz usando ifconfig(8).
Es más fácil aprender sobre ifconfig a través de un
ejemplo; usted puede echar una mirada a su archivo rc.inet1 (cubierto en
la seccion llamada rc.inet1) para ver como se hace: el caso mas común
y mas sencillo se parece a esto:
# ifconfig eth0 192.168.1.10 broadcast 192.168.1.255
netmask 255.255.255.0
Esta línea plantea el eth0 (la primera interfaz de ethenet ; usa el
anillo tr0, los ppp usan el ppp0, etc.). con el IP 192.168.1.10, una dirección
de trasmisión de 192.168.1.255(incluye toda la subred 192.168.1) y
la mascara de red (netmask) de 255.255.255.0 (indicando que las tres primeras
partes de la dirección de IP(192.168.1) se refieren a la red, mientras
que la ultima parte,(.10), se refiere al host). Al menos que usted este haciendo
algo extraño, puede usar siempre esta dirección de trasmisión
que es las primeras tres partes de su IP seguidas por 255. Usted puede usar
casi siempre como netmask 255.255.255.0. También puede usar el comando
ifconfig simplemente para ver lo que esta allí. Ejecútelo sin
ninguna opción ni parámetro para ver la lista de todas sus
interfaces de red actuales y sus configuraciones.
route
Para saber donde enviar los datos, el Kernel mantiene una tabla de rutas
(routing table). No vamos a hacer mucho detalle sobre el aquí, pero
usted puede ver la tabla de rutas ejecutando /sbin/route(8). route -n le
dará la lista de direcciones IP en lugar de los nombre; esto es util
si esta teniendo problemas comunicándose con el nombre del servidor
o si usted simplemente no está interesado en el mundo ilusorio de
los nombres de dominio. Afortunadamente si usted tiene una instalación
de red simple (como la mayoría de las personas hace).los Kernels 2.4.x
automáticamente crearán las entradas en la tabla de asignación
de rutas.
netconfig
La forma preferida de configurar una conexión por red es mediante
el uso del programa netconfig. Al ejecutarlo como root, este nos hará
una serie de preguntas que debemos ir respondiendo, entre las cuales están
nuestron hostname (nombre de nuestro host) como se aprecia en la foto de
más abajo.
/etc/inetd.conf
En un sistema operativo de red central, no es raro que muchos servidores
estén ejecutándose al mismo tiempo. Comúnmente para
cada servicio que esta disponible un programa debe estar revisando alrededor
recibiendo conexiones, con esto se puede obtener un sistema pesado ejecutando
muchos de estos servidores. Para reducir la sobrecarga, fue creado el inetd.
inetd es el "súper-servidor de Internet" el esta pendiente de recibir
la conexiones desde muchos sockets, y cuándo un archivo entra inetd
se encarga de buscar el servidor apropiado para manejarlo. Así se reducen
muchos servidores esperando a uno solo.
/etc/inetd.conf es el archivo encargado de la configuración del inetd.
Especifica que servidor se ejecuta para cada conexión. La pagina del
manual sobre inetd(8) contiene una información más detallada
, pero echémosle una mirada a la línea básica de servicio:
ftp stream tcp nowait root /usr/sbin/tcpd
proftpd
Ésta es la línea para el servidor de ftp. Note primero el nombre
del protocolo (“ftp”) y por ultimo el comando que ejecuta para responder.
En este caso, el programa que se usa para contestar el intento de conexión
esta en /usr/sbin/tcpd; el cual es “wrapper” (envoltura) programa que proporciona
algunas opciones de seguridad básica al servidor que envuelve. Proftpd
es nuestro servidor de ftp real, pero tcpd corre ese para nosotros. Más
información útil sobre el tcpd se encuentra en la sección
llamada tcp wrappers.
Como muchos archivos del sistema, las líneas en inetd.conf se comentan
con el carácter "#" ; usted puede agregar y quitar los servicios simplemente
comentando esas líneas y reiniciando el inetd.
/etc/resolv.conf
Éste es el archivo que dice al resto del sistema dónde conseguir
su información de DNS. Se lista cualquier servidor de nombres que
usted use aquí, así como el nombre del dominio de su host.
Aquí hay un ejemplo resolv.conf:
domain tdn
nameserver 192.168.1.1
search tdn. slackware.com
La primera línea describe el nombre del dominio ninja; después
del hostname en mi dirección. Lo segundo es el DNS de nuestra red
local. Usted puede tener tantos de estos como usted necesite; ellos se verificaran
en el orden desde el primero al ultimo siempre que un programa necesite buscar
el nombre del domino correspondiente a la dirección de IP.
La última línea es un poco mas interesante. Describe cualquier
nombre de dominio que puede ser asumido en mi sistema. Por ejemplo, suponga
que yo tengo las máquinas zuul.tdn y hejaz.slackware.com. Yo puedo
hacer ping zuul y ping hejaz para hacerle un ping a ellas , respectivamente.
Esto se debe a que el ping intenta primero agregar a “.tdn” al nombre zuul,
y encuentra la entrada que va con el. En el caso de “hejaz”, prueba “hejaz.tdn”.
No hay ninguna coincidencia, por lo que prueba con “hejaz.slackware.com”--
bingo. Note que todos los dominios listados en la línea search necesitan
terminar con un "."excepto el ultimo; si hay uno solo, este será el
último y no hay necesidad de ningún rastreo.
/etc/hosts
el Archivo hosts permite un método mas simple de búsqueda de
dominios. Es una lista de hostnames y su IPs correspondiente. Esto es util
en una red pequeña donde los DNS no valen la pena, en casos cuándo
los DNS son inestables, etc.y es usado por la maquina durante el arranque
cuando ningún nameservers está disponible. Los míos
podrían parecerse a esto:
127.0.0.1 localhost
192.168.1.32 ninja.tdn ninja
La primera línea se explica por si sola. La segunda, sin embargo no.
Usted puede listar tantos nombres y aliases(alias) para una dirección
como usted guste, separados por un espacio. Así que yo tengo “192.168.1.32”
traducido a “ninja.tdn” (y viceversa), pero el alias “ninja” puede usarse
también cuando estoy demasiado cansado para escribir “.tdn” (que es
la mayoria del tiempo).
El papel de rc.inet1 es simple: Es configurar tus dispositivos de red
y un router. Esencialmente, rc.inet1 es el archivo que dá a tú
red en primer lugar.
Ahora vamos a ver un ejemplo del archivo rc.inet1 :
HOSTNAME=`cat /etc/HOSTNAME`
Toda esta línea es donde debes pensar cual será el nombre de
tu máquina y hacer caso de el para después Asegurese que el
archivo /etc/HOSTNAME contenga el nombre que deceas.
# Una al dispositivo de loopback.
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
Estas líneas son el perfecto ejemplo de la simplicidad de los inits
al estilo BSD. Necesitaremos un dispositivo loopback, entonces
pateamos uno con el ifconfig y agregamos una ruta a la red del loopback.
Hecho. Ahora podemos levantar nuestra Ethernet.
# Editar para instalar.
IPADDR="111.112.113.114"
NETMASK="255.255.255.0"
NETWORK="111.112.113.0"
BROADCAST="111.112.113.255"
GATEWAY="111.112.113.1"
Este bloque de definiciones es donde se alimenta el numero de rc.inet1 necesario
para levantar el dispositivo ethernet. Tú dirección IP la puedes
obtener de tu administrador de red. El netmask ( o mascara de red ) casi
siempre va a ser 255.255.255.0, a menos que su máquina esté
en el principio de la subnet ( en tal caso tú, probablemente
no necesites esta página). La "Network" (red de trabajo) será
usualmente tu subnet, ( La primeras 3 partes de tu dirección IP )
tomando el cero como la cuarta y última parte. Broadcaste es
usualmente lo mismo en las tres primeras partes, con un 255 adosado a la cuarta
parte. Y el gateway vendría siendo usualmente la primera máquina
de la subnet (aunque puede que no sea ... es mejor preguntarle al dministrador
de red).
# Descomente la línea de mas abajo para configurar su targeta ethernet.
/sbin/ifconfig eth0 ${IPADDR} broadcast ${BROADCAST} netmask ${NETMASK}
Levanta un dispositivo ethernet usando los ajustes especificados en ese bloque
de definiciones.
[ inserte el bloque de cosas que ?whines? al usuario si ningun dispositivo
tipo ethernet fue encontrado para iniciar ]
#Descomente esto para levantar el IP routing table.
/sbin/route add -net ${NETWORK} netmask ${NETMASK} eth0
if [ ! "$GATEWAY" = "" ]; then
/sbin/route add default gw ${GATEWAY} netmask 0.0.0.0
metric 1
fi
Fija una red de trabajo a ese dispositivo ethernet que instalamos hace un
segundo atrás y estaremos listos.
rc.inet1 nos proporciona una red: rc.inet2 termina el trabajo de la
configuración de la red haciendo correr programas para esta red .Cualquier
servicio o demonio que use la red será iniciado desde este archivo.
Uno de esos demonios es inetd, el mounstruoso y enorme demonio de red que
ejecuta una tonelada de tus servicios .. ese hombre tiene su propio archivo
de configuración.
Ahora vamos a ver un extracto del archivo rc.inet2 de ejemplo, puesto que
mayormente hay variasiones en un tema.
# Constants.
NET="/usr/sbin"
IN_SERV="lpd"
LPSPOOL="/var/spool/lpd"
Just setting some stuff we can refer back to later.. variables love you.
# Start the INET SuperServer
if [ -f ${NET}/inetd ]; then
echo -n " inetd"
${NET}/inetd
else
echo "no INETD found. INET cancelled!"
exit 1
fi
Siempre que ejecutes un demonio o servidor desde rc.inet2, probablemente
vaya a ser un bloque como este. Primero nosotros miraremos si el inetd existe,
si no existe, la consola nos arrojará una noticia ( no en una nueva
línea, sino que justo en la linea con el resto del inicio de los
servers). Entonces iniciamos el demonio. Si no es encontrado, we whine y
la consola nos arrojará como estado un error. ( La mayoría
de los demonios actuales no mostrarán una salida en rc.inet2 con
un estado de error si este no es encontrado .... pero inetd hace mucho de
esto.)
El Sistema de Archivo de Red se usa, obviamente, para compartir archivos
entre las máquinas en una red. Lo bueno del NFS es que esta diseñado
para que una maquina pueda montar archivos compartidos de la otra de forma
transparente, y los trata como archivos locales.
Sin embargo , un par de cosas tienen que pasar para que esto suceda. Primero
los servicios apropiados tienen que estar corriendo en la máquina
del servidor: éstos son los portmap(8), nfsd(8), y mountd(8). Lo segundo
es que el servidor tiene explícitamente que “exportar” un arbol del
filesystem al cliente, lo que se logra mediante el archivo exports(5) en
/etc.
La primera parte de la ecuación se logra instalando el paquete tcpip1.tgz
(de la serie de software N) y permitiendo a rc.inet2 hacer su trabajo./etc/exports
es la parte mas divertida.
Suponga que yo tengo un directorio de imágenes(var/media/images) en
battlecat.tdn que yo quiero montar en ninja.tdn. En battlecat, necesitare
una línea en /etc/exports parecida a esta:
/var/media/images ninja.tdn(ro)
Entonces en ninja, yo simplemente coloco:
# mount -t nfs battlecat.tdn:/var/media/images /mnt
para montar el directorio de las imágenes en /mntlocalmente. Desgraciadamente,
yo me he prohibido la escritura en el directorio compartido-- el pedazo de
línea “(ro)” en battlecat/etc/exports es una opcion que significa
“solo-lectura (read only)”. otra opción que necesite después
del nombre del cliente, debe escribirse dentro de paréntesis, y separadas
por coma.. Por ejemplo:
/var/media/images ninja.tdn(rw,no_root_squash)
La “rw” es obviamente la opcion“read-write”-- (lectura-escritura) sujeta
al grupo y usuario que indica (vea la sección exports(5) de la pagina
del manual para una explicación), se le permite a los usuarios de
ninja escribir en el directorio compartido. No me gusta mucho la explicadera,
por lo que pienso dejar a la pagina del manual explicarle eso a usted; si
usted planea usar mucho NFS ,exports(5) sera su mejor amigo.
tcp_wrappers es un servicio básico para prevenir ( y explícitamente
permitir) el acceso a los servicios desde los host especificados. En una
nutshell, funciona así:
inetd (el súper-servidor de Internet) ejecuta muchos servidores, muchos
de los cuales son “wrapped” (ajustados) por tcpd. En otras palabras,tcpd
es realmente quien ejecuta estos servidores, pero el inetd no sabe esotcpd
logea los intentos de conexión y entonces chequea los archivos/etc/hosts.allow
and /etc/hosts.deny para ver cuales conexiones debe permitirse.
Las reglas contenidas en estos archivos pueden ser algo complejas, pero supongamos,
pyramid.tdn esta siendo muy molesto y no deja en paz al pobre mojo.tdn. ;
mojo.tdn podria escribir una línea en /etc/hosts.denyparecida a esta:
ALL: pyramid.tdn
Esta línea debe ser bastante clara: impide a pyramid usar todos los
servicios en mojo que estan protegidos por tcpd. Si estoy siendo molestado
por un dominio entero además de pyramid, yo podría crear esta
línea:
ALL: pyramid.tdn, .annoying.domain
¡Pero espera! Mi amigo Hobbes esta entrando desde una maquina en .annonying.domain
, pero yo quiero que el pueda entrar(pero no el resto de sus amigos molestos).
Eso es bastante simple. Dejo como esta a host.deny , y estas líneas
en hosts.allow dejaran entrar a Hobbes:
ALL: hobbes.annoying.domain
Para mucho mas detalle vea: tcpd(8), hosts_access(5), and hosts_options(5).
es mucho más flexible que esto, y merece la pena revisarlo bien.
En este capítulo, usted aprendió a configurar su sistema
para atarlo a una red, cómo cambiar la configuración archiva,
y algunos principios de seguridad básicos. Además, usted aprendió
lo que es el NFS Sistema de Archivos de Red y cómo hacerlo trabajar
en su sistema. Hacer su sistema parte de una red le permite acceder a toda
clase de recursos como correo, noticias y websites. Vea Capítulo 13
para la información sobre cómo usar algunos programas de la
red básicos.
Configuración del Sistema | Indice | El Sistema X Window |