Subject: pkg/26608: cfengine 2.1.9 update
To: None <gnats-bugs@gnats.NetBSD.org>
From: None <mike@ethmoid.org>
List: pkgsrc-bugs
Date: 08/09/2004 22:15:04
>Number: 26608
>Category: pkg
>Synopsis: update to cfengine 2.1.9
>Confidential: yes
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: change-request
>Submitter-Id: net
>Arrival-Date: Tue Aug 10 02:34:01 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator: Michael Santos
>Release: NetBSD 2.0G
>Organization:
>Environment:
System: NetBSD ack 2.0G NetBSD 2.0G (ack) #55: Thu Aug 5 16:00:24 EDT 2004 root@ack:/home/build/src/sys/arch/i386/compile/obj/ack i386
Architecture: i386
Machine: i386
>Description:
Update to cfengine 2.1.9.
Tested under NetBSD -current/Solaris 8.
2.1.9
Expand buffer incorrectly zeroed out public name key causing empty keyname in RSA dialogue
Old style bind reverse lookup added to Hostname2IPAddress
2.1.8
Additional checks added to bolster server transaction security.
Fix of bug in copy server variable list expansion (unexpanded variables) introduced in 2.1.7
Typo in locks fixed
Mutex deadlock fix in cfservd for systems with up to date POSIX implementations.
QNX class data added
Syslog facility patches to cfservd. (Leonardo Helman)
Fix to avoid recursive imports
Variables were not expanded in PrepModule
Symbolic links were not tidied
Missing initializations in links could dump core
Logging route switching bug in disk/required fixed
Bugs in implementation of remote method protocol. Classes were not
transferred properly.
Bug in HostnameKeys for cfrun fixed.
2.1.7p1
Bug in resolv node introduced in 2.1.7. Ordering of
nameservers was reverse.
2.1.7
Mandrake Linux detect patch
Unbelievably no documentation about strategies ever found its way
into the manual!! Fixed.
Sorting of anomaly histogram data
Date patch for SMTP in cfexecd
Bugfix for TTime filters in ParseTTime() - submitted Bob B. Crosbie.
Trinity Centre for High Performance Computing,
ReplaceFirst function to replace first occurrence of a string in line.
Umask saving patch in editfiles (Sergio Gelato)
Patch for variable socket length structs (BSD)
Apparent bug in local methods from recent change. Name localhost
would be converted into an address which would then fail to match hail.
Iteration over server= variable in copy added
Iteration over resolver variables added
Bug in class evaluation was introduced in 2.1.6 by a sorting
algorithm. Some classes would evaluate to false even though true.
Default route setting has been broken in linux for a long time.
A workaround has been added using the shellcommand /sbin/route
Bug in rmdirs in tidy - old type mismatch corrected. Might cause
cfengine to delete an empty root-search directory undesirably.
Some bizarre coding in the resolver section replaced. Could lead
to incomplete class data.
Added option SkipIdentify = ( true ) for avoiding DNS lookup in
client side authentication.
Bug in method evaluation if peers have inconsistent resolvers and
cannot agree on whether to use IPv6/v4.
ReadList() function added to control for reading an iterator
from a file
2.1.6
Patch for incorrect symbolic link resolution with ".." internals.
Would chop off a leading slash.
Patches for alerts appearing twice. InitAction added in install.c
--with-docs option added and default is to not build the docs
Change to df.c to avoid rounding errors in small blocks for linux
wait status patch for returnszero()
dpkg debian package management support (Morten Werner)
tidy rmdirs=all did not remove top directory since v2.0.0. Fixed.
Problem was new method to aviod races can never reach this location,
so have to use absolute path for top dir.
DARWIN patches to cfservd.c/ip.c to fix definitions
Separate ExpandVarstring buffer-size with new expandsize value
This removes some spurious use of VBUFF scratch space. One bug
in tidy path expansion found here. Variables were not expanded.
2.1.5
KNOWN BUG in persistent state memory for tcpdump data - long ipv6
addresses can make a byte count > old for fewer incoming so it remembers
wrong snapshot
Double DeleteParser() fixed.
Code cosmetics:
Annoying tabs removed from sources
bzero -> memset explicitly
bcopy -> memcpy
Segmentation fault in list handling fixed (seldom occurrence)
2.1.4
"Bug" found in method recognition - only constant parameters allowed.
Time of day or relative hostames as parameters will not work
Mutexes around locking now.
Variable expansion of server deferred in copy to allow dynamic server choice
Removed old dns lookup caching for ipv4 - means no prior check for existing hostnames,
but allows running with dynamical variables
-q option added to cfexecd. If set it invokes cfagent with -q flag (--no-splay)
Rewritten function analysis for multiple arguments in assignments
ReadTable() and ReadArray() functions to read associative arrays from files
hpux class changed from 9000* to * in class matching. Assume old versions now dead
tcpdump interface for cfenvd
Attempt to detect ipv6 address from ifconfig on unix and add classes. Cannot yet bind to interface.
Make internal list representation of IP addresses.
Error in -f evaluation introduced in recent version fixed.
Bind to outgoing interface implemented for new getaddrinfo libs functions.
Same of fior cfservd
BindToInterface = ( )
editfiles additions:
DeleteLinesContainingFileItems @var{filename}
DeleteLinesMatchingFileItems @var{filename}
DeleteLinesStartingFileItems @var{filename}
DeleteLinesNotContainingFileItems @var{filename}
DeleteLinesNotMatchingFileItems @var{filename}
DeleteLinesNotStartingFileItems @var{filename}
AppendIfNoSuchLinesFromFile @var{filename}
Special function added to alerts:
FriendStatus(hours)
shows hosts that have not reported in for hours.
2.1.3
Voluntary RPC remote methods implemented.
Bug in ignore when doing file recursion fixed.
Wildcard match did not include plain files when expanding wildcards
Internal array representation added to expression evaluation
$(array[key]) $(array[$(key)])
Arrays may be defined using the association function:
assoc_array = ( A(B,"is for bird") A(C,"is for cat") )
2.1.2
Various minor patches
singlecopy locking patch (Eric Sorenson)
Patches Iain Morgen (NASA)
cfexecd add From line to mail
RegCmp(regex,$listvar) function added to match classes
Documentation of iteration added to reference manual - was missing.
Domain variable was overwritten in 2.1.0 when methods were initialized. Corrected.
Cfexecd #ifdefs not compatible with cygwin - rewritten workaround
Entropy measure anomaly classes
Comparator uninitialized in process matches, creating bogus outout with -d3
Chop function removes all trailing spaces.
interfaces now records ip addreses
Variables can override context using a dot notation:
${context.variable} ${global.env_time}
Interface addresses on multiple interfaces:
${global.ipv4[hme0]}
${global.ipv4[eth1]}
cfservd list handling bugs after user patch, plus enchanced iteration:
e.g. now make multiple rules in a sinlgle stanza
control:
Split = ( " " )
hostlist = ( "10.10.10.1 10.10.10.2 10.10.10.3" )
dirs = ( "bin etc lib" )
base = ( /usr )
#########################################################
admit:
$(base)/$(dirs) $(hostlist)
results in:
Path: /usr/bin (encrypt=0)
Admit: 10.10.10.1 10.10.10.2 10.10.10.3 root=
Path: /usr/etc (encrypt=0)
Admit: 10.10.10.1 10.10.10.2 10.10.10.3 root=
Path: /usr/lib (encrypt=0)
Admit: 10.10.10.1 10.10.10.2 10.10.10.3 root=
Allow modules during parsing to initialize classes etc.
control:
gotinit = ( PrepModule(startup1,"arg1 arg2...") )
classes:
gotinit = ( PrepModule(startup2,"arg1 arg2"}) )
2.1.1
Permissions on explicitly mentioned links to files could result in file permission
being changed instead.
Error in permission evaluation for copied files fixed.
Mac OSX finder patches added
ID classes rationalized into nameinfo.c
scanarrivals option to disks/required - for research.
Improved anomaly analysis.
setting repository in cfservd.conf caused crash - fixed.
& is now a synonym for "." - the AND operator in class evaluation
! negation of functions in class assignments is now handled
New option noabspath=true for copy allows one to override the need for
a full path in certain situations, e.g. "export A=x; /dothis""
Redhat 9 class names patch JY.
Case insensitive domain matching
2.1.0
************************************************************************************
* * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * * * * * * * * *
Main addition to 2.1.0 is * methods *. Methods replace modules for most applications
=========
* * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * * * * * * * * *
************************************************************************************
Error in cfenvd update policy for huge anomalies. Could never learn large values.
New parser did not pick up restart sequence in processes if not enclosed by quotes.
Bug in AppendIfNoLineMatching - infinite loop is SetLine not set, fixed,
ExecProgram was incorrectly listed as Exec in filters. fixed
Minor alterations to cfenvd policy. Calculational details, and
persistent information now lasts up to 30 minutes.
Patch for red hat enterprise server classes
New variable
HostnameKeys = ( true )
if this is set, public keys are stored as user-hostname rather than
user-ipaddress. This can be useful for dhcp hosts. However, there is
a potential loss of security during key-exchange
due to implicit reliance on DNS or asserted
identity.
------------------------------------------------------------------------------
DeleteItemNotMatching added to editfiles
DeleteItemNotStarting added to editfiles
DeleteItemNotContaining added to editfiles
SyslogFacility = ( ) new variable to alter syslog facility level.
Possible values:
LOG_USER, LOG_DAEMON, LOG_LOCAL0-4
--------------------------------------------------------------------------------
Persistent state memory can be added through a system alert functions:
SetState(name,ttl,policy)
Set a class that acts like a non-resettable timer. It is defined for exactly 10
minutes
SetState("preserved_class",10,Preserve)
Set a class that acts as a resettable timer. It is defined for 10 minutes unless
the SetState call is called again to extend its lifetime.
SetState(non_preserved_class,6,Reset)
Delete a persistent class.
Delete an existing class:
UnsetState(myclass)
--------------------------------------------------------------------------------
rename: is now a synonym for disable: and a new option dest= is added to
these so that you can formally rename a file with any destination, not just suffix ".cfdisabled"
(though this remains the default).
Classes now allowed in group / classes definitions for consistency and ANDing of classes
Added to Alerts to send messages directly and silently to syslog
SysLog(LOG_ERR,"Test syslog message")
--------------------------------------------------------------------------------
b2
cfservd no longer does reverse DNS lookup on keys that do not have to
be trusted, i.e. existing keys whose identity has been confirmed.
Strategy evaluation was performed too late, so that it could not be
used to define variables. Fixed. Now strategies are evaluated as
soon as they are defined,, just define them at the start of the program..
Various minor patches.
2.1.0b1
Patch to packages for non linux rpm
localhost method calls implemented
- todo: multiple methods calls
---------------------------------------------------------------------------------
KNOWN BUGS : Functions cannot contain both subfunctions and spaces in strings
This will not be fixed until the language becomes fixed
---------------------------------------------------------------------------------
Error in init.c erroneously referred to old directory .cfengine instead of .cfagent for
non-root users.
Builtin function ReadFile(filename,maxbytes) allows us to read
a maximum number of bytes from a file into a variable e.g.
control:
mylist = ( ReadFile("/etc/passwd",20) )
Split = ( "_" ) # NOTE careful with split character
myvar = ( ReadFile(/etc/passwd,220) )
>How-To-Repeat:
>Fix:
begin 644 cfengine2.tar.gz
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
B##+(((,,,L@@@PPRR""###+(((,,,G@Z^#_SHO'W`'@``(,,
`
end
>Release-Note:
>Audit-Trail:
>Unformatted: