O SFTP pode acessar arquivos em todo o disco

3

Eu tenho uma configuração do servidor SFTP, sempre que um usuário tenta se conectar através do SFTP, ele vê o diretório / home / user, mas também pode alterar o diretório para / home e até mesmo /

Como posso parar isso para que eles possam ver apenas o diretório inicial dos usuários atuais?

Eu tenho isso no meu sshd_config que

Subsystem sftp internal-sftp
Match group ftpaccess
    ChrootDirectory /home/sony
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    
por user2375592 06.08.2015 / 20:34

2 respostas

3

De link , ênfase minha:

Gravar acesso ao diretório chroot

... se um usuário é capaz de escrever no diretório chroot, então é possível para eles escalar seus privilégios para root e escapar do chroot. Uma forma de contornar isso é dê ao usuário dois diretórios home - uma casa "real" na qual eles podem gravar, e uma home SFTP que esteja bloqueada para manter sshd feliz e seu sistema seguro. Usando o mount -bind você pode fazer com que o diretório home real apareça como um subdiretório dentro do diretório home do SFTP, permitindo-lhes acesso total ao seu diretório home real.

Isso também pode ser usado para atingir outras metas. Por exemplo, o diretório inicial de um usuário pode ser bloqueado de acordo com as regras chroot do sshd e vincular montagens usadas para fornecer aos usuários acesso a outros diretórios:

# mkdir /home/user/web
# mount --bind /srv/web/example.com /home/user/web

Opcional, adicione uma entrada ao / etc / fstab:

# echo '/srv/web/example.com/ /home/user/web        none    bind' >> /etc/fstab

Agora o usuário pode efetuar login com SFTP, eles são chrooted para / home / user, mas eles vêem uma pasta chamada "web" que eles podem acessar para manipular arquivos em um site (supondo que eles tenham permissões corretas em / srv / web / example.com.

    
por 06.08.2015 / 20:56
0

Conforme especificado na página do manual sshd_config :

ChrootDirectory

Specifies the pathname of a directory to chroot(2) to after authentication. At session startup sshd(8) checks that all components of the pathname are root-owned directories which are not writable by any other user or group. After the chroot, sshd(8) changes the working directory to the user's home directory.

The pathname may contain the following tokens that are expanded at runtime once the connecting user has been authenticated: %% is replaced by a literal '%', %h is replaced by the home directory of the user being authenticated, and %u is replaced by the username of that user.

Portanto, definir o caminho de chroot /home/%u ou %h pode ser o que você está procurando.

Observe especialmente o requisito de que o diretório raiz inicial dos usuários do sftp (ou seja, /home/exampleuser1 , /home/exampleuser2 e assim por diante) seja de propriedade do usuário raiz para que isso funcione. O acesso de escrita ao usuário sftp só pode ser dado em subdiretórios. Este requisito estava sob escrutínio aqui .

    
por 06.08.2015 / 22:47

Tags