dhcp_probe NEWS - history of user-visible changes. See the file ChangeLog for the details of all changes. Version 1.3.0 - March 9 2009, by Irwin Tillman * The "received unexpected response ..." message passed to syslog() now always ends with a period. If you parse this message, you may need to update your code. * New optional 'alert_program_name2' configuration file statement. This works like the older 'alert_program_name', but calls an alert program using a different syntax, intended to be extensible. (The existing 'alert_program_name' called an alert program using positional arguments, so was not extensible without breaking existing alert programs. That limited our ability to enhance dhcp_probe to pass additional information to the alert program. The new 'alert_program_name2' calls an alert program using options.) The older optional 'alert_program_name' statement continues to be supported and unchanged. If you are using that, you need not change. However, you may wish to upgrade to the new alert_program_name2; if you do so, you will need to replace or revise the alert program so it supports the new call syntax. See "New dhcp_probe_notify2 program" item below. You may not specify both an alert_program_name and an alert_program_name2 in the same configuration file. * New dhcp_probe_notify2 program. This program is like the older dhcp_probe_notify program (which continues to be supported), but supports the new syntax expected by the new 'alert_program_name2' configuration file statement. If you are currently using the supplied dhcp_probe_notify alert program, and you have not modified it (other than to update the definitions at the top), you should be able to switch to the new dhcp_probe_notify2 easily; you will need to replace the alert_program_name statement in your configuration file with the alert_program_name2 statement, specify alert program dhcp_probe_notify2 instead of dhcp_probe_notify2, and customized the definitions at the top of dhcp_probe_notify2 to match the definitions you customized in dhcp_probe_notify. dhcp_probe_notify2 also accepts a new option so it can report a 'yiaddr' value when the new "Lease Networks of Concern" feature is triggered. * New "Lease Networks of Concern" feature. This is intended to add more text to the messages logged (and via alerts) when a rogue DHCP server is distributing IP addresses that fall into network ranges of special concern -- for example, *your* networks' IP ranges. Most rogue DHCP servers distribute IP addresses associated with a private network, or NAK legitimate clients. Rogue DHCP servers that distribute your own network's addresses may be of special concern. To activate this new feature, add 'lease_network_of_concern' statements to the configuration file to specify network ranges. When dhcp_probe detects a response from a rogue DHCP server, if the response's yiaddr field is non-zero and falls within any of the "Lease Networks of Concern", that fact will be reported. Specifically, the "received unexpected response ..." message sent to syslog() will be extended to add additional text reporting the value of the yiaddr field. And if you have specified an 'alert_program_name2' in the configuration file, that alert program will be called with the new '-y yiaddr' option. (If you are still using the older 'alert_program_name', the alerts will not contain this additional information, as the old alert_program_name doesn't support this change.) * New "legal_server_ethersrc" test. The program traditionally compares the IP source address of response packets to the values specified by "legal_server" statements in the configuration file. Any response with an IP source address that doesn't appear as a legal_server is treated as a rogue server. The new legal_server_ethersrc configuration statement allows you to also check the Ethernet source address of response packets. If you do not specify any legal_server_ethersrc statements, the program continues to behave as it has in the past. If you specify one or more legal_server_ethersrc statements, the program will check the Ethernet source address of response packets to verify they appear among those listed. Any response from an unlisted Ethernet source address is treated as a rogue server. This test is done in addition to the legal_server test. So if you specify by legal_server and legal_server_ethersrc statements, a response's IP source and Ethernet source addresses are both checked; if either is missing from those you specified, the response is treated as a rogue. This new test is considered experimental in version 1.3.0, as it has received only limited testing. Version 1.2.2 - October 15 2008, by Irwin Tillman * The default name of the pid file has changed from /etc/dhcp_probe.pid to /var/run/dhcp_probe.pid. You can still override the default by specifying the '-p pidfile' command line option. * New -T option to enable the 'socket receive timeout' feature. This may work around a problem on some platforms where the program waits forever for responses after sending a probe packet. This new feature does not work on all platforms. * When exiting, the program will more consistently log an "exiting" message. Version 1.2.1 - February 28 2008, by Irwin Tillman * No user-visible changes. Version 1.2.0 - March 14 2007, by Irwin Tillman * Upgraded autoconf and automake, may build on newer systems. * Allow you to add 802.1Q VLAN ID to outgoing frames. Version 1.1.0 - November 10 2004, by Irwin Tillman * Upgraded from the libnet 1.0.x API to the libnet 1.1.x API. We no longer support the libnet 1.0.x API. To compile this version, you must first upgrade libnet to 1.1.2.1. Additionally, you must modify libnet to add a libnet_cq_end_loop() function, as described in our INSTALL document. Version 1.0.7 - November 2 2004, by Irwin Tillman * No user-visible changes. Version 1.0.6 - August 24 2004, by Irwin Tillman * Upgraded autoconf and automake, may build on newer systems. Version 1.0.5 - August 24 2004, by Irwin Tillman * We make some effort to ignore BootP/DHCP responses we happen to capture that aren't actually in response to our probe (we check htype, hlen, and chaddr fields). Version 1.0.4 - May 2002, by Irwin Tillman * We should be able to compile under gcc 3.0.x now. Version 1.0.3 - February 2001, by Irwin Tillman * No user-visible changes. Version 1.0.2 - January 2001, by Irwin Tillman * Cleanup of some of the configuration code. You may now specify where libnet and libpcap libraries and includes are located. Version 1.0.1 - August 2000, by Irwin Tillman * Added alert_program_name feature, so you may specify an external program to run each time a response is received from an unexpected server. Version 1.0.0 - June 2000, by Irwin Tillman * first version