Forum debian-fr.org

Rechercher:

* Connexion   * M’enregistrer

* FAQ    * Rechercher





Poster un nouveau sujet Répondre au sujet  [ 25 messages ] 
Auteur Message
MessagePosté: 03 Sep 2014 05:19 
Hors ligne
Grand posteur

Inscription: 03 Juin 2011 16:20
Messages: 118
Bonjour à tous,
Je vous propose la mise en place d'un serveur ftp.
Avec ce serveur, chacun a un espace personel et un partagé
commençons par installer vsftpd et openssl:
Code:
$ su
# apt-get install vsftpd openssl

le serveur ftp sécurisé a besoin d'un certificat. On le crée avec les commandes suivantes:
Code:
# openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout vsftpd.pem -out vsftpd.pem
# mv vsftpd.pem /etc/ssl/certs
# chown root:root /etc/ssl/certs/vsftpd.pem
# chmod 600 /etc/ssl/certs/vsftpd.pem

nous allons produire le fichier de configuration. Je me suis aidé de la page manuel vsftpd.conf. J'y ai omit les options qui ont une valeur par défaut qui me convient.
Code:
$ man vsftpd.conf

pour éditer ce fichier:
Code:
$ su
# sudo gedit /etc/vsftpd.conf

par exemple:
Code:
async_abor_enable=YES
debug_ssl=YES
delete_failed_uploads=YES
dirlist_enable=YES
download_enable=YES
local_enable=YES
listen=YES
require_ssl_reuse=NO
ssl_enable=YES
strict_ssl_read_eof=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.userlist
userlist_enable=YES
validate_cert=NO
write_enable=YES
local_umask=0111
connect_from_port_20=YES
listen_port=21
chroot_local_user=YES
chroot_list_file=/etc/vsftpd.chroot_list
ssl_ciphers=HIGH
require_ssl_reuse=NO
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

xferlog_enable=YES
xferlog_std_format=YES

ftpd_banner="Bienvenu chez ******"
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
secure_chroot_dir=/var/run/vsftpd/empty

pasv_address=<votre adresse ip>
pasv_min_port=40000
pasv_max_port=40010
pasv_promiscuous=YES
pasv_enable=YES

les option "chroot_local_user=YES" et "chroot_list_file=/etc/vsftpd.chroot_list" indiquent le fichier /etc/vsftpd.chroot_list où l'on y trouve les utilisateur locaux qui ne seront pas enfermé dans leur dossier personel. Avant de créer les utilisateurs qui pourrons se logger, nous allons créer le fichier /etc/vsftpd.chroot_list avec la commande cut (si on le fait après, il y aura des utilisateurs qui pourrons sortir de leur dossier personel):
Code:
# cut -d: -f1 /etc/passwd > /etc/vsftpd.chroot_list

pour faire les utilisateurs, j'ai écris ce script qui ajoute un utilisateur au système. Pour en créer plusieus, utilisez une boucle for:
Code:
# for i in toto titi tata ; do ./addftpuser "${i}"; done

ce script attribue aux utilisateur le shell /bin/false. Il faut donc l'ajouter dans le fichier /etc/shells (mettez bien >> et non pas > sinon le fichier sera effacé):
Code:
# echo "/bin/false" >> /etc/shells

nous allons créer un utilisateur pour avoir un dossier à se partager entre les utilisateurs du serveur:
Code:
# adduser commun
# usermod -s /bin/false commun
# chmod -R 755 /home/commun
# mkdir /home/commun/pub
# chmod 777 /home/commun/pub
# chown commun:commun -R /home/commun

voici le script:
Code:
#!/bin/bash
if [ $USER = "root" ]; then
   if [ "$1" != "" ]; then
      adduser "$1"
      usermod -s /bin/false "$1"
      chown root:root /home/"$1"
      mkdir /home/"$1"/commun
      chown commun:commun /home/"$1"/commun
      chmod 755 /home/"$1"/commun
      mkdir /home/"$1"/mesfichiers
      chown "$1":"$1" /home/"$1"/mesfichiers
      chmod 755 /home/"$1"/mesfichiers
      echo "$1" >> /etc/vsftpd.userlist
      echo "/home/commun /home/"$i"/commun    auto    bind,defaults    0   0"  >> /etc/fstab
      mount /home/"$i"/commun
   else
      echo "indiquez le nom de l'utilisateur en parametre"
   fi
else
   echo "script à éxecuter par root"
fi

pour rendre le script éxecutable:
Code:
# chmod a+x addftpuser.sh

Dans le fichier /etc/vsftpd.conf de mon exemple, les ports utilisés vont de 40000 à 40010. Il faudra donc ouvrir la plage de ports 40000 à 40010. De quelle manière? cela dépend de votre fournisseur d'accès, ou de votre materiel. Si Vous êtes chez free, il vous faudra vous rendre sur la page de votre compte, choisir l'onglet freebox, gérer le routeur freebox, redirection. indiquez la plage 40000 à 40010, redirigez-la vers l'adresse ip privé où se trouve votre serveur ftp, cliquez sur le plus, cliquez sur enregistrer et redémarrez votre freebox. Pour que cette adresse soit toujours la même, faite un bail dhcp permanent. Vous obtiendrez l'adresse mac avec la commande ifconfig.
on va bientôt lancer le serveur ftp. Avant cela, vérifions que nous avons bien le réseau:
Code:
# ping 78.227.84.43

arrêter avec ctrl+c
si vous n'avez pas de réseau:
Code:
# service networking restart

Nous pouvons maintenant lancer le serveur ftp:
Code:
# service vsftpd restart

si vous voulez utiliser ftp-ssl, il faudra le lancer en mode passif avec l'argument -p:
Code:
$ ftp-ssl -p

Vous pouvez visualiser les connexions en temps réel avec la commande ps en argument de watch:
Code:
$ watch -n 1 'ps -eaf | grep vsftpd | grep -v grep'

vous pouvez aussi voir qui a téléchargé quoi avec le fichier xferlog (sous root):
Code:
# less /var/log/xferlog

vous trouverez la syntaxe de ces lignes ici: http://www.castaglia.org/proftpd/doc/xferlog.html

et voila...


Haut
 Profil  
 
MessagePosté: 03 Sep 2014 10:30 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 15 Oct 2004 00:13
Messages: 24232
Localisation: Père.Igor (24)
Je n'ai fait que parcourir mais quand on parle de "sécurité", en principe, on évite ce genre de lignes :
Citation:
# chmod 777 /home/commun/pub

_________________
.
"L'action est plus efficace que la polémique, mais plus rare." Ricardo (1936-20..)
http://rictux.fr
.


Haut
 Profil  
 
MessagePosté: 03 Sep 2014 14:11 
Hors ligne
Grand posteur

Inscription: 03 Juin 2011 16:20
Messages: 118
c'est un dossier monté dans le dossier personnel qui doit être accessible par tous ceux qui ont un compte sur mon serveur.

mais sinon, j'ai une idée: créer un groupe pour ces utilisateur et chmod 770. Qu'en pensez-vous?


Haut
 Profil  
 
MessagePosté: 03 Sep 2014 15:43 
Hors ligne
Modérateur du forum
Avatar de l’utilisateur

Inscription: 03 Mai 2008 05:16
Messages: 4219
Localisation: Nantes
Loin de moi l'idée de critiquer cette initiative, je me posais juste la question de l'intérêt du ftp devant le sftp? J'ai d'ailleurs un tuto sur le sujet qui traine sur mon serveur, actuellement down pour cause de déménagement si ça en intéresse certains.

_________________
Adhérent april 8505
Et toi, tu boinc? - Auto-hébergez vous avec Host@home
Debian wheezy, dwm ou fluxbox, suckless-tools

Pensez à correctement formater vos titres dans la catégorie SUPPORT


Haut
 Profil  
 
MessagePosté: 03 Sep 2014 15:51 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 15 Oct 2004 00:13
Messages: 24232
Localisation: Père.Igor (24)
matser a écrit:
c'est un dossier monté dans le dossier personnel qui doit être accessible par tous ceux qui ont un compte sur mon serveur.

mais sinon, j'ai une idée: créer un groupe pour ces utilisateur et chmod 770. Qu'en pensez-vous?

C'est ce à quoi je pensais.
Par principe, sans rares exceptions, je ne me sers jamais du 777.
Les groupes ont été fait pour ça.

@ Thuban :
Oui, je le pensais aussi avec le tuto de Yanlolot, que j'ai utilisé longtemps.
https://www.debian-fr.org/serveur-sftp-shell-reduit-rssh-et-chroot-t27796.html

_________________
.
"L'action est plus efficace que la polémique, mais plus rare." Ricardo (1936-20..)
http://rictux.fr
.


Haut
 Profil  
 
MessagePosté: 03 Sep 2014 17:42 
Hors ligne
Grand posteur

Inscription: 03 Juin 2011 16:20
Messages: 118
voici ce que j'ai fait:
le dossier pub appartient à commun:commun. J'ai ajouté les utilisateurs au groupe commun, puis chmod 770 sur le dossier pub
en regardant un peu le tuto indiqué, je vois que c'est pour faire du sftp. Mon tuto est pour faire du ftps, ce n'est pas pareil.
ce n'est pas du pur ftp, il y a la couche ssl/tls dans ce serveur. Dans filezilla, on n'accède pas à mon serveur en remplissant les champs host user password. On y accède par le gestionnaire de site. On doit choisir tls explicite, demander mot de passe et dans l'onglet type de transfert, on doit choisir le mode passif. Lors du login, il y a des transaction en tls et ssl
Code:
Statut :   Connexion à 78.227.84.43:21...
Statut :   Connexion établie, attente du message d'accueil...
Réponse :   220 "Bienvenu chez ******"
Commande :   AUTH TLS
Réponse :   234 Proceed with negotiation.
Statut :   Initialisation de TLS...
Statut :   Vérification du certificat...
Commande :   USER moi
Statut :   Connexion TLS/SSL établie.
Réponse :   331 Please specify the password.
Commande :   PASS **********
Réponse :   230 Login successful.
Commande :   SYST
Réponse :   215 UNIX Type: L8
Commande :   FEAT
Réponse :   211-Features:
Réponse :    AUTH TLS
Réponse :    EPRT
Réponse :    EPSV
Réponse :    MDTM
Réponse :    PASV
Réponse :    PBSZ
Réponse :    PROT
Réponse :    REST STREAM
Réponse :    SIZE
Réponse :    TVFS
Réponse :    UTF8
Réponse :   211 End
Commande :   OPTS UTF8 ON
Réponse :   200 Always in UTF8 mode.
Commande :   PBSZ 0
Réponse :   200 PBSZ set to 0.
Commande :   PROT P
Réponse :   200 PROT now Private.
Statut :   Connecté
Statut :   Récupération du contenu du dossier...
Commande :   PWD
Réponse :   257 "/"
Commande :   TYPE I
Réponse :   200 Switching to Binary mode.
Commande :   PASV
Réponse :   227 Entering Passive Mode (78,227,84,43,156,71).
Commande :   LIST
Réponse :   150 Here comes the directory listing.
Réponse :   226 Directory send OK.
Statut :   Contenu du dossier affiché avec succès

qu'en pensez-vous?


Haut
 Profil  
 
MessagePosté: 03 Sep 2014 20:50 
Hors ligne
Grand posteur

Inscription: 03 Juin 2011 16:20
Messages: 118
voici les commandes pour créer commun:
Code:
# adduser commun
# usermod -s /bin/false commun
# chmod -R 755 /home/commun
# mkdir /home/commun/pub
# chmod 770 /home/commun/pub
# chown commun:commun -R /home/commun

voici aussi le script modifié pour mettre les nouveaux utilisateurs dans le groupe "commun"
Code:
#!/bin/bash
if [ $USER = "root" ]; then
   if [ "$1" != "" ]; then
      adduser "$1"
      usermod -a -G commun -s /bin/false "$1"
      chown root:root /home/"$1"
      mkdir /home/"$1"/commun
      chown commun:commun /home/"$1"/commun
      chmod 755 /home/"$1"/commun
      mkdir /home/"$1"/mesfichiers
      chown "$1":"$1" /home/"$1"/mesfichiers
      chmod 755 /home/"$1"/mesfichiers
      echo "$1" >> /etc/vsftpd.userlist
      echo "/home/commun /home/"$i"/commun    auto    bind,defaults    0   0"  >> /etc/fstab
      mount /home/"$i"/commun
   else
      echo "indiquez le nom de l'utilisateur en parametre"
   fi
else
   echo "script à éxecuter par root"
fi


Haut
 Profil  
 
MessagePosté: 28 Sep 2014 00:54 
Hors ligne
Grand posteur

Inscription: 03 Juin 2011 16:20
Messages: 118
petite correction:
dans ce script, il faut remplacer "$i" par "$1"


Haut
 Profil  
 
MessagePosté: 28 Sep 2014 21:44 
Hors ligne
Grand posteur

Inscription: 03 Juin 2011 16:20
Messages: 118
Code:
#!/bin/bash
if [ $USER = "root" ]; then
   if [ "$1" != "" ]; then
      adduser "$1"
      usermod -a -G commun -s /bin/false "$1"
      chown root:root /home/"$1"
      mkdir /home/"$1"/commun
      chown commun:commun /home/"$1"/commun
      chmod 755 /home/"$1"/commun
      mkdir /home/"$1"/mesfichiers
      chown "$1":"$1" /home/"$1"/mesfichiers
      chmod 755 /home/"$1"/mesfichiers
      echo "$1" >> /etc/vsftpd.userlist
      echo "/home/commun /home/"$1"/commun    auto    bind,defaults    0   0"  >> /etc/fstab
      mount /home/"$1"/commun
   else
      echo "indiquez le nom de l'utilisateur en parametre"
   fi
else
   echo "script à éxecuter par root"
fi


Haut
 Profil  
 
MessagePosté: 29 Sep 2014 07:49 
Hors ligne
Modérateur du forum
Avatar de l’utilisateur

Inscription: 20 Avr 2007 17:34
Messages: 5491
Localisation: sud ouest
Moi, ce qui me gène, c'est ça:
Code:
$ su
# sudo gedit /etc/vsftpd.conf

Si tu fais un su (sous entendu su root), inutile de faire un sudo ensuite, d'ailleurs pour se substituer à quel utilisateur ?
Mais surtout, il y a beaucoup plus propre en utilisant la commande gksu si tu veux modifier un fichier système avec gedit.

_________________
ubuntu est un mot africain signifiant "je n'ai pas réussi à configurer ma debian" (je n'aime pas ubuntu, ça se voit non ?)


Haut
 Profil  
 
MessagePosté: 29 Sep 2014 08:16 
Hors ligne
Contributeur
Avatar de l’utilisateur

Inscription: 28 Aoû 2003 13:01
Messages: 14767
Localisation: Le domaine de Henri IV
Salut,

Auriez vous TOUS oublié que nous avons un wiki pour ce genre de recettes :041

_________________
Debian 3.17-1.slh.2-aptosid (3.17-4) GT520 Nvidia 343.22 Intel (I5) ~3GHz

Pensez à correctement formater vos titres dans SD :

https://www.debian-fr.org/important-mod ... 49679.html


Haut
 Profil  
 
MessagePosté: 29 Sep 2014 17:05 
Hors ligne
Vraiment, particulièrement bavard(e)!
Avatar de l’utilisateur

Inscription: 11 Fév 2012 20:43
Messages: 1788
Localisation: 22, Acacia Avenue
ggoodluck47 a écrit:
Salut,

Auriez vous TOUS oublié que nous avons un wiki pour ce genre de recettes :041


SOS wiki admin not found! :033

_________________
Manuel d'installation | Manuel de référence << RTFM!
Guide de sécurisation


Haut
 Profil  
 
MessagePosté: 29 Sep 2014 19:54 
Hors ligne
Grand posteur

Inscription: 03 Juin 2011 16:20
Messages: 118
gedit ne fonctionne pas quand on est root. On doit lui mettre sudo pour qu'il démarre


Haut
 Profil  
 
MessagePosté: 30 Sep 2014 08:27 
Hors ligne
Contributeur
Avatar de l’utilisateur

Inscription: 28 Aoû 2003 13:01
Messages: 14767
Localisation: Le domaine de Henri IV
Salut,

matser a écrit:
gedit ne fonctionne pas quand on est root. On doit lui mettre sudo pour qu'il démarre


C'est à ça que sert gksu et kdesu :smile:

_________________
Debian 3.17-1.slh.2-aptosid (3.17-4) GT520 Nvidia 343.22 Intel (I5) ~3GHz

Pensez à correctement formater vos titres dans SD :

https://www.debian-fr.org/important-mod ... 49679.html


Haut
 Profil  
 
MessagePosté: 30 Sep 2014 08:29 
Hors ligne
Contributeur
Avatar de l’utilisateur

Inscription: 28 Aoû 2003 13:01
Messages: 14767
Localisation: Le domaine de Henri IV
Re,

Citation:
SOS wiki admin not found! :033


Ce qui en clair, veut dire ?

_________________
Debian 3.17-1.slh.2-aptosid (3.17-4) GT520 Nvidia 343.22 Intel (I5) ~3GHz

Pensez à correctement formater vos titres dans SD :

https://www.debian-fr.org/important-mod ... 49679.html


Haut
 Profil  
 
MessagePosté: 30 Sep 2014 12:41 
Hors ligne
Modérateur du forum
Avatar de l’utilisateur

Inscription: 27 Mar 2009 16:47
Messages: 3206
Localisation: Bretagne (Rennes)
ggoodluck47 a écrit:
Citation:
SOS wiki admin not found! :033


Ce qui en clair, veut dire ?

Que lol n’est plus dans le coin depuis un moment déjà.
Je dois le contacter au sujet du Wiki, mais j’ai manqué de temps ces derniers jours. Je vais essayer de faire ça dans la semaine.

_________________
De chacun selon ses moyens,
à chacun selon ses besoins.


Haut
 Profil  
 
MessagePosté: 30 Sep 2014 17:43 
Hors ligne
Très bavard(e)!
Avatar de l’utilisateur

Inscription: 23 Avr 2013 21:10
Messages: 482
Créer un ftp sécurisé, ça ressemble plutôt à cela, non ? Hihi

Code:
aptitude install openssh-sftp-server


Haut
 Profil  
 
MessagePosté: 30 Sep 2014 20:48 
Hors ligne
Grand posteur

Inscription: 03 Juin 2011 16:20
Messages: 118
Code:
il faut tout lire, pas juste les codes


je ne fait pas un serveur sftp (ssh) mais un serveur ftps (accessible avec un client ftp, comme filezilla), je l'ai dis plus haut, ce n'est pas pareil!


Haut
 Profil  
 
MessagePosté: 30 Sep 2014 22:19 
Hors ligne
Très bavard(e)!
Avatar de l’utilisateur

Inscription: 23 Avr 2013 21:10
Messages: 482
Citation:
ce n'est pas pareil!

Ha ben c'est sur qu'au niveau sécurité, ce n'est pas pareil :)

L'un se base sur de la confiance envers un pair, l'autre se base généralement sur la confiance que tu as envers une miriade d'entreprises privées et d'agences gouvernementales.

Difficile de faire un choix .. :troll:


Haut
 Profil  
 
MessagePosté: 01 Oct 2014 05:23 
Hors ligne
Grand posteur

Inscription: 03 Juin 2011 16:20
Messages: 118
Ce n'est pas non plus du ftp, c'est du ftps :018 . On a pas tous accès à mon serveur. Pour cela, il faut être inscrit dans le fichier /etc/vsftpd.userlist
les utilisateurs qui apparaissent dans ce fichier ont chacun un nom et un mot de passe. En utilisant filezilla, ils n'arriveront à rien du tout si il tape l'adresse ip dans la boite hôte. Il devront plutôt ouvrir le gestionnaire de site, en ajouter un, donner l'ip, option "demander un mot de passe", tls explicite, mode passif, encodage utf8 et ensuite cliquer sur "connexion" puis donner son mot de passe.


Haut
 Profil  
 
MessagePosté: 05 Oct 2014 00:45 
Hors ligne
Grand posteur

Inscription: 03 Juin 2011 16:20
Messages: 118
voici une autre version du script:
Code:
#!/bin/bash
if [ $USER = "root" ]; then
   if [ "$1" != "" ]; then
      adduser "$1" &&\
      usermod -a -G commun -s /bin/false -d /serveurftp/"$1" -m "$1" &&\
      chown root:root /serveurftp/"$1" &&\
      mkdir /serveurftp/"$1"/commun &&\
      chown commun:commun /serveurftp/"$1"/commun &&\
      chmod 0770 /serveurftp/"$1"/commun &&\
      mkdir /serveurftp/"$1"/mesfichiers &&\
      chown "$1":"$1" /serveurftp/"$1"/mesfichiers &&\
      chmod 0700 /serveurftp/"$1"/mesfichiers &&\
      echo "$1" >> /etc/vsftpd.userlist &&\
      echo "/serveurftp/commun /serveurftp/"$1"/commun    auto    bind,defaults    0   0"  >> /etc/fstab &&\
      mount /serveurftp/"$1"/commun
   else
      echo "indiquez le nom du nouvel utilisateur"
   fi
else
   echo "script à éxecuter par root"
fi

comme ça si une ligne foire, il ne fera pas les lignes suivantes


Haut
 Profil  
 
MessagePosté: 15 Oct 2014 15:06 
Hors ligne
Nouvel utilisateur

Inscription: 11 Sep 2013 21:33
Messages: 22
Localisation: Montpellier, France
Salut !

Sympa cette discussion, suite à cette remarque :

haleth a écrit:
Citation:
ce n'est pas pareil!

Ha ben c'est sur qu'au niveau sécurité, ce n'est pas pareil :)

L'un se base sur de la confiance envers un pair, l'autre se base généralement sur la confiance que tu as envers une miriade d'entreprises privées et d'agences gouvernementales.

Difficile de faire un choix .. :troll:


Je me demande ce qui est le mieux ? Un FTPs ou un sFTP ?

Par soucis de simplicité, j'ai toujours utilisé un serveur sFTP, c'est super simple à installer et à sécuriser.

Voir ce tuto

Mais du coup, je me trompe peut-être ?

_________________
Security-HelpZone

@Dinath_


Haut
 Profil  
 
MessagePosté: 16 Oct 2014 00:14 
Hors ligne
Grand posteur

Inscription: 03 Juin 2011 16:20
Messages: 118
peut-on faire du ssh sous windows et mac?
parmi les utilisateurs de mon serveur, je suis le seul qui est sous linux
si c'est possible, il se pourrait que je me convertisse au ssh.
Je ne suis pas sûr mais je crois avoir vu, dans filezilla, des options pour le ssh. Je me trompe?
Sinon, merci pour le tuto


Haut
 Profil  
 
MessagePosté: 16 Oct 2014 08:16 
Hors ligne
Très bavard(e)!
Avatar de l’utilisateur

Inscription: 23 Avr 2013 21:10
Messages: 482
filezilla inclut une couche sftp.


Haut
 Profil  
 
MessagePosté: 16 Oct 2014 09:25 
Hors ligne
Grand posteur

Inscription: 03 Juin 2011 16:20
Messages: 118
merci pour l'info.


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 25 messages ] 

Index du forum » Forums d'aide » Trucs et Astuces


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
Flux RSS Flux RSS Liste des flux Liste des flux
Powered by phpBB® Forum Software © phpBB Group
Traduction par: phpBB-fr.com
SEO
[ Time : 0.853s | 12 Queries | GZIP : Off ]