<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="Content-Type">
  <title></title>
</head>
<body text="#000000" bgcolor="#ffffff">
Jay McCarthy wrote at 12/09/2011 08:38 PM:<br>
<blockquote
 cite="mid:[email protected]m"
 type="cite">
  <div class="gmail_quote">On Fri, Dec 9, 2011 at 5:36 PM, Jordan
Schatz <span dir="ltr">&lt;<a moz-do-not-send="true"
 href="mailto:jordan@noionlabs.com">jordan@noionlabs.com</a>&gt;</span>
wrote:<br>
  <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">What
is considered the best way to run a web server as non-root and<br>
accept connections on port 80?</blockquote>
  </div>
</blockquote>
[...]<br>
<blockquote
 cite="mid:[email protected]m"
 type="cite">
  <div class="gmail_quote">
  <div><br>
  </div>
  <div>I don't like to start it as root at all. I prefer to start a
high port and install a firewall redirect as you mention.</div>
  </div>
</blockquote>
<br>
What Jay said.&nbsp; In general, you really don't want to be starting Racket
processes as "root".&nbsp; One reason: although Racket-based servers are
typically more secure than servers implemented in C/C++, the C/C++
servers aren't potentially downloading and executing arbitrary code
from PLaneT at process startup, like Racket apps typically do.&nbsp; If
PLaneT is compromised or impersonated, or someone just uploads a
package with a nasty bug, not running as "root" might reduce damage.[*]<br>
<br>
One alternative to redirecting port at the OS level: some people use
another process as an HTTP front-end, on port 80 (or 443), proxying to
the Racket server process (on an unprivileged port, and not
started/running as "root").&nbsp; This front-end process could be Apache
(perhaps doing additional things, like authentication), or a
load-balancer, or a firewall.&nbsp; The other process might even be on
another machine, perhaps gatewaying to a private network, or directing
to compartmentalized VMs.<br>
<br>
[*] Yes, I think this PLaneT trust problem should be addressed, before
there's an incident.&nbsp; Someone could get an MS or PhD out of the
solution.<br>
<br>
<div class="moz-signature">-- <br>
<a class="moz-txt-link-freetext" href="http://www.neilvandyke.org/">http://www.neilvandyke.org/</a>
</div>
</body>
</html>