Thu, 04 Oct 2012 20:30:05 +0200
Correct out of date build configuration, porting to Solaris 11 network
link infrastructure and new libpcap logic. This additionally allows for
device drivers in subdirectories of /dev. Correct packaged nmap
personalities and signatures to work out of the box. Finally, hack
arpd logic to properly close sockets and quit on TERM by repeating
signaling in the run command script. Sadly, all this fails to correct
the run time behaviour of honeyd which fails to bind to the IP layer.
michael@13 | 1 | ## |
michael@13 | 2 | ## uuid -- OpenPKG UUID Update Utility |
michael@428 | 3 | ## Copyright (c) 2000-2012 OpenPKG GmbH <http://openpkg.com/> |
michael@13 | 4 | ## |
michael@428 | 5 | ## This software is property of the OpenPKG GmbH, DE MUC HRB 160208. |
michael@428 | 6 | ## All rights reserved. Licenses which grant limited permission to use, |
michael@428 | 7 | ## copy, modify and distribute this software are available from the |
michael@428 | 8 | ## OpenPKG GmbH. |
michael@13 | 9 | ## |
michael@428 | 10 | ## THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED |
michael@13 | 11 | ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
michael@13 | 12 | ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
michael@13 | 13 | ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR |
michael@13 | 14 | ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
michael@13 | 15 | ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
michael@13 | 16 | ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
michael@13 | 17 | ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
michael@13 | 18 | ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
michael@13 | 19 | ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
michael@13 | 20 | ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
michael@13 | 21 | ## SUCH DAMAGE. |
michael@13 | 22 | ## |
michael@13 | 23 | |
michael@13 | 24 | =pod |
michael@13 | 25 | |
michael@13 | 26 | =head1 NAME |
michael@13 | 27 | |
michael@13 | 28 | B<openpkg uuid> - OpenPKG UUID Update Utility |
michael@13 | 29 | |
michael@13 | 30 | =head1 SYNOPSIS |
michael@13 | 31 | |
michael@13 | 32 | B<openpkg uuid> [B<--verbose>] [B<--multicast>] B<reset>|B<update>|B<info> |
michael@13 | 33 | |
michael@13 | 34 | =head1 DESCRIPTION |
michael@13 | 35 | |
michael@13 | 36 | The B<openpkg uuid> command is the maintenance utility for the DCE 1.1 |
michael@13 | 37 | and ISO/IEC 11578:1996 compliant I<Universally Unique Identifiers> |
michael@13 | 38 | (UUID) of an B<OpenPKG> instance. It is internally based on B<OSSP |
michael@13 | 39 | uuid>. |
michael@13 | 40 | |
michael@13 | 41 | UUIDs are 128 bit numbers which are intended to have a high likelihood |
michael@13 | 42 | of uniqueness over space and time and are computationally difficult |
michael@13 | 43 | to guess. They are globally unique identifiers which can be locally |
michael@13 | 44 | generated without contacting a global registration authority. UUIDs are |
michael@13 | 45 | intended as unique identifiers for both mass tagging objects with an |
michael@13 | 46 | extremely short lifetime and to reliably identifying very persistent |
michael@13 | 47 | objects across a network. The three classical UUID variants are DCE 1.1 |
michael@13 | 48 | UUIDs of version 1 (time and node based), version 3 (name based) and |
michael@13 | 49 | version 4 (random number based). |
michael@13 | 50 | |
michael@13 | 51 | For an B<OpenPKG> instance, three different UUIDs are used: |
michael@13 | 52 | |
michael@13 | 53 | =over 3 |
michael@13 | 54 | |
michael@13 | 55 | =item 1. B<OpenPKG Registry> (C<UUID_REGISTRY>) |
michael@13 | 56 | |
michael@13 | 57 | This is a version 1 UUID which uniquely identifiers the B<OpenPKG> |
michael@13 | 58 | instance for global registration purposes. It is generated just once in |
michael@13 | 59 | the lifetime of the B<OpenPKG> instance. The value of this UUID cannot |
michael@13 | 60 | be recalculated deterministically. |
michael@13 | 61 | |
michael@13 | 62 | =item 2. B<OpenPKG Instance> (C<UUID_INSTANCE>) |
michael@13 | 63 | |
michael@13 | 64 | This is a version 3 UUID which summarizes the B<OpenPKG> |
michael@13 | 65 | instance parameters. Currently the values of the following |
michael@13 | 66 | particular OpenPKG RPM macros are uses as input: |
michael@13 | 67 | |
michael@13 | 68 | %{l_openpkg_release} %{l_prefix} |
michael@13 | 69 | %{l_susr} %{l_suid} %{l_sgrp} %{l_sgid} |
michael@13 | 70 | %{l_musr} %{l_muid} %{l_mgrp} %{l_mgid} |
michael@13 | 71 | %{l_rusr} %{l_ruid} %{l_rgrp} %{l_rgid} |
michael@13 | 72 | %{l_nusr} %{l_nuid} %{l_ngrp} %{l_ngid} |
michael@13 | 73 | |
michael@13 | 74 | The value of this UUID can be recalculated deterministically and will |
michael@13 | 75 | not chance as long as none of the values of the above macro do not |
michael@13 | 76 | change. This UUID can be used for detecting OpenPKG release upgrades, |
michael@13 | 77 | accidentally changed UIDs or GIDs, etc. Notice that version 3 UUIDs are |
michael@13 | 78 | message digests (actually MD5 based) and so are one-way functions which do |
michael@13 | 79 | not allow one to recalculate the input values from the UUID. |
michael@13 | 80 | |
michael@13 | 81 | =item 3. B<OpenPKG Platform> (C<UUID_PLATFORM>) |
michael@13 | 82 | |
michael@13 | 83 | This is a version 3 UUID which summarizes the B<OpenPKG> platform |
michael@13 | 84 | parameters. Currently the OpenPKG RPM platform id plus the FQDN and IP |
michael@13 | 85 | address of the underlying host are used as input. This UUID can be used |
michael@13 | 86 | for detecting operating system and host changes. Notice that version |
michael@13 | 87 | 3 UUIDs are message digests (actually MD5 based) and so are one-way |
michael@13 | 88 | functions which do not allow one to recalculate the input values from |
michael@13 | 89 | the UUID. |
michael@13 | 90 | |
michael@13 | 91 | =back |
michael@13 | 92 | |
michael@13 | 93 | =head1 OPTIONS |
michael@13 | 94 | |
michael@13 | 95 | =over 4 |
michael@13 | 96 | |
michael@13 | 97 | =item B<--verbose> |
michael@13 | 98 | |
michael@13 | 99 | Print verbose messages during operation. |
michael@13 | 100 | |
michael@13 | 101 | =item B<--multicast> |
michael@13 | 102 | |
michael@13 | 103 | Generate a random multicast MAC address instead of using the real IEEE |
michael@13 | 104 | 802 MAC address of the underlying host when generating the version 1 |
michael@13 | 105 | UUID C<UUID_REGISTRY>. |
michael@13 | 106 | |
michael@13 | 107 | =back |
michael@13 | 108 | |
michael@13 | 109 | =head1 COMMANDS |
michael@13 | 110 | |
michael@13 | 111 | =over 4 |
michael@13 | 112 | |
michael@13 | 113 | =item B<reset> |
michael@13 | 114 | |
michael@13 | 115 | This resets the three UUIDs C<UUID_REGISTRY>, C<UUID_INSTANCE> and |
michael@13 | 116 | C<UUID_PLATFORM> to the "Nil UUID". They are then automatically |
michael@13 | 117 | regenerated within one day if already done explicitly afterward with |
michael@13 | 118 | "C<openpkg uuid update>". |
michael@13 | 119 | |
michael@13 | 120 | =item B<update> |
michael@13 | 121 | |
michael@13 | 122 | This updates the three UUIDs C<UUID_REGISTRY>, C<UUID_INSTANCE> and |
michael@13 | 123 | C<UUID_PLATFORM> to the "Nil UUID". C<UUID_REGISTRY> is kept unless it |
michael@13 | 124 | is the "Nil UUID" (see "C<openpkg uuid reset>" command above). The UUIDs |
michael@13 | 125 | C<UUID_INSTANCE> and C<UUID_PLATFORM> are updated only if their input |
michael@13 | 126 | values (and this way the resulting UUIDs) have changed. This operation |
michael@13 | 127 | is performed daily automatically. |
michael@13 | 128 | |
michael@13 | 129 | =item B<info> |
michael@13 | 130 | |
michael@13 | 131 | This print summary page of identification information, including all |
michael@13 | 132 | UUIDs and all of their calculation inputs. |
michael@13 | 133 | |
michael@13 | 134 | =back |
michael@13 | 135 | |
michael@13 | 136 | =head1 FILES |
michael@13 | 137 | |
michael@13 | 138 | The three UUIDs of the B<OpenPKG> instance are stored in the file |
michael@13 | 139 | C<@l_prefix@/etc/openpkg/uuid> in Bourne-Shell syntax. An example |
michael@13 | 140 | content is: |
michael@13 | 141 | |
michael@13 | 142 | UUID_REGISTRY="81eca44e-4d18-11d8-a837-0090272ff725" |
michael@13 | 143 | UUID_INSTANCE="c55a8d2d-31bb-3ae0-9edb-68337af61acc" |
michael@13 | 144 | UUID_PLATFORM="05ec2532-9e3f-37dc-a7ed-b291c2c463ed" |
michael@13 | 145 | |
michael@13 | 146 | =head1 CAVEATS |
michael@13 | 147 | |
michael@13 | 148 | By default and in full compliance with DCE 1.1 and ISO/IEC 11578:1996, |
michael@13 | 149 | the OpenPKG Registry UUID (C<UUID_REGISTRY>) contains the IEEE 802 MAC |
michael@13 | 150 | address of the underlying host. If this is not acceptable by local |
michael@13 | 151 | security policies you can easily at any time generate a new OpenPKG |
michael@13 | 152 | Registry UUID with a random multicast MAC address instead by running: |
michael@13 | 153 | |
michael@13 | 154 | $ openpkg uuid reset |
michael@13 | 155 | $ openpkg uuid --multicast update |
michael@13 | 156 | |
michael@13 | 157 | =head1 SEE ALSO |
michael@13 | 158 | |
michael@13 | 159 | B<OSSP uuid> E<lt>http://www.ossp.org/pkg/lib/uuid/E<gt>. |
michael@13 | 160 | |
michael@13 | 161 | =head1 HISTORY |
michael@13 | 162 | |
michael@13 | 163 | The B<openpkg uuid> command first appeared in B<OpenPKG 2.0>. |
michael@13 | 164 | |
michael@13 | 165 | =cut |
michael@13 | 166 |