(DIR) <- Back # Some fingerd(8) action Last modification on 2023-05-15 Recently, I set up the *fingerd(8)*[^0] daemon on my OpenBSD server hosting this site as a unix-like way to fetch my contact details. What is *finger* you may ask? > fingerd implements a simple protocol based on RFC 1288 that provides an > interface to the Name and Finger programs at several network sites. The > program is supposed to return a friendly, human-oriented status report on > either the system at the moment or a particular person in depth. There > is no required format and the protocol consists mostly of specifying a > single “command line”. -- OpenBSD manpages Go ahead and try it using: ``` $ finger drkhsh@drkhsh.at [i|$ echo | nc drkhsh.at 79||drkhsh.at|70 ] ``` Setting it up was pretty easy on OpenBSD using *inetd(8)*, as everything necessary is already included in the base system. So here is a short write-up: First, instruct *inetd(8)* to listen on port `79` (registered for *finger*) with a one-liner: ``` 79 stream tcp nowait drkhsh /usr/libexec/fingerd -s -u -P /home/drkhsh/finger ``` `-s` means secure and disables forwarding to other servers, `-u` allows only valid usernames and the `-P` flag instructs *fingerd* to use an alternative program instead of printing general system information via local *finger*. My script looks like this, for example: ``` #!/bin/sh cat <<EOF ................................................................. __ __ __ __ [i| .--| |.----.| |--.| |--.-----.| |--.||drkhsh.at|70 ] [i| | _ || _|| < | |__ --|| |||drkhsh.at|70 ] [i| |_____||__| |__|__||__|__|_____||__|__|||drkhsh.at|70 ] **************************************************************** [contact details] ................................................................. EOF ``` Pretty simple, huh? ## Update (HTM) »pyrate« and I have started a *"finger-ring"*, if you want to join, please contact us or jump into `#unix` on (HTM) »unix.chat« and post your finger link. [^0]: https://en.wikipedia.org/wiki/Finger_(protocol) .