Usuários normais podem prejudicar meu servidor?

Usuários normais podem prejudicar meu servidor?

eu tenho umPilha LEMP (Ubuntu 20.04)que está perfeitamente configurado e otimizado por mim. Não possui nenhum webpanel. Eu estava usando-o inicialmente apenas para meus próprios sites. Mais tarde, comecei a adicionar alguns sites de clientes ao servidor.

Como eles solicitaram acesso SFTP para gerenciar arquivos do site, decidi garantir que eles não pudessem acessar/editar arquivos confidenciais no servidor.

Lista das alterações que fiz para isolar os usos tanto quanto possível:

  1. Criou um usuário sudo (vamos chamaradministrador do servidor) para mim e o acesso root foi desativado
  2. chmod 700 /home/serveradmin(sem -R)
  3. Criei contas de usuário normais para meus clientes (ex. cliente1, cliente2...) e depois adicionei todas elas aoadministrador do servidorgrupo
  4. Definir usuário nginx comoadministrador do servidor
  5. Criado pool php-fpm diferente para cada cliente. (ex. proprietário: cliente1 grupo: serveradmin, o mesmo para ouvintes)
  6. Tornou os arquivos confidenciais do site inacessíveis a terceiros (por exemplo, o arquivo wp-config.php inclui credenciais de banco de dados)
  7. chmod -R 700para a pasta SSL do site.
  8. E claro, criei diferentes usuários e bancos de dados mysql para cada um dos clientes.

Agora, tenho 100% de certeza de que ninguém pode acessar a pasta /home/clientX de outras pessoas. Eles não podem editar ou remover pelo menos nenhum arquivo. No entanto, não sou um usuário Linux experiente e também não sou um provedor de hospedagem.a coisa e que,Esses clientes podem danificar/prejudicar meu servidor acessando e editando quaisquer arquivos do sistema fora da pasta/home? (por exemplo, os caminhos /etc, /var/run podem ser perigosos, eu acho).

Não alterei as permissões de pasta/arquivo dos arquivos de sistema padrão.

Então, meu servidor não está seguro? Ainda precisa de alterações para melhorar a segurança ou devo evitar totalmente dar-lhes acesso SFTP?

Atenciosamente.

Responder1

Pelo menos os pontos 3 e 4 são inválidos/inseguros.

  1. Criei contas de usuário normais para meus clientes (ex. client1, client2...) e depois adicionei todas elas ao grupo serveradmin

O que uma conta de usuário normal tem a ver com o administrador do servidor? Absolutamente nada, mesmo nomeando com sabedoria. Qual é o sentido de cada usuário do site pertencer ao serveradmingrupo?

  1. Defina o usuário nginx como serveradmin

Da mesma maneira. O NGINX deve ser executado sob seuterusuário, normalmente nginx(distros CentOS/RHEL) ou www-data(sistemas baseados em Debian). Não tem nada a ver com administração de servidores.

Não posso entrar em detalhes sobre como a configuração atual é insegura, pois isso precisa de muito mais detalhes, como propriedade de soquete para PHP, locais de arquivos, etc.

Uma configuração verdadeiramente segura pressupõe a maior separação possível do usuário, e isso se aplica aos serviços. Portanto, comece alocando (ou usando aquele fornecido pelo pacote) um usuário separado para NGINX e prossigapermissões seguras para PHP-FPM. É o usuário do NGINX que deve estar em cada grupo de usuários do site, e não o contrário:

usermod -a -G client1 nginx
usermod -a -G client2 nginx
...

Agora nginxo usuário pertence client1a client2grupos. O motivo é porque o nginxusuário realmente precisa ser capaz de ler todos os arquivos do site.

Os pools PHP-FPM, por outro lado, podem ser vinculados às client1:client1opções de tempo de execução e de escuta de soquete.

informação relacionada