ftp.nice.ch/pub/next/unix/network/system/pidentd.2.7.1.NIHS.tar.gz#/pidentd.pkg/_pidentd/src/pidentd-2.7.1/READMEs

README.DES
 
README.aix
 
README.dynix3
 
README.irix4
 
README.irix5
 
README.next
 
README.next31-m68k-i486
 
README.ptx
 
README.riscos4
 
README.sunos3
 
README.sunos4
 
README.sunos5
 
README.ultrix
 
README.unicos6
 

README.DES

This README.DES file should probably be cleaned up. But for an alpha
release of Pidentd it might do for now.. :-)

Also see the file DES-DOC (included last in this file) for more
information, especially regarding the format of the identd.key file.
Don't believe all I say below about it. DES-DOC is more correct. I'll
write better documentation for a Beta verison of Pidentd 2.3 ...

Do install an encrypting version of Pidentd you'll need to create a
1024 byte big file "/etc/identd.key" that should contain the DES key
Pidentd should use. I created one with:

	dd if=/bin/passwd of=/etc/identd.key bs=1024 count=1

which seemed to work. But then again, I'm not really into this crypto
thing. Anybody know the a correct way to generate a DES key?

Then use the 'idecrypt' command to decrypt to identifier returned.

You can test your Pidentd by installing it and then typing:

	telnet lysator.liu.se 114 | idecrypt

That should translate the encrypted identifier returned into
some usable information (date, uid, local and foreign port and addresses).

/Peter Eriksson <pen@lysator.liu.se>, 23 Feb 1994


Below follows the original letter:


From doligez@lix.polytechnique.fr Wed Feb 23 14:09:41 1994
Flags: 000000000001
Received: from polytechnique.polytechnique.fr (root@polytechnique.polytechnique.fr [129.104.30.1]) by godot.lysator.liu.se (8.6.6.Beta2/8.6.6.Beta2) with ESMTP id OAA12199 for <pen@lysator.liu.se>; Wed, 23 Feb 1994 14:09:22 +0100
Received: from lix.polytechnique.fr (lix.polytechnique.fr [129.104.11.2]) by polytechnique.polytechnique.fr (8.6.4/8.6.4) with SMTP id OAA03246 for <pen@lysator.liu.se>; Wed, 23 Feb 1994 14:16:56 +0100
Received: by lix.polytechnique.fr (5.65/5.65c-IDA-polytechnique)
	id AA10927; Wed, 23 Feb 1994 14:07:56 +0100
Date: Wed, 23 Feb 1994 14:07:56 +0100
From: doligez@lix.polytechnique.fr (Damien Doligez)
Message-Id: <9402231307.AA10927@lix.polytechnique.fr>
To: pen@lysator.liu.se
Subject: Re: pidentd
Keywords: pidentd-crypt


>Yes, please send me the diffs! I would very much like to integrate
>them into the standard pidentd distribution!

I was hoping you would say that.

This is the patch, along with a list of things that I should have done :-)


How to install the patch:
^^^^^^^^^^^^^^^^^^^^^^^^^
- Extract the pidentd-2.2 directory from its distribution.

- Move this file into the pidentd-2.2 directory under the name
  "patch-crypto".

- Go to the pidentd-2.2 directory and type:  patch -p <patch.crypto

- remove the patch.crypto file.


How to compile:
^^^^^^^^^^^^^^^
- Transfer libdes.tar.92-10-13.Z from
         ftp.funet.fi:/pub/crypt/libdes/libdes.tar.92-10-13.Z
  create a pidentd-2.2/libdes directory and extract the tar file in
  that directory.

- Type "make" in the libdes directory.

- Type "make <ostype>" in the pidentd-2.2 directory.


Things to do:   (If you insist, I can do some of these myself.)
^^^^^^^^^^^^^
- Document the crypto option and how it uses libdes in the INSTALL file.

- Do something to #include <des.h> and link with -ldes if libdes is
  already installed on the machine (see libdes/INSTALLATION).

- Change the man page to document the -C option and the format of the
  key file.

- Document the idecrypt command.  The output fields are:
    <date> <uid> <local-IP> <local-port> <remote-IP> <remote-port>

- Change the TODO file to remove the line about encryption.

- Tell the user to compare the outputs of "make" and "make | idecrypt" in
  testdir (in INSTALL).

- Check the portability of the encryption code.  (esp. on 64-bit machines).

- Integrate the make in libdes into the main Makefile.

- Rework the "why-encrypt" document.  Some parts of it should be in the
  man page.

- Find out how secure the CBC encryption without an IV really is.

- crypto.h should have an #ifdef KEY_FILE #endif around it.

- Test the make without the crypto option.  Did I break something ?



==== DES-DOC =================================================================


From doligez@lix.polytechnique.fr Thu Mar 31 13:55:09 1994
Flags: 000000000001
Received: from polytechnique.polytechnique.fr (root@polytechnique.polytechnique.fr [129.104.30.1]) by godot.lysator.liu.se (8.6.7/8.6.6) with ESMTP id NAA04629 for <pen@lysator.liu.se>; Thu, 31 Mar 1994 13:55:01 +0200
Received: from lix.polytechnique.fr (lix.polytechnique.fr [129.104.11.2]) by polytechnique.polytechnique.fr (8.6.4/8.6.4) with SMTP id OAA18795 for <pen@lysator.liu.se>; Thu, 31 Mar 1994 14:04:47 +0200
Received: by lix.polytechnique.fr (5.65/5.65c-IDA-polytechnique)
	id AA26554; Thu, 31 Mar 1994 13:55:19 +0200
Date: Thu, 31 Mar 1994 13:55:19 +0200
From: doligez@lix.polytechnique.fr (Damien Doligez)
Message-Id: <9403311155.AA26554@lix.polytechnique.fr>
To: pen@lysator.liu.se
Subject: pidentd-2.3alpha1

I have just read the README.DES file from the alpha release of
pidentd.  I'm afraid I have not been clear in describing the format of
the key file.

What follows is a more thorough description.  Feel free to ask me for
more details, I am not too good at writing documentation.

>>>
You write that the key file has to be 1024 bytes long.  This is not
quite true.  The key file is a text file.  Each line of text is a key.
The 1024-byte limit is the maximum length of a key, so each line in
the key file must be less than 1024 characters in length (or maybe
1023).

The key file is used by the programs as follows:

The pidentd daemon will use the first line of the file as a key to
encrypt its responses, and ignore the rest of the file.

The decryption utility (idecrypt) will try every key in the file on
each encrypted packet, until it finds the right one.  (Decrypted
packets have a checksum, so the decryption utility knows when it has
found the right key.)

The intended use of the key file is as follows:

When you want to change your key, you add a new line at the top of the
key file.  Since this is a text file and the line can be quite long,
it might be a good idea to include the date, the name of the machine,
and maybe your own name.  Don't forget to add a good number of random
characters, or your key will be too easy to find.  The daemon will use
the new key as soon as you save the file.  idecrypt will also know
about this new key, but it will still be able to try the old ones as
well.  Thus if you have to decrypt an old log, it will work
transparently.

An other limitation of the key file is that only the 1024 fist keys
are taken into account by idecrypt.  And since the decryption utility
tries all the keys on every packet that it cannot decrypt, it will be
slowed down by a big key file.  So it is a good idea to remove very
old keys from this file.

Also, if you have several machines, it is better to use a different
key on each machine, in case one of the machines is compromised, and
you can add the keys for all the machines on your central (most
secure) machine so that you can decrypt ident responses from all your
machines by running idecrypt on that central machine.

An example:

At first, my key file looked like this:
----
1994.02.20 titus.polytechnique.fr doligez 624153126351241562
----
The series of digits at the end of the line was generated by rolling a
dice.  (And it is too short for good security.)

Two weeks later, I felt paranoid and I decided to change my key, so
the file looked like:
----
1994.03.07 titus.polytechnique.fr doligez 215656215656361252
1994.02.20 titus.polytechnique.fr doligez 624153126351241562
----
Note that I kept the old key, which allows idecrypt to interpret my
old ident responses.

Then I noticed a break-in on my machine, and (after cleaning up and
plugging the holes) changed the key file to:
----
1994.03.19 titus.polytechnique.fr doligez 564125642156124665
1994.03.19 vlsi.polytechnique.fr doligez 635245623415621251
1994.03.07 titus.polytechnique.fr doligez 215656215656361252
----
I removed the key dated 1994.02.20, because I'm not interested in
1-month-old log entries, and I added the key for my second machine,
because I am logged on titus as root most of the time, so if I get a
mail from another administrator about a security problem, I can
decrypt the log even if the attempts came from vlsi.


You may use any part of this text for the user documentation for
pidentd/idecrypt.

README.aix

Here are some tips&tricks for IBM users:

From Chris Moller (moller@vnet.ibm.com, moller@futserv.austin.ibm.com):

"Under IBM weirdness, after you modify /etc/services or /etc/inetd.conf,
you have to update the ODM by running, from root, the following:

        inetimp
        chrctcp -S -c inetd -f debug='no' -f file='/etc/inetd.conf'

or the changes don't take effect.  Other than that, everything worked
fine out of the box."



From James Carlson <carlson@xylogics.com>:

One minor note, this program suffers from the same problem that a lot
of other kernel-reading programs do on AIX.  Gcc doesn't align the
contents of the user structure correctly.  Users have to add a "long
foo" element right before U_irss in a private copy of sys/user.h in
order to make it work.

README.dynix3

Machine Type:		Sequent Dynix 3.*

Make using:		make dynix3
Make optimised:		make "CFLAGS=-O" "LDFLAGS=-s" dynix3

Person(s) porting:	Peter Eriksson <pen@lysator.liu.se>
			Frank Maas <maas@dutiws.tudelft.nl>

Port date:		A long time ago...

Verified working:	OS version(s)	Pident vers	Person
			3.0.14		2.1beta10	<pen@lysator.liu.se>

Build comments:		Nothing unusual

Install comments:	Generally install into /usr/etc

Usage comments:		Works as daemon (started from rc.local), or
			from inetd (if you port an Inetd yourself
			from for example 4.3BSD-net2).
			We run as user root, but any user with read
			access to /dev/kmem would be fine.

README.irix4

Machine Type:		Silicon Graphics IRIX 4.*

Make using:		make irix4
Make optimised:		make "CFLAGS=-O" "LDFLAGS=-s" irix4

Person(s) porting:	Simon Leinen <simon@lia.di.epfl.ch>
Port date:		A long time ago...
Verified working:	OS version(s)	Pident vers	Person
			4		2.1beta.10	<simon@lia.di.epfl.ch>

Build comments:		Nothing unusual

Install comments:	Generally install into /usr/etc

Usage comments:		Works as daemon or from inetd with wait/nowait

Known bugs:		It returns the <uid> of the process owning the
			socket in question instead of the <ruid>. Ie,
			it returns "root" instead of the actual user
			when the user runs a setuid-root program like rsh..

README.irix5

Frank Maas says:

I have had this question a couple of times, so I wondered if you could
add the following comment just before the #include <sys/vnode.h> state-
ment in src/kernel/irix5.c... (we are talking pident2.5.1 here ;-):

/** Well... here some problems begin: when upgrading IRIX to 5.3 the **/
/** `inst' program shows one of its peculiar bugs: the file vnode.h  **/
/** has changed location in between versions and now the file is up- **/
/** grade first (new package) and then deleted (old package). So if  **/
/** you have problems finding this file: reinstall eoe1.sw.unix.     **/

README.next

Machine Type:		NeXTstep 2.x/3.0

Make using:		make next
Make optimised:		make "CFLAGS=-O -pipe" "LDFLAGS=-object" next

Person(s) porting:	Nigel Metheringham <nigelm@ohm.york.ac.uk>
Port date:		5 April, 1993
Verified working:	OS version    Pident vers  Person
			3.0	      2.1beta9	   <nigelm@ohm.york.ac.uk>
			2.1	      2.1beta9	   <Piete.Brooks@cl.cam.ac.uk>

Build comments:		Build using the optimising make line above - makes a
			much smaller tighter daemon.
			Edit the destination part of the Makefile to suit
			your system -
			common values are:-
				DESTROOT=
				DESTDIR=/usr/etc
				MANROOT=/usr/man
				MANDIR=$(MANROOT)/man8
			This has only been tested on black (ie NeXT) hardware,
			however there is no reason why it should not run on
			white (486) hardware under NeXTstep for Intel
			Processors.


Install comments:	Generally install into /usr/etc
			Start from inetd (or as daemon if you prefer)

Usage comments:		Make sure that the user this runs under from inetd
			can read /dev/kmem.  Alternatively run it as root -
			its quite safe!

README.next31-m68k-i486

Machine Type:		NeXTstep 3.1 for Motorola (or Intel - untested)

Make using:		make nextmab

Make optimised:		make "CFLAGS=-O2 -pipe" "LDFLAGS=-object -s" nextmab
			(is the default)

Build-Architecture:	make "NEXTARCHS=-arch m68k -arch i386" 
				for Multi-Architecture-Binary (default)
			make "NEXTARCHS=-arch m68k" 
				for Motorola M68000 Binary
			make "NEXTARCHS=-arch i386" 
				for Intel i486 Binary

Person(s) porting:	Nigel Metheringham <nigelm@ohm.york.ac.uk>
				(original NeXTSTEP 2.x / 3.0 version)
			Michael Kuch (NeXTSTEP 3.1 version)
				<mike@atlas.physchem.chemie.uni-tuebingen.de>
			others (?)

Port date:		5 April, 1993   - NeXTSTEP 2.x / 3.0 version
			11 August, 1993 - NeXTSTEP 3.1 version

Verified working:	OS version    Pident vers  Person
			3.1-m68k      2.2alpha1	   <mike@atlas.physchem.chemie.
							uni-tuebingen.de>

Build comments:		Edit the destination part of the Makefile to suit
			your system -
			common values are:-
				DESTROOT=
				DESTDIR=/usr/etc
				MANROOT=/usr/man
				MANDIR=$(MANROOT)/man8
			Edit the NEXTARCH part of the Makefile if you want 
			build a Single-Architecture-Binary (smaller).

			This has only been tested on black (ie NeXT) hardware,
			however there is no reason why it should not run on
			white (i486) hardware under NeXTstep 3.1 for Intel
			Processors.


Install comments:	Generally install into /usr/local/etc
			Start from inetd (or as daemon if you prefer)

Usage comments:		Make sure that the user this runs under from inetd
			can read /dev/kmem.  Alternatively run it as root -
			its quite safe!

README.ptx

Machine Type:		Sequent Dynix/ptx versions 2 & 4

Make using:		make ptx or make ptx4
Make optimised:		make "CFLAGS=-O" "LDFLAGS=-s" ptx2/4

Person(s) porting:	Tim Wright <timw@sequent.com>

Port date:		Wed 19 Apr 1995

Verified working:	OS version(s)	Pident vers	Person
			2.1.6		2.5.2		<timw@sequent.com>
			4.1beta		2.5.2		<timw@sequent.com>

Build comments:		Nothing unusual

Install comments:	Generally install into /usr/etc

Usage comments:		Tested running under inetd. This will *not* work
			unless you have ptx TCP/IP v2.4.0 or later. This
			was the first version where inetd will (optionally)
			pass a socket instead of a TLI endpoint.
			Has been tested in standalone mode.
			It has also not been tested under ptx 4.0.X.
			It may be necessary to change ptx4.c to open /dev/mem
			instead of /dev/kmem for this release.

README.riscos4

Machine Type:		MIPS RISC/OS 4.5x

Make using:		make riscos4
Make optimised:		make "CFLAGS=-O" "LDFLAGS=-s" riscos4

Person(s) porting:	Nigel Metheringham <nigelm@ohm.york.ac.uk>
Port date:		5 April, 1993
Verified working:	OS version	Pident vers	Person
			4.51, 4.52	2.1beta10	<nigelm@ohm.york.ac.uk>

Build comments:		Nothing unusual

Install comments:	Generally install into /usr/etc

Usage comments:		Works as daemon or from inetd with wait/nowait
			We run as user bin, but as root would be fine.

README.sunos3

Machine Type:		SunOS 3.5 (other v3 SunOSs may work)

Make using:		make sunos3
Make optimised:		make "CFLAGS=-O" "LDFLAGS=-s" sunos3

Person(s) porting:	Nigel Metheringham <nigelm@ohm.york.ac.uk>
			[We are disposing of our Sun3s soon, so no further
			support will be done for this architecture]

Port date:		5 April, 1993
Verified working:	OS version	Pident vers	Person
			3.5		2.1beta10	<nigelm@ohm.york.ac.uk>

Build comments:		A link is needed to allow compilation (due to code in
			the sys/file.h include file).  This can be put in
			place by executing:
				ln -s /usr/include/sys h
			in the current directory (ie top directory of pidentd).
			Gcc works OK - probably rather better than system cc.

Install comments:	Generally install into /usr/etc
			Start from inetd (/etc/servers) (or as daemon if you
			prefer) Since this is an *old* BSD system, several of
			the inetd options are missing.  You can only start it
			as a one shot daemon from inetd (edit /etc/servers),
			and you can specify no parameters.
			Remember there are limits on the number of lines in
			/etc/servers

Usage comments:		Since inetd calls identd with a parameter made up of
			the calling IP and port address (identd does not use
			this parameter), identd drops one argument if there
			are no options set!  To get round this (ie from the
			command line) specify at least one option.

README.sunos4

Machine Type:		Sun SunOS 4.*

Make using:		make sunos4
Make optimised:		make "CFLAGS=-O" "LDFLAGS=-s" sunos4

Person(s) porting:	Peter Eriksson <pen@lysator.liu.se>
Port date:		A long time ago...
Verified working:	OS version(s)	Pident vers	Person
			4.0.3, 4.1.1,	2.1beta10	<pen@lysator.liu.se>
			4.1.3

Build comments:		Nothing unusual

Install comments:	Generally install into /usr/etc

Usage comments:		Works as daemon or from inetd with wait/nowait
			We run as user sys, but as root would be fine.

README.sunos5

Please note that the Solaris 2 port of Pidentd is very dependant
on the version of Solaris. So when you upgrade to a new version of Solaris
you most probably also must upgrade the Pidentd server. You can always
find the latest version of Pidentd on ftp.lysator.liu.se in pub/ident/servers.

Some common problems that may occur when compiling under Solaris 2:

	* You use /usr/ucb/cc - NEVER ever EVER use that compiler

	* You use GCC, but didn't run "fixincludes" correctly when
	  installing it

	* You use GCC and have just upgraded from Solaris 2.3 to 2.4
	  (for example) and have forgotten to RERUN the "fixincludes".
	  This just *MUST* do or things will fail in mysterious ways.

You may have to enable the "SOLARIS24_WORKAROUND" feature in the
file "src/kernel/sunos5.c" if you have problems getting "-b" and/or "-w"
to work correctly under Solaris 2.4. Please tell me if you do and it helps
you (send an email to pen@lysator.liu.se).

Casper Dik <casper@fwi.uva.nl> says:

  I found a bug in Solaris 2.x inetd which may affect identd
  installations:  if you change a tcp service from "nowait" to "wait" mode,
  inetd will still pass the connected socket (as happens in nowait
  mode) instead of the socket to do accept() on.  The workaround
  is to first comment out the service and -HUP inetd, then reinstall
  the service as wait service and resend -HUP.  Inetd apparently needs
  to forget all about this service.  The symptom is accept returing
  errno 22.

README.ultrix

I got the following message about the problems with Ultrix and connections
that suddenly are closed:

From sendmail-r8-request@CS.Berkeley.EDU Tue Oct 12 15:55:12 1993
Flags: 000000000001
Received: from hofmann.CS.Berkeley.EDU (hofmann.CS.Berkeley.EDU [128.32.131.12]) by godot.lysator.liu.se (8.5/8.5) with ESMTP id PAA02066; Tue, 12 Oct 1993 15:55:02 +0100
Received: from mastodon.CS.Berkeley.EDU (mastodon.CS.Berkeley.EDU [128.32.149.68]) by hofmann.CS.Berkeley.EDU (8.6.beta.13/8.6.beta.4) with ESMTP id HAA02072 for <sendmail-r8@CS.Berkeley.EDU>; Tue, 12 Oct 1993 07:45:15 -0700
Received: from localhost (eric@localhost) by mastodon.CS.Berkeley.EDU (8.5/8.5) id HAA19535; Tue, 12 Oct 1993 07:47:26 -0700
Message-Id: <199310121447.HAA19535@mastodon.CS.Berkeley.EDU>
To: sendmail-r8@CS.Berkeley.EDU
From: Eric Allman <eric@CS.Berkeley.EDU>
Subject: IDENT protocol info
Date: Tue, 12 Oct 1993 07:47:26 -0700
Sender: eric@mastodon.CS.Berkeley.EDU
Keywords: pidentd

I received the following describing the changes needed to run IDENT
on Ultrix.

eric

------- Forwarded Message

From: Dan Mosedale <mosedale@genome.stanford.edu>
Message-Id: <199310111806.AA06654@aeffle.Stanford.EDU>
Subject: Re: anonymous mail
To: eric@CS.Berkeley.EDU
Date: Mon, 11 Oct 1993 11:06:25 +119303928 (PDT)
Newsgroups: comp.security.misc
Organization: Stanford University Genetics Department

In article <294d8i$il8@agate.berkeley.edu> you write:
>In article <2948np$6eu@usenet.INS.CWRU.Edu>, mcn@nostromo.cwru.edu (Michael Neuman) writes:
>|> 2) Hack up sendmail to use rfc931.
>
>Unfortunately, TCP/IP bugs in many operating systems make it impossible
>to implement RFC931 (actually RFC 1413 -- 931 has been obsoleted).  In
>particular, I've had problems with HP-UX and Ultrix, among others.

FWIW, I've got pidentd 2.1.2 running under Ultrix 4.3 with a few
caveats.  For one thing, it doesn't work properly from inetd, it has
to be run in daemon mode.  However, the fact that it runs at all is
probably due to the fact that I've got the following patch installed:

/usr/sys/MIPS/BINARY/in_pcb.o                   (CLD CXO-8919)
CHECKSUM:  56412 72
/usr/sys/MIPS/BINARY/ip_icmp.o
CHECKSUM:  30060 43
/usr/sys/MIPS/BINARY/tcp_subr.o
CHECKSUM:  58085 56 
/usr/sys/MIPS/BINARY/udp_usrreq.o
CHECKSUM:  24862 74
/usr/sys/MIPS/BINARY/uipc_domain.o
CHECKSUM:  29573 17
- ----------------------------------

Establish an ftp session with a host across the gateway and put the
process in background. Telnet to the same host using an unused port to
force a "Host Unreachable" situation. Go back to the ftp session and
it is dead.

In order to fix the problem, the in_pcbnotify() routine in in_pcb.c should
be aware of the local and foreign ports for a given connection. To fascilitate
this the lport and fport parameters were added to in_pcbnotify. This required
the calling routines (tcp_ctlinput and udp_ctlinput) to be called with an
additional parameter, a pointer to the ip structure. The tcp header can be
accessed in this ip structure.  The tcp header yields the foreign and local
ports.

- -Dan

------- End of Forwarded Message



README.unicos6

Machine Type:		Cray UNICOS 6

Make using:		make unicos6
Make optimised:		make "CFLAGS=-O" "LDFLAGS=-s" sunos6

Person(s) porting:	Douglas Lee Schales <Doug.Schales@sc.tamu.edu>
Port date:		A long time ago...
Verified working:	OS version(s)	Pident vers  Person
			6.0.12		2.1beta.7    <Doug.Schales@sc.tamu.edu>

Build comments:		Nothing unusual

Install comments:	Generally install into /usr/etc

Usage comments:		Works as daemon or from inetd with wait/nowait

Known bugs:		It returns the <uid> of the process owning the
			socket in question instead of the <ruid>. Ie,
			it returns "root" instead of the actual user
			when the user runs a setuid-root program like rsh..

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.