Por padrão, os serviços que fornecem um shell remoto, como ssh ou telnet, ou uma sessão remota interativa para comandos como sftp, permitem que um usuário local mude para qualquer diretório para o qual tenham permissões e recuperem uma cópia de qualquer arquivo que possuam. acesso a.
Como uma configuração geral de segurança, isso é lamentável, pois há muitos arquivos e diretórios que podem ser lidos pela necessidade. Por exemplo, aqui sou eu um usuário não-root em alguma caixa remota do CentOS;
$ cd /etc
-bash-3.2$ ls -1
acpi
adjtime
aliases
...
por exemplo. Eu posso acessar muitas coisas, que idealmente você gostaria de restringir de algum usuário desconhecido que você deseja fornecer acesso local.
Aqui estou eu olhando todos os usuários locais configurados no arquivo /etc/passwd
;
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...
Sistemas Unix fornecem o comando chroot
, que permite redefinir o /
do usuário para algum diretório na hierarquia do sistema de arquivos, onde eles não podem acessar arquivos e diretórios "superiores".
No entanto, no seu caso, seria apropriado fornecer um chroot virtual implementado pelo serviço de shell remoto. O sftp pode ser facilmente configurado para restringir um usuário local a um subconjunto específico do sistema de arquivos usando uma configuração no
no seu caso, você deseja chroot
o adeveloper
user no diretório /var/www/html/website_abc
.
Você pode definir um diretório chroot para o usuário confiná-los ao subdiretório /var/www/html/website_abc
, assim como em /etc/ssh/sshd_config
;
Este material requer o openssh-server posterior a 4.8 ?, então provavelmente requer o CentOS 6.2
Match Group sftp
ChrootDirectory %h
AllowTcpForwarding no
(não testado, veja man sshd_config
para confirmar a sintaxe)
e adicione esses usuários ao grupo sftp;
groupadd sftp
usermod -d /var/www/html/website_abc adeveloper
usermod -G sftp adeveloper
Em relação às chaves compartilhadas
você deve criar um par de chaves adicional para os usuários do adeveloper e enviá-lo ao seu consultor. (ou alternativamente, mande-os enviar sua chave pública e adicioná-la ao arquivo authorized_keys para adeveloper
)
nunca desiste da sua chave privada, é por isso que ela é chamada privada; -)
alternativas tradicionais de FTP
vsftp / proftp etc também suportam configurações chroot, mas neste moderno dia ssh configurações são o caminho normal, e suporte para ftp é apenas histórico.
existem alguns links para tutoriais aqui;