NAME
conquestd - a Conquest game server
SYNOPSIS
conquestd [OPTIONS]
DESCRIPTION
conquestd is a game server for Conquest. Clients, such as conquestgl
and conquest are used to connect to a conquestd server to play the
game.
OPTIONS
-d Daemon mode.
-l Listen for local connections only. When this option is
supplied, only clients on the local host will be able to
connect.
-p <port>
Listen for game connnections on port port. The default port is
1701.
-m Notify the metaserver of the presence of your game server.
When this option is specified, conquestd will notify the meta
server (default conquest.radscan.com) of your server, so that
other players can see it in the server list and connect to it.
Do not use this option if your server is not actually available
from the Internet.
-M <meta server>
Notify meta server instead of the default meta server running
at conquest.radscan.com.
-N <my name>
Explicitly specify server name my name to the meta server when
announcing your game. This is useful if your server is
accessed with a different host name internal to your network,
than the host name that an Internet client would need to use to
connect.
-u <user>
Run as user user. This option is advised when running as root.
It is generally not a good idea to run an Internet accessable
game server as the root user :) Only the root user can use
this option.
-v Be a little more verbose.
OVERVIEW
With version 8.0 of Conquest or better, a great deal of work has gone
into making Conquest a true client/server game playable over the
Internet (or just your local LAN).
Conquest has two main parts, the server component (conquestd) and the
client (OpenGL version: conquestgl, curses version: conquest).
To run a server, you must run the conquestd program.
Clients (including ones on your local machine) then connect to your
server and the game is played.
SETTING UP A SERVER
conquestd is used to provide a Conquest game. Even if all you want to
do is play by yourself on your own machine, you will need to run
conquestd in order to play.
If all you want to do is use conquest to play on someone else’s server,
then you do not need to be reading this document. :)
In it’s simplest (and insecure) form, you can simply run:
$ conquestd -d
This will start conquestd, which will fork itself into the background
and run as your user id.
It will listen on the default port (1701) for client connections, and
spawn a new conquestd for each client connection. It will be available
to anyone who can connect to TCP port 1701 on your machine.
SECURITY NOTE: I would only run a server this way if no one else from
the Internet will be able to connect (if you are behind a firewall for
example). This is more INSECURE since conquestd will be running as
your uid. Read further for a more secure way to run the server.
To support internet playes securely, start conquestd as root, and have
it run as user ’nobody’ by passing the -u nobody option on the command
line. Of course you can create and use some other non-privileged, non-
interactive user for this task as well.
Something like the following is a good idea:
# conquestd -d -u nobody
This will have conquestd setuid() permanently to user ’nobody’ before
beginning operations. On most unix systems, user ’nobody’ has no home
directory, password, or privileges, and therefore is a safe user id to
run under.
You must be the root user in order to use the ’-u’ option.
DO NOT run conquestd as the root user itself. Although the code
*should* be safe, don’t take my word for it.
NOTIFYING THE METASERVER
If you are going to run a server that will be available to the public
via the Internet, you should pass the ’-m’ option to conquestd when you
start it.
When running with the ’-m’ option, conquestd will contact the Conquest
Meta Server running at conquest.radscan.com, and announce your server,
so that other people will know about it.
Every 2 minutes or so, it will update the meta server with various
particulars of your server (like how many players are currently
connected, what flags you support, what your server name, version, and
MOTD are, etc).
This way, other people can find out about your server and connect to it
to play.
The list of currently active servers can be seen in the game by running
your client (conquestgl or conquest) with the ’-m’ flag.
You can also point your web browser to:
http://radscan.com/cgi-bin/conqmeta.pl
If you want to be primitive, you can see the current list of servers in
raw format by simply:
telnet conquest.radscan.com 1700
Of course, please make sure that your server is actually reachable from
the Internet before notifying the Meta server.
FIREWALL CONSIDERATIONS
Most people that will run a server (or client) will also be using a
firewall of some sort to protect their networks.
Inbound access:
If you wish to allow internet access to your server, you will need to
allow inbound TCP _and_ UDP access to the game port (1701 by default).
Outbound access:
If you restrict outbound internet connections, you might want to allow
the following outgoing ports:
1700/tcp - if you want clients to be able to query the metaserver for
active servers.
1700/udp - if you want your own server to be able to announce it’s
availability to the metaserver at conquest.radscan.com.
EXPIRING USERS
By default, whenever a user logs into Conquest, an autoexpire is run to
locate and ’resign’ all inactive remote users.
A user is expired:
A) if the user is a non OPER or non robot user - no expiration is ever
done on these users.
B) the user hasn’t entered the game in ’user_expiredays’ days, which is
set in the system-wide conquestrc file.
C) the user isn’t currently flying a ship.
If all of these conditions are met, the remote user is resigned from
the game.
You can disable user expiration altogether by setting user_expiredays
to 0.
You can configure this in the (O)ptions menu in conqoper.
EXAMPLES
conquestd -d
This is conquestd simplest (and insecure) form. It kicks off
into the background (running as your UID) and serves a conquest
game.
conquestd -d -u nobody
When started as the root user, this will have conquestd setuid
to the user ’nobody’ (a common, unprivileged account on unix
systems) and begin serving connections. For an Internet
accessable server, these are the recommended minimum options to
use.
conquestd -d -u nobody -l
Run the server us user nobody, serving only local clients.
conquestd -d -u nobody -m -N conquest.radscan.com
Run the server us user nobody, announcing your server to the
conquest meta server, and tell the meta server that Internet
clients should use the hostname conquest.radscan.com to connect
to your server.
AUTHOR
Jon Trulson
SEE ALSO
conquest(6), conquestd(6), conqoper(6), conqdriv(6), conquestsh(6),
conqmetad(6)
See README in the conquest distribution (usually installed in <conquest
install prefix>/etc/) for information and tips on how to play.
See INSTALL for instructions on unpacking, compiling, and installing
conquest, as well as information on terminfo requirements (for the
curses client) and other system specific issues.
See README.cygwin for information on building/using conquest on MS
Windows systems.
See HISTORY for the latest news and modification history.
See CONQINIT.TXT for information on CQI, and the format of the
conqinitrc and texturesrc files.
COPYRIGHT
Copyright (C)1994-2006 by Jon Trulson <jon@radscan.com> under the
ARTISTIC License.
Original VAX/VMS Ratfor Conquest:
Copyright (C)1983-1986 by Jef Poskanzer and Craig Leres. Permission to
use, copy, modify, and distribute this software and its documentation
for any purpose and without fee is hereby granted, provided that this
copyright notice appear in all copies and in all supporting
documentation. Jef Poskanzer and Craig Leres make no representations
about the suitability of this software for any purpose. It is provided
"as is" without express or implied warranty.
conquestd(6)