NOMBRE¶
services - Lista de servicios de red de Internet
DESCRIPCIÓN¶
services es un fichero ASCII que proporciona una correspondencia entre
nombres textuales cómodos para los servicios de internet y sus
correspondientes números de puerto y tipos de protocolo subyacentes.
Todo programa de red debería mirar este fichero para obtener el
número de puerto (y protocolo) para su servicio.
Las funciones
getservent(3),
getservbyname(3),
getservbyport(3),
setservent(3), y
endservent(3) de la
biblioteca de C, permiten consultar este fichero desde un programa.
Los números de puerto son asignados por la IANA (Internet Assigned
Numbers Authority: Autoridad para la Asignación de Números de
Internet), y su política actual es la de asignar tanto los protocolos
TCP y UDP cuando se asigna un número de puerto. Por tanto, la
mayoría de las entradas tendrán dos entradas, incluso para los
servicios que son exclusivos de TCP.
Los números de puerto por debajo de 1024 (los así llamados
"puertos de baja numeración") sólo pueden ser
enlazados por el superusuario (ver
bind(2),
tcp(7), y
udp(7).) Esto es así para que los clientes que se conecten a los
puertos de baja numeración puedan confiar en que el servicio
ejecutándose en el puerto es la implementación estándar y
no un servicio tramposo ejecutado por un usuario de la máquina. Los
números de puerto bien conocidos especificados por la IANA se localizan
normalmente es este espacio exclusivo del superusuario.
La presencia de una entrada para un servicio en el fichero
services no
significa, necesariamente, que el servicio se está ejecutando
actualmente en la máquina. Vea
inetd.conf(5) para la
configuración de los servicios ofrecidos de Internet. Dese cuenta que
no todos los servicios de red son iniciados por
inetd(8), por lo que no
aparecerán en
inetd.conf(5). En particular, los servidores de
noticias (NNTP) y de correo (SMTP) frecuentemente se inician desde los guiones
de arranque del sistema.
La localización del fichero
services viene especificada por
_PATH_SERVICES en
/usr/include/netdb.h. Normalmente, el valor
asignado es
/etc/services.
Cada línea describe un servicio, y tiene el formato:
- service-name port/protocol [aliases
...]
- donde:
- service-name
- es el nombre amigable por el que el servicio es conocido y buscado.
Distingue entre mayúsculas y minúsculas. Normalmente, el
programa cliente se especifica tras service-name.
- port
- es el número de puerto (en decimal) usado por este servicio.
- protocol
- es el tipo de protocolo usado. Este campo debe coincidir con una entrada
del fichero protocols(5). Los valores típicos
incluyen tcp y udp.
- aliases
- es una lista separada, opcionalmente, por espacios o tabuladores de otros
nombres para este servicio (pero consulte más abajo la
sección ERRORES). Nuevamente, se distingue entre mayúsculas
y minúsculas.
Se pueden usar o bien espacios o bien tabuladores para separar los campos.
Los comentarios comienzan con un '#' y terminan con un final de línea.
Las líneas en blanco se saltan.
service-name deben comenzar en la primera columna del fichero, ya que no
se eliminan los espacios iniciales.
service-names puede ser cualquier
secuencia de caracteres imprimibles, excepto espacios y tabuladores. Sin
embargo, se debe hacer una selección conservativa de caractares para
minimizar problemas de interoperatibidad. Es decir, los caracteres a-z, 0-9 y
el guión (-) deben ser una elección sensata.
Las líneas que no coincidan con este formato no deberían estar
presentes en el fichero. (Actualmente,
getservent(3),
getservbyname(3) y
getservbyport(3). las saltan silenciosamente.
Sin embargo, no debería fiarse de este comportamiento.)
Como característica de compatibilidad hacia atrás, la barra
inclinada (/) entre el número de
puerto (port) y el nombre del
protocolo (protocol) puede ser, de hecho, o bien una barra inclinada o
bien una coma (,). El uso de la coma en instalaciones modernas se desprecia.
Este fichero se podría distribuir a través de una red usando un
servicio de nombres de red como Yellow Pages/NIS o BIND/Hesiod.
Un ejemplo. El fichero
services podría tener el siguiente aspecto:
netstat 15/tcp
qotd 17/tcp quote
msp 18/tcp # message send protocol
msp 18/udp # message send protocol
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp 21/tcp
# 22 - unassigned
telnet 23/tcp
ERRORES¶
Hay un máximo de 35 alias, debido a la forma en que está escrito
el código de
getservent(3).
Las líneas con una longitud superior a
BUFSIZ (actualmente, 1024)
caracteres serán ignoradas por
getservent(3),
getservbyname(3), y
getservbyport(3). Sin embargo, esto
también provocará que la siguiente línea sea analizada
incorrectamente.
FICHEROS¶
- /etc/services
- La lista de servicios de red de Internet.
- /usr/include/netdb.h
- Definición de _PATH_SERVICES
VÉASE TAMBIÉN¶
getservent(3),
getservbyname(3),
getservbyport(3),
setservent(3),
endservent(3),
protocols(5),
listen(2),
inetd.conf(5),
inetd(8)
RFC de Números Asignados, más recientemente RFC 1700, (AKA
STD0002)
Guide to Yellow Pages Service
Guide to BIND/Hesiod Service