Configure corretamente os hosts virtuais do Apache com vários usuários

11

Agradecemos antecipadamente por qualquer ajuda que você possa fornecer. Eu mesmo me ensinei usando o linux (ubuntu), o apache, hosts virtuais e alguns bits com relação à segurança, apesar de ainda não ter conseguido juntar tudo isso perfeitamente.

Eu também aprendi da maneira mais difícil de erros cometidos no passado com relação a não configurar contas de usuário e sites / virtualhosts corretamente. Eu ssh no servidor como root (eu sei, muito ruim), e criei todos os hosts virtuais e arquivos manualmente, assim todos pertencentes a root. Eu tive uma versão antiga do joomla explorada e código malicioso de spam inserido em todos os meus outros hosts virtuais.

Estou no processo de mudar para um novo servidor e estou procurando as etapas corretas a serem seguidas com relação à configuração de hosts virtuais e contas de usuários que podem acessá-los. Como usamos software de terceiros, em algumas ocasiões precisamos de alguém para entrar no site para investigar os arquivos do site.

Nosso servidor atual é a versão 10.04, no entanto, o novo servidor é a versão 12.04. Todos os arquivos do site são configurados em

/home/www/site1.com

/home/www/site2.com

/home/www/site3.com

etc

Em suma, acho que é isso que eu estou procurando.

  1. Como configuro corretamente um host virtual e um usuário, para que ele tenha acesso somente aos seus próprios arquivos e não a qualquer outro host virtual no servidor. Por exemplo, se esse site for explorado com código malicioso, ele não poderá infectar outros sites no servidor

  2. Como eu configuraria os usuários para que eles pudessem apenas fazer o FTP em seus arquivos e não acessar nenhum dos outros sites.

Como mencionado anteriormente, há vários artigos detalhando como executar qualquer um desses passos, mas nada que os combine perfeitamente.

Aprecie realmente a ajuda que qualquer um pode oferecer. Por favor, sinta-se livre para pedir qualquer informação adicional que você possa precisar para dar conselhos. Atualmente, estou seguindo os tutoriais para configurar o chroot, mas temo que não esteja fazendo isso corretamente, já que peguei algumas inconsistências ao longo do caminho. Também estou investigando o jailkit.

    
por user249729 18.02.2014 / 23:24

2 respostas

2

Como a pergunta é o resultado da pesquisa no google quando perguntado "usuário separado do host virtual do apache", eu gostaria de dar uma resposta mais elaborada com base em esta resposta . Minha resposta não cobre o uso de PHP e GCI (você usaria suPHP). Ele se concentra no PHP quando usado como um módulo do apache.

Você pode usar o módulo do apache apache2-mpm-itk . Está disponível para a versão atual do apache 2.4. Ele vem com a diretiva AssignUserID . Essa diretiva define o usuário e o grupo com o qual a solicitação de um host virtual é tratada. Este é um exemplo da configuração do site do Apache com o qual acabei:

<VirtualHost *:80>
ServerName www.site1.com
DocumentRoot /home/www/site1.com
AssignUserID site1 www-data
php_admin_value open_basedir /home/www/site1.com
...
</VirtualHost>

Naturalmente, isso só melhora a segurança, desde que os DocumentRoots individuais sejam de propriedade de seus respectivos usuários e não sejam acessíveis em grupo. Para mais segurança relacionada ao PHP, os scripts são aprisionados no DocumentRoot com a restrição open_basedir. Quanto ao acesso ao arquivo backend, eu prefiro o SFTP com o chroot .

Nota: o apache2-mpm-itk é atualmente incompatível com o módulo http2 do Apache.

    
por Hermann 01.04.2017 / 16:48
1

Eu não considero isso como uma resposta à sua pergunta. Mas como não posso comentar ainda, tenho que escrever na área de "resposta". Eu, sazonalmente, faço o gerenciamento da web, uma maneira de testar e testar as coisas de maneira segura é configurar um ambiente de teste em uma máquina virtual (ou seja, o VirtualBox) ou um computador de mesa "antigo". Um dos problemas mais comuns dos administradores de sites é entender como os programas de servidores da Web funcionam. Nesse caso, suponho que você precise entender como o Apache funciona e pelo menos entender os arquivos de configuração. Acho que o Webmin é uma ferramenta muito útil - para um novato - para gerenciar o Apache e outros serviços. Você tem que gastar algum tempo para testar as coisas em seu ambiente de teste para que as coisas se tornem mais claras para você.

Voltando à sua pergunta, acho que a resposta pode ser um artigo tutorial ou um pequeno livro. Confira estes artigos para começar:

link

link

    
por biocyberman 18.02.2014 / 23:50