This page lists the basic restrictions and recommendations regarding software executed by users on our servers, including web applications such as CGI and PHP scripts.
We recommend that users test/debug experimental software on their own machines before deploying onto a multiuser server environment. If that is not possible or convenient, users should monitor their process usage using tools like top, ps, pstree, or fstat and carefully review the relevant log files.
The gdb debugger is available on all of our servers. For C and C++ applications, use of the -g flag is recommended even for production binaries.
Web applications such as CGI and PHP scripts all execute under user privileges thanks to Apache suEXEC. This means that scripts are able use the file system without requiring insecure permissions (so you can make the data files used by those scripts private, eg. chmod 600), but this also means that a potential attacker can use vulnerable scripts to execute arbitrary code under your account. Therefore it is critical to audit web applications carefully and keep up with security updates when using third-party scripts.
We will immediately suspend accounts that have been compromised (as evidenced by, for example, a "backdoor" program executing, or spam being sent from the account). We can easily track down scripts that have been exploited by spammers since the uid is kept in the "Received:" headers.
PHP or CGI scripts which permit a remote user to set an arbitrary recipient allow spammers to send junk mail on behalf of the user. Spammers have methods to detect and exploit vulnerable FormMail scripts. Scripts known to be vulnerable to such arbitrary relaying will be disabled.
CGI scripts whose sole purpose is to count page hits are not allowed. FastCGI applications are okay, as long as they do not establish any kind of network connection (ie. a database connection) at every invocation. Counters like these are inaccurate and they slow down the loading of web pages. Apache logs, however, are fully accurate and efficient.
Always operate on the assumption that your website will get several hits per second, even if it is low-profile.
It is not permitted to use CGI or PHP applications for handling errors like 403 and 404. FastCGI applications are okay, again, as long as they do not establish network/database connections at every hit. HTTP errors are already logged to your ErrorLog file.
It's possible to run daemons and background processes, and described in the next section, but explicit permission is required for daemons listening for external connections.
Any type of user application that runs persistently on the server must use some sort of synchronous I/O multiplexing such that the application does not use any CPU when it is idle. For applications that do not conform to this policy, users should ask explicit permission.
Programming interfaces that allow synchronous I/O multiplexing include:
- The select and poll interfaces.
- The libevent library.
- The Perl POE framework.
- The liboop library.
- GLib's main event loop.
It is not recommended to link user binaries statically against system libraries, since it might prevent them from picking up eventual security fixes applied to the system libraries.
IRC bots such as eggdrop, IRC proxies (or "bouncers") and IRC servers are not allowed on our servers.
Users are not allowed to run any type of server-side daemon which forwards connections to arbitrary remote hosts, without explicit approval from us. IRC "bouncers", for instance, fall under this category. We will immediately suspend accounts which are found to run proxy software.
This should be more than obvious, but the execution of DoS and spamming tools on the servers is not an acceptable practice and will result in account suspension and/or termination.
Network scanners such as nmap, scanners for security vulnerabilities or exploits are prohibited on all of our servers, regardless of their intended purpose. If you want to use our servers to perform very specific security audits against your own equipment, please contact us about it.