Aller au contenu
Couillaman le site une demo bientot ! ×

Installer un sftp avec chroot sur debian


dokuro
 Share

Messages recommandés

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 packages

apt-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: @plv

USER_NAME=$1

SFTP_GROUP_NAME=sftp_chroot

if [ "x$USER_NAME" == "x" ]; then

echo "you have to provide a user name"

exit;

fi

getent group $SFTP_GROUP_NAME > /dev/null 2&>1

if [ $? -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&>1

if [ $? -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

Lien vers le commentaire
Partager sur d’autres sites

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.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

 Share

×
×
  • Créer...