Minha primeira ideia foi um roteiro inicial simples. /etc/init/webfs.conf
:
description "WebFS server"
start on (local-filesystems and net-device-up)
respawn
exec webfsd -F -p 80 -u d3vid -g d3vid /home/d3vid/Documents/www/ -f index.html
Os argumentos -u
e -g
são realmente importantes. Esses privilégios de raiz são removidos após a ligação da porta ... O que significa que não há um processo acessível pela rede sendo executado como root que pode ser explorado.
A outra ideia é executá-lo em uma porta alta (> 1024) como você, iniciando automaticamente o que quiser ... E, em seguida, usando um servidor real para inverter o proxy (nginx é uma ferramenta comum e leve aqui) da porta 80 ... Ou apenas use um redirecionamento do iptables.
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 10010 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 10010
A vantagem que existe no webfs é que nunca é executado como root ... Mas você só precisa executar os comandos iptable
como root a cada inicialização. Balanços e rotundas.
Acho que, se você não está expondo o servidor diretamente à Internet, a primeira rota provavelmente é segura o suficiente.
Mas se você for mais longe, faça o dump do WebFS e use apenas nginx
...
- Ele faz tudo que o WebFS faz (e muito mais)
- É simples de usar
- É eficiente além da razão
- Seu SSL tem documentação decente
- Mais importante ainda, muitas pessoas têm interesse em manter o nginx em segurança, incluindo a Canonical, para que você obtenha atualizações rápidas (críticas ao lidar com coisas voltadas para a web)
Para dar a você algum tipo de ideia do que significa eficiente, eu tenho um servidor que hospeda cerca de 20 domínios, alguns deles fazendo um tráfego bastante sério. Os quatro processos de trabalho do nginx são responsáveis por 15MB de RAM combinados e nenhum tempo de CPU observável. É insano.