2- Configuración de Red

  • Hardware de Red
  • Utilidades de Red
  • Los Archivos de /etc
  • rc.inet1
  • rc.inet2
  • NFS (Sistema de Archivos de Red)
  • tcp wrappers
  • Resumen

    Hardware de Red

    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.


    Utilidades de Red

    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.



    Luego nos preguntará por nuestro domainname ( nombre de dominio).



    Y la conexión que describe de mejor forma el tipo de red que poseemos, entre las cuales tenemos el uso de una ip estática para configurar nuestra tajeta de red, el soporte dhcp que es mostrado más abajo y la opción loopback que generalmente es usada por personas que no poseen una tarjeta de red o que si la poseen y que se conectan a la red a través de un modem serial ( usando SLIP o PPP).

     Entonces así el programa podrá crear el archivo rc.inet1. Para esto también encesitarás soporte para tu tarjeta de red. EL programa netconfig puede probar tu sistema para dejar habilitada tú tarjeta de red. O puedes editar el archivo /etc/rc.d/rc.modules y seleccionar tu tarjeta. Porsupuesto, también puedes editar los archivos de configuración de red manualmente. Los cuales son /etc/rc.d/rc.inet1 y /etc/rc.d/rc.inet2,los que se discuten con mayor detalle más abajo.


    Soporte DHCP

    Uno de las opciones que nos da netconfig para configurar nuestro tipo de conexión es la de usar DHCP para la intalación de nuestra red de trabajo, esta es usada comunmente por aquellas personas que poseen cable modem o algún servicio DSL . O puedes editar el archivo rc.inet1 y ejecutar /sbin/dhcp por tí mismo. Debes estar seguro que tienes el soporte en el kernel para que tú tarjeta de red se encuentre habilitada ( cosa que netconfig puede hacer por tí).




    pppsetup
     
    Slackware incluye la utilidad pppsetup que permite configurar una conexión con un ISP.(Proveedor de Servicios de Internet). El paquete se localiza en /slackware/n/ppp-2.4.1-i386-2.tgz : pppsetup utiliza la misma interface que el programa de instalación. Si usted no recuerda cómo usar esta interfaz, refiérase atrás a la sección llamada "El Programa de Instalación" en el Capítulo 3 para algunas instrucciones pppsetup le hará una serie de preguntas y configurará varios archivos en el directorio /etc/ppp (debe ejecutar pppsetup como root), pero no te preocupes que nosotros lo guiaremos a través de las preguntas.


      
    Phone number (Numero de telefono) 
     
    La primera de las preguntas se refiere a el número de teléfono de su ISP, los códigos de área y tipo de marcado. Como la mayoría de las personas, usted querrá usar el marcado por tonos (tone dialing). Si el número de teléfono de su ISP fuera 555-1013 y usted usa el marcado por tonos, escriba atdt5551013 en el cuadro de diálogo.

     
     
    Si tienes una llamada en espera en tu teléfono y quieres desactivarla para cuando trates de conectarte ( lo que probablemente sea una buena idea ), trata  de asegurarte introducir algo como esto en la caja de dialogo: atdt*70,5551013.
     
    La coma es requerida. Esta pone 1.5 segundos de pausa entre el *70 para desactivar la llamada en espera y el numero del ISP. Esto no funciona sin la coma

    Modem
     

    Luego, seleccione la ubicación de su módem. Si usted sabe cual puerto COM usaba bajo Windows, usted puede seleccionar el equivalente en el listado.



    Si no lo sabe, usted tendrá que hacer un experimento. La mejor manera es empezar por ttyS0 e ir probando lista abajo. Aunque para no darce la tediosa tarea de ir ejecutando pppsetup para ir probando cada uno de los puertos, usted los puedes probar igualmente con solo teclear un par de comandos usando setserial. La sintaxis para esto sería mas o menos así (esto como root):

    # setserial /dev/ttyS1 ( esto para probar el COM2)

    lo que generará una salida como esta:

    /dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3

    Cuando nos salga el UART es porque el modem está en ese COM, sino fuese este el caso hay que ir probando hasta encontrarlo
     
    Velocidad de transmisión del modem (Modem baud rate) 
     
    Escoja la velocidad de transmisión que más se acerque a su modem. Si usted no sabe la velocidad de su modem, podría verificar la caja del modem o cualquier documentación que viniera con el. Cada selección tiene varios ejemplos, por lo que no debe ser difícil deducir. 


     
     
    Callback

     
    Ahora, usted necesitara indicar la información referente a su ISP. Pocos ISPs usan el callback, probablemente puede seleccionar mejor "NO." Callback es cuando usted marca al ISP y ellos devuelven la llamada para que usted se pueda dar su nmbre de usuario y password para así conectarse.



    Si usted tiene que usar el callback, seleccione" YES." Entonces, se le pedirá introducir su número de teléfono, un nombre del inicio de sesión, y una contraseña. Usted no tiene que introducir su nombre de usuario y contraseña.

    Modem init string
     
    A menos que usted tenga un modem extraño, usted podría simplemente presionar enter para seleccionar el predeterminado (“AT&FH0”). Por otra parte, refiérase a la documentación que vino con su modem para saber cual init string usar.


     
    Nombre del Dominio (ISP's Domain name)
     
    Ahora, usted necesitará entrar en el nombre del dominio de su ISP. Este será algo de forma “example.net”, “slackware.com”, o algo parecido. (De acuerdo, no va a ser slackware.com definitivamente).



    Dirección IP de nuestro ISP (DNS IP address)
     
    Su ISP le debe de haber proporcionado la dirección IP de su nameserver. Si usted tiene esa dirección IP, escríbala. Si no la tiene, regístrese con su ISP para ver qué número puede usar.



    Finalmente se le preguntara sobre que tipo de esquema de autenticación usa su ISP. Si ellos usan CHAP o PAP, seleccione "YES". Después, usted necesitará preparar esto. Refiérase a la sección debajo. Si ellos no usan ninguno de los anteriores, seleccione "NO" y refiérase a la sección "Chat Script descrita un poco más abajo.

    Metodo de Atenticación (Authentication method)
     
    Esta pregunta también podría llevarle un poco de trabajo de ensayo y error. Usted necesita deducir si su ISP usa al CHAP, PAP, o ningun método para la autenticación de usuario. La manera más fácil de deducir esto es llamar a su ISP. Sin embargo, si usted se consigue con el inicio de sesión y paswords cuando se conecta, usted probablemente deba escoger "SCRIPT". De todas maneras, consulte a su ISP para saber cual usar.


      
    PAP or CHAP
     
    Si usted selecciono “PAP” or “CHAP” en la pantalla de método de autenticación, se le pedirá su nombre de usuario. Su ISP le debe de haber asignado un username. Si ellos no hicieron, entonces sucede algo muy extraño. Usted necesita contactarlos y conseguir su username.



    Después usted debe ingresar la contraseña que le asigno su ISP en el próximo cuadro de dialogo.


    Chat script
     
    Si usted selecciona “SCRIPT” en la pantalla de método de autenticación, se le presentara una discusión bastante larga sobre que tipo de chat script es. Asegúrese de leerlo porque hay se describe muy bien todo. Básicamente, usted tendrá que decir que tipo de información va a enviar su ISP y lo que su computadora debe enviar de vuelta.
     
    Usted tendrá entonces que anotar el texto que su computadora debe recibir de su ISP, seguido de la información que debe devolver.

    Done
     
    Finalmente se le mostrarán sus archivos de configuración ppp completos. Usted realmente no puede hacer nada sobre ellos, pero usted puede comprobar todo por lo menos. Presione enter para guardar todo y salir del pppsetup.

     

    Esta pantalla contiene información sobre como iniciar una conexión dialup y como abandonarla cuando este listo. La idea básica es esta: entre como root, ejecute ppp-go para empezar la conexión. Una vez que le asignan un IP local y remoto, usted esta conectado en la Internet. Cuando esté listo, ejecute ppp-off y terminará la conexión.

    Los Archivos de /etc

    /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).


    rc.inet1

    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.inet2

    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.)


    NFS (Sistema de Archivos de Red)

    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

    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.


    Resumen

    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