Como faço para configurar e proteger adequadamente um servidor LAMP de produção?

8

É muito difícil encontrar informações abrangentes sobre esse assunto. Encontrei breves tutoriais sobre como você executa a instalação, tão simples quanto "apt-get install apache2" ou tutoriais desatualizados. Então, eu esperava poder obter algumas informações profissionais de meus colegas da comunidade Ubuntu: D

Eu executei um Ubuntu Server 11.04 normal com LAMP, SAMBA e SSH instalado através da instalação do sistema. Mas estou com problemas para configurar hosts virtuais e tornar o sistema seguro o suficiente para expor o servidor à web.

Eu segui este tutorial até agora.

Eu tenho 3 sites em / etc / apache2 / sites-available, que se parecem com isso, exceto por nomes diferentes de sites:

<VirtualHost example.com>
   ServerAdmin webmaster@localhost
   ServerAlias www.edunder.se
   DocumentRoot /var/www/sites/example
   CustomLog /var/log/apache2/www.example.com-access.log combined
</VirtualHost>

E eu os habilitei com o comando a2ensite para ter links simbólicos em / etc / apache2 / sites-enabled .

Meu arquivo / etc / hosts possui estas linhas:

127.0.0.1 localhost
127.0.1.1 Ubuntu.lan Ubuntu
127.0.0.1 localhost.localdomain localhost example.com www.example.com
127.0.0.1 localhost.localdomain localhost example2.com www.example2.com
127.0.0.1 localhost.localdomain localhost example3.com www.example3.com

E só consigo acessar um deles no navegador (tenho o lynx instalado no servidor para fins de teste), então acho que não os configurei corretamente :)

Como devo proceder para obter uma configuração segura e adequada? Eu também uso o MySQL e acho que este tutorial será suficiente para configurar o SSH com segurança. Por favor, ajude-me a entender melhor a configuração do Apache, pois sou iniciante na configuração do meu próprio servidor (só executei o XAMPP anteriormente) e informe-me sobre como devo configurar um firewall também: D

Niklas
fonte
11
Você também pode solicitar no serverfault.com, um StackExchange para configurar e manter servidores e sistemas.
Kris Harper #
2
Uma resposta correta para isso pode encher livros. Eu sugeriria dividir sua pergunta em algumas relacionadas à configuração de hosts virtuais e segurança. Uma boa resposta para perguntas relacionadas à segurança refere-se a um bom conhecimento de seus atacantes, usuários e outros.
QBI
Obrigado, vou verificar a falha do servidor se encontrar boas respostas! :)
Niklas

Respostas:

1

Você precisa informar ao Apache que ele deve usar hospedagem virtual baseada em nome em vez de IP. Portanto, adicione o seguinte ao seu /etc/apache2/apache2.conf para definir:

NameVirtualHost ip.address:port

E cada host virtual deve definir uma porta:

<VirtualHost example.com:80>

fonte
0

Acho que você precisará adicionar seus IPs públicos também se quiser que outros computadores possam se conectar. No momento, apenas seus loopbacks são mencionados em / etc / hosts. Eles também devem incluir outros IPs.

Jo-Erlend Schinstad
fonte
Você tem certeza? Não seria suficiente apenas obter meu servidor de nomes de domínio para apontar para o meu IP e deixar o roteador direcionar o tráfego para o servidor? Eu tenho DHCP, então estou usando o serviço do DynDNS para encaminhar o tráfego para o meu IP.
Niklas