Commit graph

7 commits

Author SHA1 Message Date
Jonathan A. Kollasch
4487af7565 Update to remctl-2.15.
Changes since 2.14:

 Allow subcommand to be omitted on the remctl command line, which
 sends a command without a subcommand. This makes available on the
 command line functionality that was already available via the
 library API.

 Add the special keyword EMPTY for the subcommand field in the
 remctld configuration file, specifying that this line should only
 match commands with no subcommands.

 Allow use of ALL in the command field in the remctld configuration
 file as well as the subcommand field, matching all commands.

 Fix read of uninitialized memory caused by moving one character
 beyond the beginning of the buffer when parsing blank lines in
 ACL files.

 Use a socket_type typedef rather than int directly to store the
 file descriptors of sockets and, on Windows, typedef that to SOCKET
 instead of int. Update the function signatures of the network
 utility functions appropriately. Compare socket_type variables
 against an INVALID_SOCKET define instead of -1. Fixes portability
 issues to 64-bit Windows. Thanks, Jeffrey Altman.

 For the Windows build, get the current version number from
 configure.ac rather than configure so that the Windows build
 scripts work from a Git checkout. Link with the correct GSS-API
 library for 64-bit Windows builds. Correct or suppress multiple
 warnings. Thanks, Jeffrey Altman.

 Enable Automake silent rules. For a quieter build, pass the
 --enable-silent-rules option to configure or build with make V=0.

 Update to rra-c-util 2.1:

 * Revert separation of die into a separate object file.
 * Fall back on manual library probing if krb5-config doesn't work.
 * Don't try to use a non-executable krb5-config for GSS-API probes.
 * Suppress error output from krb5-config GSS-API probes.
 * Prefer KRB5_CONFIG over a path constructed from --with-gssapi.
 * Fix network test suite failures when IPv6 is available but disabled.

 Update to C TAP Harness 1.1:

 * Summarize results at the end of test execution.
2010-02-05 21:36:22 +00:00
Jonathan A. Kollasch
4b419a832d Update to remctl 2.14
changelog:

remctl 2.14 (2009-05-22)

   The remctld configuration file may now specify that one argument to a
   command is passed on standard input instead of on the command line using
   the stdin= option. This option allows passing data to commands that's too
   long to fit into a command-line argument or that contains nul characters.

   remctld logging of commands or arguments now replaces unprintable
   characters (characters between ASCII 0 and 31 and ASCII 127) with periods
   rather than assuming syslog will cope with them correctly.

   Use command and subcommand as the names for the first two parameters to
   the remctl client and the first two strings in a remctl command instead of
   the unintuitive "type" and "service" terminology borrowed from sysctl.
   This only changes documentation and some internal variable names; no
   external APIs should be affected.

   Declare message_fatal_cleanup extern in util.h. Fixes compilation problems
   on Mac OS X and probably elsewhere.

   Diagnose and explicitly reject on the server nul characters in command
   arguments that don't support them rather than truncating the argument
   silently.

   Plug several memory leaks in the remctld server. (These would have little
   practical effect unless a client stayed connected and issued multiple
   commands.)

   The protocol now permits commands with no arguments. remctld currently
   doesn't support them, but now returns ERROR_UNKNOWN_COMMAND instead of
   ERROR_BAD_COMMAND when receiving one.

   Add documentation on extending remctl in docs/extending.

   Add initial protocol version three draft in docs/protocol-v3.

   Better check logmask options when parsing the server configuration file
   and report errors instead of silently ignoring them. Masking the command
   is also no longer supported (it previously worked by accident).

   Support building against Solaris 10's native generic GSS-API libraries.
   Thanks, Peter Eriksson.

   Update to rra-c-util 1.0:

     * Fix open call parameters in daemon portability test.
     * Fix AI_ADDRCONFIG portability on BSD/OS systems.
     * Split die into a separate object to not link it in shared libraries.
     * Don't break if the user clobbers CPPFLAGS at build time.
     * Correctly set -L options with --with-gssapi-lib, not -I.
     * Change AC_TRY_* to AC_*_IFELSE as recommended by Autoconf.
     * Update portable and util test suite for C TAP Harness 1.0.
     * Use native Kerberos instead of forking kinit in test suite.

   Update to C TAP Harness 1.0:

     * Rewrite of all test cases to use the new TAP library support.
     * Much improved and simplified builddir != srcdir test suite support.
     * Support running a single test with tests/runtests -o.
     * Correctly handle completely skipped tests, like client/pod.
     * Better reporting of fatal errors in the test suite.
2009-05-23 15:49:21 +00:00
Jörg Sonnenberger
50f485b714 Convert buildlink3.mk files to new world order. 2009-03-20 19:43:38 +00:00
Jonathan A. Kollasch
0cf550ae9f update to remctl-2.13
changes since 2.11:

 If no server principal is specified on the remctl command line or
 in the remctl() or remctl_open() C or Perl library interfaces,
 remctl now uses a host-based service name for the server instead
 of a Kerberos principal of host/server. The practical effect of
 this is that domain-realm mapping rules will be applied rather
 than assuming the server's principal is in the local domain and,
 for the C and Perl library interfaces, server name canonicalization
 will be done if configured in the GSS-API library. Users of the
 C or Perl library interfaces will find that remctl now authenticates
 to a principal for the host after a forward and reverse DNS lookup
 instead of the host specified in the API call with most GSS-API
 libraries. To disable this canonicalization behavior, see your
 GSS-API library documentation; setting rdns in [libdefaults] to
 false works for MIT Kerberos. The remctl command-line client
 continues to canonicalize its host argument always prior to any
 network connection or GSS-API calls.

 Add documentation of hostname canonicalization and the choice of
 authentication principals to the remctl client, remctl() and
 remctl_open() C API, and Net::Remctl Perl API documentation.

 Fix a place in libremctl where the library would call exit rather
 than returning an error on memory allocation failure.

 Standardize on lowercase first characters in library error strings.

 Include the Windows port of the client done by Matthew Loar. See
 README for information on requirements and compilation. Only the
 client shared library and command-line utility are supported or
 built currently. I cannot easily test this code and probably broke
 it when integrating the patch; please report any problems so that
 they can be fixed in subsequent releases.

 When running the server in standalone mode, set the network file
 descriptors close-on-exec so that they're not inherited by commands
 run by remctl. Also close the low-numbered file descriptors before
 running a command to catch the replay cache file, which isn't
 marked close-on-exec in older versions of MIT Kerberos.

 When passing a variable set to undef into remctl_open in the Perl
 API, the principal was converted to the empty string. Adjust
 Net::Remctl to recognize the empty string as an unspecified
 principal.

 The configure option to specify the path to the GSS-API libraries
 is now --with-gssapi instead of --with-kerberos and the GSS-API
 probes should be more robust.

 Delete the man page symlinks before recreating them so that
 reinstalls work. Thanks, Nicholas Riley.

 Belatedly bump the libtool versioning for libremctl for the port
 number change in the previous release. (This is primarily for
 documentation purposes and doesn't change the library SONAME.)

 Add support for ACL methods in the remctld server. The supported
 schemes in this release are file and princ, which together provide
 the same functionality as earlier releases, plus deny to explicitly
 reject a user who matches another ACL and support for the CMU GPUT
 authorization system. There is now a framework in place for adding
 new ACL methods in the future. This work was contributed by Jeffrey
 Hutzelman.


changes since 2.12:

 When processing the include of a directory for configuration files
 or ACL files, limit the files read to those whose names contain
 only characters in [a-zA-Z0-9_-]. This replaces the previous
 exclusion of files containing periods and also excludes Emacs
 backup and temporary files. Thanks, Timothy G. Abbott.

 Add a PHP remctl PECL module from Andrew Mortensen, enabled with
 --enable-php at configure time. These bindings are only tested
 with PHP 5.

 Add Python bindings from Thomas L. Kula, enabled with --enable-python
 at configure time. These bindings are tested with Python 2.5 but
 should work with versions back to 2.3.

 Include all *.class files in the JAR file built by java/Makefile,
 making the resulting JAR actually useful. Thanks, Marcus Watts.

 Add an ant build configuration for the Java remctl implementation.
 It also has the capability to generate a distribution of just the
 Java implementation using a file layout more similar to an Apache
 Jakarta project than the layout of the java subdirectory.

 Several Windows fixes from Matthew Loar, plus really include
 portable/winsock.c in the distribution. This version should now
 build and run on Windows.

 With --with-gssapi, attempt to determine if the library directory
 is lib32 or lib64 instead of lib and set LDFLAGS accordingly.
 Based on an idea from the CMU Autoconf macros.

 Add --with-gssapi-include and --with-gssapi-lib options to set
 the include and library paths separately if needed.

 Restore GSS-API portability checks for old versions of MIT Kerberos
 accidentally dropped in the previous release.

 Provide a proper bool type when built with Sun Studio 12 on Solaris
 10. Thanks, Jeffrey Hutzelman.

 Sanity-check the results of krb5-config before proceeding and
 error out in configure if they don't work.

 Fix Autoconf syntax error when probing for libkrb5support. Thanks,
 Mike Garrison.

 Create the docs directory in the build tree if it's missing, fixing
 a build failure when builddir != srcdir. Thanks, Jeffrey Hutzelman.

 In standalone mode, close the main server socket immediately in
 the child handler processes. Since the socket was already marked
 close on exec, this probably only matters for consistent test
 suite results, ensuring that the port is released immediately,
 but it's more correct.
2009-01-04 22:50:58 +00:00
Jonathan A. Kollasch
9f9ff9ad3f Add a buildlink3.mk. Just in case anyone happens to need it for their
own local packages.  Thanks to TPROA and pkgtools/createbuildlink.
2008-01-27 02:07:52 +00:00
Jonathan A. Kollasch
3a460b77d6 Update to 2.11. 2007-11-12 00:05:43 +00:00
Jonathan A. Kollasch
156aa03f02 remctl (the client) and remctld (the server) implement a client/server
protocol for running single commands on a remote host using Kerberos
v5 authentication and returning the output. They use a very simple
GSSAPI-authenticated network protocol, combined with server-side ACL
support and a server configuration file that maps remctl commands to
programs that should be run when that command is called by an
authorized user. remctld is very similar to a CGI server that uses a
different network protocol than HTTP and always does strong
authentication before executing the desired command.
2007-04-21 01:26:08 +00:00