Servicios de red

Como en el resto de entornos Unix, en AIX es vital garantizar la seguridad de los servicios de red de la máquina para conseguir un entorno de trabajo fiable en su globalidad; no obstante, este operativo provee de una serie de herramientas que otros sistemas no proporcionan y que facilitan enormemente el trabajo del administrador: es importante acostumbrarse a su manejo (recordemos que en AIX vi no es una herramienta administrativa) a través de SMIT y, mucho mejor, desde línea de órdenes. Por poner un ejemplo, si a un administrador de un entorno Solaris, Linux o HP-UX le preguntamos cómo eliminaría el servicio chargen en una máquina, la respuesta sería siempre la misma: editando /etc/inetd.conf, comentando la línea correspondiente con una almohadilla (`#') y reiniciando el demonio inetd enviándole la señal SIGHUP; si le preguntamos lo mismo al root de una máquina AIX, lo más probable (aunque podría hacerlo de la forma anterior) es que utilice una orden como chsubserver, en un proceso similar al siguiente:
bruja:/# grep chargen /etc/inetd.conf
chargen        stream  tcp     nowait  root    internal
chargen        dgram   udp     wait    root    internal
bruja:/# chsubserver -d -v chargen -p udp
bruja:/# chsubserver -d -v chargen -p tcp
bruja:/# grep chargen /etc/inetd.conf
#chargen        stream  tcp     nowait  root    internal
#chargen        dgram   udp     wait    root    internal
bruja:/# refresh -s inetd
bruja:/#
En AIX los subsistemas de red son gestionados por el Controlador de Recursos del Sistema (SRC, System Resource Controller), un software que proporciona comandos e interfaces uniformes para crear y controlar subsistemas ([IBM97c]), que no son más que programas o procesos (o combinaciones de los mismos) capaces de operar de forma independiente o a través de un controlador, algo que es más o menos equivalente a lo que todos conocemos como `demonio' en cualquier Unix; podemos ejecutar la orden `lssrc -a' para listar los subsistemas de nuestra máquina AIX:
bruja:/# lssrc -a
Subsystem         Group            PID     Status 
 portmap          portmap          5684    active
 inetd            tcpip            7770    active
 xntpd            tcpip            6352    active
 automountd       autofs           6056    active
 hats             hats             9876    active
 hags             hags             8494    active
 hagsglsm         hags             9370    active
 haem             haem             6694    active
 haemaixos        haem             10662   active
 pman             pman             11372   active
 pmanrm           pman             12130   active
 sysctld                           11174   active
 snmpd            tcpip            15520   active
 sendmail         mail             16628   active
 dpid2            tcpip            16106   active
 fs                                19612   active
 biod             nfs              19874   active
 rpc.statd        nfs              20644   active
 qdaemon          spooler          15750   active
 writesrv         spooler          19366   active
 clstrmgr         cluster          32706   active
 clsmuxpd         cluster          42048   active
 nfsd             nfs              31168   active
 rpc.mountd       nfs              42904   active
 rpc.lockd        nfs              32004   active
 tftpd            tcpip            7586    active
 syslogd          ras              31852   active
 lpd              spooler                  inoperative
 clvmd                                     inoperative
 gated            tcpip                    inoperative
 named            tcpip                    inoperative
 routed           tcpip                    inoperative
 rwhod            tcpip                    inoperative
 iptrace          tcpip                    inoperative
 timed            tcpip                    inoperative
 dhcpcd           tcpip                    inoperative
 dhcpsd           tcpip                    inoperative
 dhcprd           tcpip                    inoperative
 ndpd-host        tcpip                    inoperative
 ndpd-router      tcpip                    inoperative
 llbd             iforncs                  inoperative
 glbd             iforncs                  inoperative
 i4lmd            iforls                   inoperative
 i4glbcd          iforncs                  inoperative
 i4gdb            iforls                   inoperative
 i4llmd           iforls                   inoperative
 mrouted          tcpip                    inoperative
 rsvpd            qos                      inoperative
 policyd          qos                      inoperative
 pxed             tcpip                    inoperative
 binld            tcpip                    inoperative
 dtsrc                                     inoperative
bruja:/#

Figura 11.1: Estructura jerárquica del SRC.

Los subsistemas con funciones relacionadas entre sí forman lo que se denomina grupos de subsistemas, y además cada subsistema se divide en subservidores (simples programas o procesos), formando una estructura jerárquica como la mostrada en la figura 11.1 (figura en la que además se muestra un ejemplo - entre paréntesis - de cada categoría); como podemos ver en ella, un grupo de subsistemas es tcpip, que como su nombre ya adelanta es el encargado de la gestión de protocolos TCP/IP, y que incluye a subsistemas tan importantes como inetd o snmpd. Mediante lssrc, con las opciones adecuadas, podemos obtener información detallada acerca de un subsistema o subservidor; por ejemplo, la siguiente orden nos muestra lo que hemos comentado anteriormente, que el subsistema inetd pertenece al grupo tcpip, y que en este caso concreto tiene cuatro servidores activos (tftp, klogin, kshell y ftp):
bruja:/# lssrc -ls inetd
Subsystem         Group            PID     Status 
 inetd            tcpip            7770    active
  
Debug         Not active 
  
Signal        Purpose 
 SIGALRM      Establishes socket connections for failed services. 
 SIGHUP       Rereads the configuration database and reconfigures services. 
  
 SIGCHLD      Restarts the service in case the service ends abnormally. 
  
Service       Command                  Description              Status 
 tftp         /usr/sbin/tftpd          tftpd -d /tftpboot       active
 klogin       /usr/sbin/krlogind       krlogind                 active
 kshell       /usr/sbin/krshd          krshd                    active
 ftp          /usr/sbin/ftpd           ftpd                     active
  
bruja:/#
Como ya hemos dicho antes, el SRC proporciona comandos comunes para operar con todos sus subsistemas: disponemos de las órdenes startsrc y stopsrc para arrancar y detener - respectivamente - tanto subsistemas completos como subservidores de los mismos de forma independiente, y de traceson y tracesoff para activar o desactivar el trazado de los mismos; la orden refresh `refresca' un subsistema (algo similar a enviarle una señal SIGHUP), mientras que mediante lssrc podemos consultar el estado de un subsistema. Por ejemplo, para detener el subservidor telnetd en nuestro sistema no tenemos que recurrir - aunque podríamos hacerlo - a chsubserver (como vimos al inicio de este punto aplicando el ejemplo al subservidor chargen); una forma equivalente de hacerlo es simplemente ejecutando la siguiente orden:
bruja:/# startsrc -t telnet
0513-124 The telnet subserver has been started.
bruja:/# grep -w telnet /etc/inetd.conf
telnet  stream  tcp6    nowait  root    /usr/sbin/telnetd      telnetd -a
bruja:/# stopsrc -t telnet
0513-127 The telnet subserver was stopped successfully.
bruja:/# grep -w telnet /etc/inetd.conf
#telnet  stream  tcp6    nowait  root    /usr/sbin/telnetd      telnetd -a
bruja:/#
© 2002 Antonio Villalón Huerta