Melhor prática para configuração e administração do VPS (web / ftp / ssh)

1

Após uma longa hesitação, finalmente pedi um pequeno VPS para meu próprio uso, basicamente web hosting (vários sites, para mim e amigos) entre outras coisas (servidor mumble hospedagem, servidor de ondas, etc.). Essencialmente, será uma caixa LAMP básica.

Eu gostaria de oferecer algum espaço de hospedagem para alguns amigos e permitir que eles ajustem isso. Isso significa que eles precisarão de seu próprio acesso FTP e, talvez, de SSH (se for seguro o suficiente).

Eu tenho alguma experiência em configuração / administração do LAMP, mas não muito na administração geral do servidor (configuração do usuário, ftp, etc). É por isso que eu gostaria de começar do básico e construir algo confiável e seguro.

Gerenciamento de usuários

Cada um dos meus amigos terá seu próprio usuário no sistema, mas há algo especial a fazer sobre isso? Eu crio um grupo por usuário ou todos compartilham o mesmo grupo? Eu acho que isso só muda se eu permitir que eles façam login via SSH, mas mais sobre isso depois.

Hospedagem na Web

Minha primeira preocupação é a hospedagem compartilhada. Mesmo que eu não hospede dados confidenciais, não quero que os usuários mexam nos arquivos de outras pessoas. Eu resolvi esse problema antes de usar PHP / CGI e Apache suexec , mas depois de ler os incríveis artigos de Stuart Herbert sobre plataformas da web , estou com vontade de usar mpm-itk . Você tem algum comentário sobre isso?

Como o meu usuário alvo é um pouco nerd, eu estava pensando em deixá-los ajustar seu próprio php.ini. O que você acha disso ? Existem ameaças potenciais à segurança ao fazer isso?

Eles poderiam, por exemplo, aumentar muito o limite de memória e afetar outros usuários, mas não acho que isso seja um problema.

FTP

Difícil de implantar seu site sem o acesso por FTP, certo? Eu li muitos tutoriais do pureftpd que explicam como criar usuários virtuais. Isso não se aplica realmente a mim, não é? Eu estava simplesmente pensando em permitir que os usuários façam o log via ftp, chroot eles para o diretório home, e é isso. Existe mais alguma coisa (desde a desativação do acesso root via ftp)?

SSH

Este é o meu principal problema. Como usuário, sempre gostei de poder conectar-me à minha conta via SSH, apenas para executar algumas operações em lote ou extrair um arquivo diretamente no servidor, em vez de ter que carregar cada arquivo individual via FTP. No entanto, eu não quero que meus usuários possam navegar através de todo o sistema de arquivos, etc. Eu não estou realmente familiarizado com a configuração SSH, então existe uma maneira de permitir que os usuários se conectem e "chrooting" para sua casa? ?

Outros pensamentos

Eu já estou gostando do meu lado, mas eu realmente gostaria de ter a opinião de todos os sábios gurus por aqui sobre como fazer as coisas direito, e como evitar os erros dos novatos. Eu tenho um botão de "reinicialização do sistema operacional" fácil de pressionar na interface administrativa do meu VPS, mas não quero ter que acessá-lo regularmente depois de ver a mensagem "H @ ked by th3 H4xx00r5" em todos os meus sites hospedados .

    
por Wookai 03.12.2009 / 02:32

2 respostas

5

Eu implanto todo o meu conteúdo da web via SFTP, SCP ou editando no servidor (ou através do CMS que eu usei). FTP, per se , não deve ser necessário.

Segundo - se você tiver permissões de usuário e grupo corretas, elas não poderão navegar nos sites de outras pessoas por meio da linha de comando.

Certamente, ser capaz de fazer login via SSH deve ser permitido, por exatamente os motivos que você declarou.

Eu, pessoalmente, não deixei os caras "mexerem" em seus próprios arquivos php.ini - eu não no VPS eu corro de maneira semelhante à sua (ou seja, hospedo alguns sites para mim e para os amigos). É o seu servidor, e você é quem permite que os outros o usem: então deixe-o usá-lo de acordo com suas regras. Eu não consigo pensar em um provedor de hospedagem compartilhada que eu já vi que permita que as pessoas ajustem suas configurações do php.ini.

O que vai acontecer em algum momento, no entanto, é confiar em seus amigos para não fazer algo malvado / cruel uns com os outros. / p>

Se você não pode confiar neles - eu não permitiria que eles tivessem acesso fora de um CMS.

Por exemplo, defino as raízes da Web de meu usuário de maneira diferente:

drwxr-x--- <user> apache

Isso permite que o apache veja o conteúdo do servidor, mas apenas o usuário pode fazer alterações.

    
por 03.12.2009 / 02:52
0

Eu corro um host por muitos e muitos anos agora. Algumas coisas que descobri naquela época é que, se você permitir que seus usuários executem scripts CGI, é mais ou menos "todas as apostas desativadas". Eles nem sempre podem fazer coisas não intencionais, mas é provável que você sinta a dor mais tarde por permitir isso.

Por um lado, você aumentou drasticamente as chances de buraco de segurança. Já tive usuários que instalam o phpBB (sob o meu suexec wrapper) e nunca o atualizam ... Já tive pessoas que escreviam scripts CGI, que eram buracos de segurança esperando para acontecer - apenas a falta de popularidade impediu isso.

Eu coloco cada usuário em seu próprio grupo. Ele veio a calhar quando eu fiz um usuário para um propósito (como um MUD, quando eles eram populares) e o dono do MUD poderia, então, ajustar arquivos usando as permissões do grupo.

De qualquer forma, se você estiver disposto a ajudar e disposto a gastar tempo para garantir que as pessoas não estejam fazendo coisas ruins, a maior parte disso é bem fácil. Apenas leva tempo longe de coisas melhores IMHO.

    
por 03.12.2009 / 04:22