12.3. The Services and Protocols Files

Los números de puerto en los cuales ciertos servicios “estandard” se ofrecen se definen en el Assigned Numbers RFC. Para activar programas servidores y clientes para convertir nombres de servicio a estos números, al menos parte del listado se mantiene en cada host; esto se guarda en un fichero llamado /etc/services. Una entreda se crea del siguiente modo:
    service port/protocol   [aliases]

Aquí, service especifica el nombre de servicio, port define el puerto que el servicio activa, y protocol define que protocolo de transporte que se usa. Comúnmente, el último campo es cualquiera de los dos udp o tcp. Esto es posible para un servicio que se ofrece para más de un protocolo, es mejor que ofrecer diferentes servicios en el mismo puerto mientras que los protocolos son doferentes. El campo aliases le permite especificar nombres alternativos para el mismo servicio.

Normalmente, usted no tiene que cambiar los ficheros de servicio que vienen a través del software de red de su sistema linux. Sin embargo, le damos un pequeño extracto del fichero en Ejemplo 12-2.

Ejemplo 12-2. A Sample /etc/services File

    # The services file:
    #
    # well-known services
    echo           7/tcp                 # Echo
    echo           7/udp                 #
    discard        9/tcp  sink null      # Discard
    discard        9/udp  sink null      #
    daytime       13/tcp                 # Daytime
    daytime       13/udp                 #
    chargen       19/tcp  ttytst source  # Character Generator
    chargen       19/udp  ttytst source  #
    ftp-data      20/tcp                 # File Transfer Protocol (Data)
    ftp           21/tcp                 # File Transfer Protocol (Control)
    telnet        23/tcp                 # Virtual Terminal Protocol
    smtp          25/tcp                 # Simple Mail Transfer Protocol
    nntp         119/tcp  readnews       # Network News Transfer Protocol
    #
    # UNIX services
    exec         512/tcp                 # BSD rexecd
    biff         512/udp  comsat         # mail notification
    login        513/tcp                 # remote login
    who          513/udp  whod           # remote who and uptime
    shell        514/tcp  cmd            # remote command, no passwd used
    syslog       514/udp                 # remote system logging
    printer      515/tcp  spooler        # remote print spooling
    route        520/udp  router routed  # routing information protocol

Fíjese que el servicio echo se ofrece en el puerto 7 para TCP y UDP, y que el puerto 512 se usa para 2 servicios diferentes: ejecución remota (rexec) usando TCP, y el demonio COMSAT, el cual les notifica a los usuarios que tienen nuevo correo, sobre UDP (vea xbiff(1x) ).

Como los servicios de fichero, las librerias de red necesitan un medio de traducir nombres de protocolo—por ejemplo, esos usados en los servicios fichero—para números de protocolo entendidos por la capa IP en otros hosts. Esto se hace para buscar el nombre in el archivo /etc/protocols. Este contiene una entrada por línea, cada una contiene un nombre de protocolo, y el número asociado. Tocar este archivo es más improbable que hacerlo a través de /etc/services. Un ejemplo de archivo se proporciona en Ejemplo 12-3.

Ejemplo 12-3. A Sample /etc/protocols File

    #
    # Internet (IP) protocols
    #
    ip      0       IP              # internet protocol, pseudo protocol number
    icmp    1       ICMP            # internet control message protocol
    igmp    2       IGMP            # internet group multicast protocol
    tcp     6       TCP             # transmission control protocol
    udp     17      UDP             # user datagram protocol
    raw     255     RAW             # RAW IP interface