Guía de administración del sistema: servicios IP

Supervisión y modificación de los servicios de capa de transporte

Los protocolos de capa de transporte TCP, SCTP y UDP son parte del paquete Oracle Solaris estándar. Estos protocolos normalmente no requieren ninguna intervención para ejecutarse correctamente. Sin embargo, las circunstancias de su sitio podrían requerir el registro o la modificación de los servicios que ejecutan los protocolos de capa de transporte. En tal caso, debe modificar los perfiles de los servicios con la Utilidad de gestión de servicios (SMF), que se describe en el Capítulo 18, Managing Services (Overview) de System Administration Guide: Basic Administration.

El daemon inetd se encarga de iniciar los servicios estándar de Internet cuando se inicia un sistema. Estos servicios incluyen aplicaciones que utilizan TCP, SCTP o UDP como protocolo de capa de transporte. Puede modificar los servicios de Internet existentes o agregar servicios nuevos con los comandos SMF. Para más información sobre inetd, consulte Daemon de servicios de Internet inetd.

Las operaciones que requieren protocolos de capa de transporte incluyen:

Para obtener información detallada sobre el daemon inetd, consulte la página del comando man inetd(1M).

ProcedureCómo registrar las direcciones IP de todas las conexiones TCP entrantes

  1. En el sistema local, asuma la función de administrador de red o hágase superusuario.

    Las funciones incluyen autorizaciones y comandos con privilegios. Para obtener más información sobre las funciones, consulte Configuring RBAC (Task Map) de System Administration Guide: Security Services.

  2. Active el seguimiento TCP para todos los servicios que administre inetd.


    # inetadm -M tcp_trace=TRUE
    

ProcedureCómo agregar servicios que utilicen el protocolo SCTP

El protocolo de transporte SCTP ofrece servicios a los protocolos de capa de modo similar a TCP. Sin embargo, SCTP permite la comunicación entre dos sistemas, que pueden ser (uno o ambos) de host múltiple. La conexión SCTP se denomina asociación. En una asociación, una aplicación divide los datos que se transmitirán en uno o más flujos de mensajes, o en múltiples flujos. Una conexión SCTP puede realizarse en los puntos finales con varias direcciones IP, lo cual es especialmente importante en las aplicaciones de telefonía. Las posibilidades que ofrece el host múltiple de SCTP constituyen una consideración de seguridad si el sitio utiliza filtro IP o IPsec. En la página del comando man sctp(7P) se describen algunas de estas consideraciones.

De modo predeterminado, SCTP se incluye en Oracle Solaris y no requiere ninguna configuración adicional. Sin embargo, es posible que tenga que configurar de modo explícito determinados servicios de capa de la aplicación para que utilicen SCTP. Algunas aplicaciones de ejemplo son echo y discard. El procedimiento siguiente muestra cómo agregar un servicio echo que utilice un socket de estilo uno a uno SCTP.


Nota –

También puede utilizar el procedimiento siguiente para agregar servicios para los protocolos de capa de transporte TCP y UDP.


La tarea siguiente muestra cómo agregar un servicio SCTP inet que administre el daemon inetd al depósito SMF. La tarea muestra cómo utilizar los comandos de la Utilidad de gestión de servicios (SMF) para agregar el servicio.

Antes de empezar

Antes de llevar a cabo el procedimiento siguiente, cree un archivo manifest para el servicio. El procedimiento utiliza como ejemplo un archivo manifest para el servicio echo que se denomina echo.sctp.xml .

  1. Inicie sesión en el sistema local con una cuenta de usuario con privilegios de escritura para los archivos del sistema.

  2. Edite el archivo /etc/services y agregue una definición para el nuevo servicio.

    Utilice la siguiente sintaxis para la definición del servicio.


    service-name |port/protocol | aliases
    
  3. Agregue el nuevo servicio.

    Vaya al directorio en el que se encuentra el manifiesto del servicio y escriba lo siguiente:


    # cd dir-name
    # svccfg import service-manifest-name
    

    Para ver la sintaxis completa de svccfg, consulte la página del comando man svccfg(1M).

    Supongamos que desea agregar un nuevo servicio SCTP echo utilizando el manifiesto echo.sctp.xml que se encuentra en el directorio service.dir. Debe escribir lo siguiente:


    # cd service.dir
    # svccfg import echo.sctp.xml
    
  4. Compruebe que se haya agregado el manifiesto del servicio:


    # svcs FMRI
    

    Para el argumento FMRI, utilice el Fault Managed Resource Identifier (FMRI) del manifiesto del servicio. Por ejemplo, para el servicio SCTP echo, debe utilizar el comando siguiente:


    # svcs svc:/network/echo:sctp_stream
    

    El resultado que obtendrá será similar al siguiente:


    	STATE          STIME    FMRI
    disabled       16:17:00 svc:/network/echo:sctp_stream

    Si desea obtener información detallada sobre el comando svcs, consulte la página del comando man svcs(1).

    El resultado indica que el nuevo manifiesto del servicio está desactivado.

  5. Enumere las propiedades del servicio para determinar si debe realizar modificaciones.


    # inetadm -l FMRI
    

    Para obtener información detallada sobre el comando inetadm, consulte la página del comando man inetadm(1M).

    Por ejemplo, para el servicio SCTP echo, debe escribir lo siguiente:


    # inetadm -l svc:/network/echo:sctp_stream
    SCOPE    NAME=VALUE
    	         name="echo"
    	         endpoint_type="stream"
    	         proto="sctp"
    	         isrpc=FALSE
    	         wait=FALSE
    	         exec="/usr/lib/inet/in.echod -s"
             .
             .
             default  tcp_trace=FALSE
           	default  tcp_wrappers=FALSE
  6. Active el nuevo servicio:


    # inetadm -e FMRI
    
  7. Compruebe que el servicio esté activado:

    Por ejemplo, para el nuevo servicio echo, debe escribir:


    # inetadm | grep sctp_stream
    .
    .
    	enabled   online         svc:/network/echo:sctp_stream

Ejemplo 5–9 Cómo agregar un servicio que utilice el protocolo de transporte SCTP

El siguiente ejemplo muestra los comandos para utilizar las entradas de archivo necesarias para que el servicio echo utilice el protocolo de capa de transporte SCTP.


$ cat /etc/services
.
.
echo            7/tcp
echo            7/udp
echo            7/sctp

# cd service.dir

	# svccfg import echo.sctp.xml

# svcs network/echo*
	STATE          STIME    FMRI
	disabled       15:46:44 svc:/network/echo:dgram
	disabled       15:46:44 svc:/network/echo:stream
	disabled       16:17:00 svc:/network/echo:sctp_stream

# inetadm -l svc:/network/echo:sctp_stream
	SCOPE    NAME=VALUE
	         name="echo"
	         endpoint_type="stream"
	         proto="sctp"
	         isrpc=FALSE
	         wait=FALSE
	         exec="/usr/lib/inet/in.echod -s"
	         user="root"
	default  bind_addr=""
	default  bind_fail_max=-1
	default  bind_fail_interval=-1
	default  max_con_rate=-1
	default  max_copies=-1
	default  con_rate_offline=-1
	default  failrate_cnt=40
	default  failrate_interval=60
	default  inherit_env=TRUE
	default  tcp_trace=FALSE
	default  tcp_wrappers=FALSE

# inetadm -e svc:/network/echo:sctp_stream

# inetadm | grep echo
	disabled  disabled       svc:/network/echo:stream
	disabled  disabled       svc:/network/echo:dgram
	enabled   online         svc:/network/echo:sctp_stream

ProcedureCómo utilizar los envoltorios TCP para controlar el acceso a los servicios TCP

El programa tcpd implementa envoltorios TCP. Los envoltorios TCP incorporan una medida de seguridad para los daemons de servicio como ftpd al permanecer entre el daemon y las solicitudes de servicio entrantes. Los envoltorios TCP registran los intentos de conexión correctos e incorrectos. Asimismo, los envoltorios TCP pueden proporcionar control de acceso, y permitir o denegar la conexión en función del lugar donde se origine la solicitud. Puede utilizar los envoltorios TCP para proteger los daemons como SSH, Telnet o FTP. La aplicación sendmail también puede utilizar envoltorios TCP, tal como se describe en Support for TCP Wrappers From Version 8.12 of sendmail de System Administration Guide: Network Services.

  1. En el sistema local, asuma el rol de administrador principal o conviértase en superusuario.

    La función de administrador principal incluye el perfil de administrador principal. Para crear el rol y asignarlo a un usuario, consulte el Capítulo 2, Working With the Solaris Management Console (Tasks) de System Administration Guide: Basic Administration.

  2. Active los envoltorios TCP.


    # inetadm -M tcp_wrappers=TRUE
    
  3. Configure la directiva de control de acceso de los envoltorios TCP tal como se describe en la página del comando man hosts_access(3).

    Esta página del comando man se encuentra en el directorio /usr/sfw/man del CD-ROM de SFW, que se suministra con el CD-ROM de Oracle Solaris.