dokuro Posté(e) le 28 décembre 2014 Signaler Share Posté(e) le 28 décembre 2014 Introduction Ce tutoriel explique pas à pas comment installer un serveur sftp sur debian wheezy avec les droits d'accès qui vont bien sur les répertoires. Installation de base SFTP se base sur ssh. Il faut installer quelques packages : # basic ssh packagesapt-get install ssh openssh-server Création du groupe unix sftp_chroot Ce groupe contiendra la liste des users qui peuvent se connecter en sftp addgroup sftp_chroot Configuration sshd_config Evolutions à faire dans /etc/ssh/sshd_config # Vérifier qu'on a bien : Subsystem sftp /usr/lib/openssh/sftp-server# ajouter à la fin du fichier : Match Group sftp_chroot ChrootDirectory /home/%u ForceCommand internal-sftp AllowTcpForwarding no# pensez à relancer le serveur ssh : /etc/init.d/ssh restart Créer un compte sftp Créer un user unix Créer un user unix classique useradd testuser --gid sftp_chroot --groups sftp_chroot -m --shell /bin/false droits d'accès sur le home directory Pour empêcher le sftp de remonter dans l'arborescence, on peut jouer avec les droits d'accès # base directory given to root only chown root /home/testuser chmod go-w /home/testuser# create a writable directory mkdir /home/testuser/writeable chown testuser:sftp_chroot /home/testuser/writeable chmod ug+rwX /home/testuser/writeable Le script qui fait tout pour vous Voilà un petit script bash qui fait tout pour vous. N'utilisez le qu'une fois que vous avez compris ce que vous faites. Et si ça casse tout chez vous, je plaide non coupable :-). #/bin/bash# author : Philippe Le Van, twitter: @plvUSER_NAME=$1SFTP_GROUP_NAME=sftp_chrootif [ "x$USER_NAME" == "x" ]; then echo "you have to provide a user name"exit;fi getent group $SFTP_GROUP_NAME > /dev/null 2&>1if [ $? -ne 0 ]; then echo "group $SFTP_GROUP_NAME does not exist."; echo "see this (french) tutorial : http://www.kitpages.fr/fr/cms/193/installer-un-sftp-chroote-sur-debian";exit;fi getent passwd $USER_NAME > /dev/null 2&>1if [ $? -eq 0 ]; then echo "user already exists";exit;fi useradd $USER_NAME --gid $SFTP_GROUP_NAME --groups $SFTP_GROUP_NAME -m --shell /bin/false echo "user created";# base directory given to root only chown root /home/$USER_NAME chmod go-w /home/$USER_NAME# create a writable directory mkdir /home/$USER_NAME/writeable chown $USER_NAME:$SFTP_GROUP_NAME /home/$USER_NAME/writeable chmod ug+rwx /home/$USER_NAME/writeable echo "access right ok"; echo "change password"; passwd $USER_NAME Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.