Dando acesso SSH a um usuário e problemas de segurança

6

Ok, tenho um VPS e criei uma conta para um amigo, para que ele possa hospedar seus próprios domínios (usando os recursos de revendedor no DirectAdmin). Ele está pedindo acesso SSH, e eu sei que isso é provavelmente uma má ideia. Ele tem acesso a todo o meu servidor, como executar comandos, acessar meus domínios que eu hospedo no meu servidor? Eu entrei no meu SSH usando os detalhes da sua conta e ele me permitiu navegar por todas as pastas / arquivos raiz, e a conta dele está em / home / AccountName /.

Existe alguma maneira de restringir seu acesso apenas à sua pasta? E os comandos que ele pode usar?

Editar: ele pode instalar programas e outras coisas no meu servidor?

    
por Kris Sauquillo 28.04.2010 / 21:33

4 respostas

4

Como um usuário normal, seu amigo não poderá causar muito dano ao seu servidor (com certeza ele pode gerar uma garfo ou encher seu disco, mas se ele for realmente um amigo, provavelmente não conseguirá um pau se move assim. Meus amigos pegam as caixas de login reais na minha máquina se eles pedem uma conta, e uma palestra severa que, se eles fizerem qualquer coisa que me irrita, eles serão expulsos da máquina.

Parece que você não confia muito em seu "amigo", então, além da resposta do The Rook, eu também direi que uma pessoa competente com capacidade de executar um script PHP pode ser quase tão perigosa quanto usuário com acesso SSH irrestrito (habilitado para login), e suponho que seu servidor permita PHP. Lembre-se que o usuário pode executar código não confiável via PHP, até e inclusive baixar, compilar e executar outros programas arbitrários em seu sistema (embora dentro das limitações dos privilégios do usuário do servidor web). De modo geral, a menos que você esteja fazendo chrooting / jailing no seu servidor da Web, qualquer coisa que seu amigo possa ter visto com seu shell de login ele pode ver com alguns scripts PHP não muito criativos.

Conclusão: dar a alguém uma conta no seu sistema e, em seguida, bloquear seu shell em / etc / passwd & definir a opção chroot SFTP ajuda, mas você deve considerar as implicações de segurança do acesso any e seu nível de confiança nessa pessoa.

    
por 28.04.2010 / 22:12
2

Dar acesso FTP a alguém é uma das piores coisas que você pode fazer em termos de segurança de rede. Os worms vão farejar o tráfego de rede procurando por ftp e usarão isso para se espalhar. Eu pessoalmente tenho limpado alguns sites que infectados como este.

Você pode desativar o acesso ao shell para a conta do usuário em / etc / passwd, neste caso o ssh é usado apenas para SFTP. Você também pode definir o ChrootDirectory em seu arquivo sshd_config para impedir que o usuário acesse arquivos fora de uma árvore de diretórios de sua escolha. ChrootDirectory não deveria ser necessário, você deveria estar usando o controle de acesso a arquivos do Linux. Por exemplo, se o arquivo não pertence ao usuário e os privilégios globais foram removidos, esse usuário não poderá acessar o arquivo. Use chmod 700 em vez de 777. O último número é os privilégios globais e 7 dá a todos os usuários acesso total a esse arquivo. chown user:group filename é usado para alterar o usuário / grupo que possui o arquivo.

    
por 28.04.2010 / 22:01
0

SSH e FTP, etc. REQUER acesso ao resto dos arquivos, pois eles executam comandos dos diretórios bin para listar arquivos, etc. Alguns servidores FTP / SSH suportam o chroot para fornecer acesso apenas aos arquivos corretos, ou até mesmo falsificar o arquivo. acessar completamente.

Você pode (e deve) proteger seus diretórios pessoais e bloquear todos os arquivos de sites para apenas os usuários que precisam deles. Seu (s) site (s) provavelmente devem ser bloqueados para a propriedade yourname: www-data (em sistemas debian) ou seunome: apache (em sistemas redhat), enquanto o dele seria bloqueado para propriedade seu nome: www-data ou nome: apache ( do mesmo jeito). As permissões do diretório inicial e do site devem ser o = rwx, g = rx, o = os arquivos serão os mesmos sem x. Defina g + w e g + x, conforme necessário, para que determinados aplicativos da Web atualizem seus arquivos. Em particular, os diretórios de upload, temporários e de cache nos sites geralmente precisam de permissões g + w.

Execute man chmod e man chown no seu servidor e leia se você não tem certeza do que isso significa.

Além disso, considere executar algo como plesk / webmin no seu servidor para facilitar o gerenciamento (não bom, mas talvez seja melhor se você for novato em tudo isso). Ou procure outras opções de revendedor que bloqueiam as coisas melhor para você não precisar.

    
por 28.04.2010 / 23:18
0

Se você está preocupado, você pode criar um ambiente chroot para ele, com acesso apenas às ferramentas e arquivos que ele precisa.

    
por 29.04.2010 / 03:37