DragonFly On-Line Manual Pages
chattahoochie(8) DragonFly System Manager's Manual chattahoochie(8)
NAME
chattahoochie - KQueue-Based Small Group Chat Server
SYNOPSIS
chattahoochie [-i <interface> -p <port> -m <max-clients> -u <user> -g <group> -x]
DESCRIPTION
Chattahoochie is a plain text small group chat server intended for use
with 8-bit character sets. On local networks telnet or netcat can be
used as clients. By default Chattahoochie accepts a maximum of five
connections at any one time. The maximum number of connections may be
altered with the -m option. Chattahoochie will drop connections which
have been idle for 20 minutes.
All data exchanged between clients and server is sent in the clear and is
thus readable by any third party whose equipment it traverses. For use
over the internet it is recommended chattahoochie be configured to listen
on a loopback interface. Secure shell clients can then be used to
connect to the server host. How to do this is described below in the
section titled SECURING CONNECTIONS.
DISPLAY LOCKING
Before inputting chat data, a client should lock the display by entering
a blank line to prevent the display from scrolling. The display can be
unlocked by entering another blank line. Up to 500 incoming messages
will be queued for the client while the display is locked.
SECURING CONNECTIONS
Create a "chat" user on the server host with the adduser utility. Add a
Match directive to the very end of /etc/ssh/sshd_config to run netcat as
an intermediary for "chat" logins. It is important to place the Match
directive at the end of the file to avoid affecting other logins.
Match User chat
ForceCommand nc 127.0.0.1 8000
Restart sshd with
kill -HUP `cat /var/run/sshd.pid`
Check to make sure the daemon has restarted before you logout of your
current ssh session! If you make a typo in sshd_config, sshd will fail
to restart, silently, and you will no longer be able to connect to the
system as any user! To verify sshd has restarted, open another xterm or
virtual console and attempt to login as the "chat" user:
ssh chat@fakehost.org
Create the file /home/chat/.hushlogin to suppress printing of the last
login time and message of the day.
CONFIGURATION
Chattahoochie writes its pid into /var/run/chattahoochie.pid if it can
(ie., it is started as root), and may be stopped with a SIGTERM. A rc.d
script is provided and installed in /usr/local/etc/rc.d/. Add the
following lines to /etc/rc.conf to start chattahoochie on system boot-up.
Replace the items in brackets with values appropriate for your system,
and/or add or remove options as suits your system. The available options
are described in full at the end of this manual page.
chattahoochie_enable="YES"
chattahoochie_flags="-u <user> -g <group>"
Once your /etc/rc.conf is configured you may start, stop, or restart
chattahoochie, or determine if it is running with the following commands:
/usr/local/etc/rc.d/chattahoochie start
/usr/local/etc/rc.d/chattahoochie stop
/usr/local/etc/rc.d/chattahoochie restart
/usr/local/etc/rc.d/chattahoochie status
If you do not want chattahoochie started on system start, then set
chattahoochie_enable="NO"
and use the following commands:
/usr/local/etc/rc.d/chattahoochie forcestart
/usr/local/etc/rc.d/chattahoochie forcestop
/usr/local/etc/rc.d/chattahoochie forcerestart
/usr/local/etc/rc.d/chattahoochie forcestatus
If the server encounters an error reading or writing data to or from a
client, or runs out of memory, the particular connection which generated
the error will be dropped. All other errors will be logged via
syslog(3), and may be found in /var/log/messages.
The following arguments are recognized. They are all optional.
-p The -p option specifies the port to listen on. This defaults to 8000
if not specified.
-i By default, chattahoochie accepts connections on all interfaces it
can find capable of IPv4 or IPv6. The -i option, when present,
overrides this behavior, by limiting chattahoochie to accepting
connections from a specified interface only. The option accepts the
IP address of the desired interface as an argument. The address must
be expressed in the presentation format for either IPv4 or IPv6.
-m The -m option specifies the maximum number of clients which may be
connected at any one time. If not specified, this value defaults to
5.
-u
-g The -u and the -g options may be used to specify the user and group
for the server to change to after it has bound to the listening
socket. If not specified, both values default to "nobody". Note
that in order for the server to change user the server must be
started as root. If not started as root, two error messages will be
syslog()ed at start-up, complaining about the inability of the server
to change user and group. You can suppress them by providing values
to -u and -g to override the default "nobody" with the actual user
and group under which the server runs.
-x The -x option, if present, prevents chattahoochie from becoming a
daemon. It will then run in the foreground of the terminal where it
was started, and may be stopped with signals (ie., Control-C). The
server also will not write its pid to /var/run/chattahoochie.pid when
the -x option is used.
AUTHORS
James Bailie <jimmy@mammothcheese.ca>
http://www.mammothcheese.ca
October 6, 2013