Web Server Security
To use the webserver (or even the web service described later) you must have a valid userid and password. taskforestd
does not ship with any default userid and password pairs. A password is required to authenticate the person making requests via the web browswer. This userid and password combination may be (and should be) different from the userid and password of the account under which taskforestd is running.
Which reminds me, as you would expect, taskforestd
runs with the privileges of the account that invoked the program. If that account does not have permissions to read and write the job and family files, you will not be able to use the web server.
It is not a good idea to run taskforestd
as root, because even though taskforestd is written with security in mind, running as root opens a huge security hole. And anyway, you shouldn't run as root any program that you download off the 'net any more than you should give a stranger the keys to your house.
The best method is to create a separate system user account for taskforest
and taskforestd
, and run the web server and command line requests as that user.
Coming back to the taskforestd
userid and password: The userids and passwords are specified in the configuration file using the same format as Apache's .htpasswd files. You can see commented-out examples of this in the configuration file taskforestd.cfg
. For your convenience, the TaskForest distribution includes a program called gen_passwd
that generates text that you can copy and paste into the config file:
gen_passwd foo bar
foo:4poVZGiAlO1BY
This text can then be copied and pasted into the configuration file as a valid_user option.
Please see the included configuration file, taskforestd.cfg, for a list of each configuration option, and what it means.
Please keep in mind that the >taskforestd
server is not encrypted. Your userid and password will be transmitted in cleartext. This is a huge security hole. Do not do this unless both the client and the server behind a firewall, for example in a local intranet. If someone sniffs your unencrypted userid and password, they can change job files, family files, or delete them too.
If you wish to use an encrypted, SSL-enabled server, please use the included taskforestdssl
program instead of taskforestd
. The only difference between the two is that the taskforestd uses HTTP::Daemon
, and taskforestdssl
uses HTTP::Daemon::SSL
. To set up SSL, you will need to set up a server key and a server certificate. The locations of these files may be specified in the taskforestd configuration file, under server_key_file and server_cert_file, respectively. You can find more information in the documentation of HTTP::Daemon::SSL
.
If you would like to self-sign a certificate, there are some instructions in the HOWTO section.
If your system does not support SSL (for example, with openssl), and you would like to use taskforestd across the Internet, my advice would be: ``Don't.'' If you do, you would essentially be giving the world the ability to run any command on your server. If you still want to do it, at least make sure that the system account that taskforestd runs under does not have write access to any files, especially those in job_dir, log_dir and family_dir. This means that you would not be able to change job or family files or schedule reruns using taskforestd, but neither would the rest of the world be able to do that on your machine.