Man Linux: Main Page and Category List

NAME

       pmsocks - shell wrapper for performance monitoring across firewalls

SYNOPSYS

       pmsocks path [args ...]

DESCRIPTION

       pmsocks  allows  Performance  Co-Pilot  (PCP)  clients running on hosts
       located on the internal side of a TCP/IP  firewall  to  monitor  remote
       hosts on the other side of the firewall.  This assumes the firewall has
       been configured with a compliant sockd daemon and the necessary  access
       controls are satisfied.

CONFIGURATION

       pmsocks  uses  the  tsocks(5)  library, which is not included with PCP.
       You can get tsocks from http://www.progsoc.uts.edu.au/~delius/.

IRIX CONFIGURATION

       On IRIX, pmsocks is simply a shell wrapper that  sets  the  appropriate
       environment  variables  and  then  executes  the path program with args
       arguments (if any).  pmsocks works by setting the _RLD_LIST environment
       variable  (see  rld(1))  to  load a dynamic shared library (see dso(5))
       containing stubs for ‘‘socksified’’  network  library  functions;  This
       ‘‘socksified’’ library is installed at /usr/pcp/lib/libpcp_socks.so.

       There are a number of conditions required for this to be successful and
       the user is strongly  advised  to  read  this  whole  manual  page  (in
       particular  the CAVEAT section below) before attempting to use pmsocks.

       When pmsocks is installed, the /etc/pcp_socks.conf  configuration  file
       is  also  installed  with  minimum  default  settings.   These settings
       specify that socket connections  to  the  local  host  should  be  made
       directly,   without  contacting  any  socks  server  daemon.   This  is
       necessary so that PCP  clients  will  be  able  to  establish  a  local
       connection  to the X(1) server, and use PCP connections, possibly via a
       sockd daemon, to monitor remote hosts.  In the  present  implementation
       of  pmsocks,  non-direct  connections  to  the X(1) server do not work,
       hence if the display is remote, then the remote host  must  be  on  the
       same side of the firewall and /etc/pcp_socks.conf must be configured to
       connect directly to that host.

       The format of /etc/pcp_socks.conf is identical  to  /etc/socks.conf  as
       documented  in  the CSTC-4.2 socks distribution.  This distribution may
       be obtained via information contained in the socks FAQ at
                   ftp://coast.cs.purdue.edu/pub/tools/unix/socks/

       If other socks clients are being used, then it  is  generally  safe  to
       remove   /etc/pcp_socks.conf  and  instead  make  a  symbolic  link  to
       /etc/socks.conf.  The file formats are identical.

       The default configuration  should  be  customized  to  suit  the  local
       environment  so  that  connections to hosts located on the same side of
       the  firewall  as  the  local  host  do  not  use  the   socks   daemon
       unnecessarily.  The default configuration is

          direct LOCALHOSTNAME 255.255.255.255 # direct localhost
          sockd 0.0.0.0 0.0.0.0 # contact sockd everywhere else

       Note  that  the  string LOCALHOSTNAME is dynamically substituted at run
       time with the name of  the  local  host,  as  obtained  by  a  call  to
       gethostname(2).   Assuming  the  real  IP  address of the local host is
       1.2.3.4 and that a normal class-c subnet  is  used  locally,  the  most
       common  customization  would  be  to specify direct connections for all
       hosts on the local subnet, by  inserting  another  ‘‘direct’’  line  as
       follows:

          direct LOCALHOSTNAME 255.255.255.255 # direct localhost
          direct 1.2.3.0 255.255.255.0 # direct on local subnet
          sockd 0.0.0.0 0.0.0.0 # contact sockd everywhere else

       The order of lines is important - the first line matching the requested
       destination IP address during a connect(2) call (after the requested IP
       address   has   been   masked   by   the   third   parameter   of   the
       /etc/pcp_socks.conf line), specifies via the first parameter whether to
       contact the socks daemon or whether to attempt a direct connection.

IRIX ENVIRONMENT VARIABLES

       There are several environment variables used by pmsocks as follows:

       SOCKS_SERVER
                 Specifies the host name or IP address of the host running the
                 sockd daemon.  Usually this is the name of the firewall host.

       SOCKS_PORT
                 The   TCP/IP  port  to  use  when  contacting  sockd  on  the
                 SOCKS_SERVER host.  The default is 1080.

       SOCKS_NS  The host name of the name server to use, usually  to  resolve
                 the IP address of SOCKS_SERVER.

       SOCKS_DEBUG
                 If  present  in  the  environment,  libpcp_socks  will  print
                 debugging information to the stderr stream.  There  are  only
                 two  levels  of  debugging,  on  or off.  This is only really
                 useful for the developers because the  debugging  information
                 assumes knowledge of the libpcp_socks source code.

       SOCKS_BANNER
                 If  this is set, whenever a client calls libpcp_socks it will
                 echo a message  to  stdout  containing  version  information.
                 This  can  be  useful to check libpcp_socks is working in the
                 absence of verbose logging.

       _RLD_LIST pmsocks         sets         this         to          exactly
                 /usr/pcp/lib/libpcp_socks.so:DEFAULT
                 It is strongly recommended this NOT be set in the environment
                 of interactive shells.

       PMCD_CONNECT_TIMEOUT
                 Specifies  the  time-out,  in  seconds,  for  connections  to
                 pmcd(1).   When  using pmsocks, this may need to be increased
                 from the default (5 seconds) due  to  the  additional  delays
                 introduced  as  a  result  of  using sockd.  See PMAPI(3) for
                 further details about this variable.

CAVEAT

       The following notes should be considered carefully:

       0)   Because sockd  can  only  handle  TCP/IP  sockets,  pmsocks  never
            attempts  to  use  sockd  for sockets of type SOCK_DGRAM or if the
            domain parameter in a call to socket(2) is  PF_UNIX  (unix  domain
            sockets should never need to use sockd anyway).

       1)   Some firewall products do not support ‘‘socksified’’ applications,
            and in these cases, pmsocks cannot be used.  In this case, it will
            be  necessary  to  configure  the  firewall  to  allow connections
            through the firewall for the PMCD communications  port,  typically
            tcp/4321.

       2)   The  PCP  protocol  is  TPC/IP-based  and  works  with  the  socks
            protocol, but connections which use UDP/DATAGRAM sockets or remote
            X11  connections  via  sockd  may not work.  If the remote display
            host is on the same side of the firewall as the application,  this
            may  be circumvented by configuring the remote display host to use
            direct connections - see above.  Also, using X11  display  options
            which  use  shared  memory  may  hang  the X server when used with
            pmsocks.

       3)   If the pmsocks configuration file is  not  present,  then  pmsocks
            will exit with an error message.

       4)   pmsocks  uses  the locally configured name server or resolver (see
            resolver(4)) to resolve host names to IP addresses.  This  may  or
            may  not  be  capable of resolving host names on the other side of
            the firewall.

       5)   When used over a WAN, often the sockd daemon will be  a  long  way
            from  the  application.  This may result in PCP client connections
            timing out before connecting to  the  remote  pmcd.   If  this  is
            occurring,  set the environment variable PMCD_CONNECT_TIMEOUT to a
            higher value than the default (5 seconds).  Refer to PMAPI(3)  for
            further details about this variable.

       6)   When  using  pmsocks  to  connect  to  pmcd(1),  but  Connection
            Refused error messages  are  returned,  it  is  not  immediately
            obvious whether pmcd(1) is returning the error or sockd.

COPYRIGHT NOTICE

       tsocks  is  covered  by  the  GPL license and is copyright Shaun Clowes
       (delius@progsoc.org).

FILES

       /etc/tsocks.conf
                 configuration file

SEE ALSO

       pmcd(1), pminfo(1), pmlogger(1), pmval(1), X(1), PMAPI(3), resolver(5),
       and tsocks(5).