Há algum tempo eu tenho usado o rssh nos servidores dos clientes, isso porque eu posso criar um usuário e enjaular a solução nele. Assim posso customizar permissões em arquivos e diretórios de forma que melhore a segurança do servidor como um todo. Além disso por abandonar o uso de FTP pelo SFTP e aumentando também a segurança na troca de arquivos (com dados criptografados).
Instalando rssh e dependências da solução
apt-get install -y rssh ssh openssh-server
Customização a configuração e criando o sistema virtualizado
mv /etc/rssh.conf /etc/rssh.conf.old echo "logfacility = LOG_USER" > /etc/rssh.conf echo "allowsftp" >> /etc/rssh.conf echo "umask = 066" >> /etc/rssh.conf echo "chrootpath = /home/sftp" >> /etc/rssh.conf chmod u+s /usr/lib/rssh/rssh_chroot_helper mkdir /home/sftp/ cd /usr/share/doc/rssh/examples sh mkchroot.sh /home/sftp
Depois disso crio um usuário e ajustando o tipo de interpretador (no caso, o rssh) e diretório
useradd -m -d /home/sftp/quijaua.net -s /usr/bin/rssh quijaua chown -R root: /home/sftp/quijaua.net
Depois crio o diretório público, onde irei colocar o CMS e um diretório temporário que será de uso exclusivo do projeto e do usuário.
mkdir /home/sftp/quijaua.net/{tmp,public_html} chown -R quijaua: /home/sftp/quijaua.net/{public_html,tmp}
Bem, só com esses ajustes já está configurado a virtualização simples. Se acaso quiser que o usuário tenha acessa ao servidor é necessário inserir uma senha e colocar instruções no servidor SSH.
Para inserir uma senha, uso o comando
passwd quijaua
E as instruções para o SSH é só inserir no arquivo /etc/ssh/sshd_config o conteúdo
Match User quijaua ChrootDirectory /home/sftp/quijaua.net AllowTCPForwarding no X11Forwarding no PasswordAuthentication yes ForceCommand internal-sftp
e reiniciar o SSH.
/etc/init.d/ssh restart