<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.home.tartarefr.eu/index.php?action=history&amp;feed=atom&amp;title=Services%2FFTP%2FSFTP</id>
	<title>Services/FTP/SFTP - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.home.tartarefr.eu/index.php?action=history&amp;feed=atom&amp;title=Services%2FFTP%2FSFTP"/>
	<link rel="alternate" type="text/html" href="https://wiki.home.tartarefr.eu/index.php?title=Services/FTP/SFTP&amp;action=history"/>
	<updated>2026-07-06T19:01:28Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.home.tartarefr.eu/index.php?title=Services/FTP/SFTP&amp;diff=162&amp;oldid=prev</id>
		<title>Didier : Page créée avec « Pour donner un accès en téléversement à un tiers, la solution la plus logique serait d&#039;utiliser ssh et de limiter ce tiers au serveur sFTP. Bien que ce ne soit obligat... »</title>
		<link rel="alternate" type="text/html" href="https://wiki.home.tartarefr.eu/index.php?title=Services/FTP/SFTP&amp;diff=162&amp;oldid=prev"/>
		<updated>2017-05-06T09:49:06Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « Pour donner un accès en téléversement à un tiers, la solution la plus logique serait d&amp;#039;utiliser ssh et de limiter ce tiers au serveur sFTP. Bien que ce ne soit obligat... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Pour donner un accès en téléversement à un tiers, la solution la plus logique serait d&amp;#039;utiliser ssh et de limiter ce tiers au serveur sFTP. Bien que ce ne soit obligatoire, celui-ci serait emprisonné dans son répertoire utilisateur (chroot)&lt;br /&gt;
&lt;br /&gt;
== Création du groupe et des utilisateurs ==&lt;br /&gt;
&lt;br /&gt;
Création du groupe &amp;#039;&amp;#039;sftponly&amp;#039;&amp;#039; qui limiterait les utilisateurs à l&amp;#039;utilisation de sFTP (accès SSH interdit)&lt;br /&gt;
 groupadd sftponly&lt;br /&gt;
Création d&amp;#039;un utilisateur dont l&amp;#039;accès serait uniquement via sFTP (pas d&amp;#039;ouverture de session possible, en local ou distant) et affectation d&amp;#039;un mot de passe.&lt;br /&gt;
 useradd -m -s /bin/false -c &amp;#039;sFTP User Only&amp;#039; sftptest&lt;br /&gt;
 usermod -aG sftponly  sftptest&lt;br /&gt;
 passwd sftptest&lt;br /&gt;
&lt;br /&gt;
== Modification de la configuration du démon SSH ==&lt;br /&gt;
&lt;br /&gt;
Dans le fichier &amp;lt;path&amp;gt;/etc/ssh/sshd_config&amp;lt;/path&amp;gt;&lt;br /&gt;
Modifier le programme gérant le sFTP afin d&amp;#039;utiliser le wrapper interne à ssh pour lancer le programme sFTP. En effet le binaire ne sera pas accessible depuis le chroot.&lt;br /&gt;
 Subsystem       sftp    internal-sftp&lt;br /&gt;
&lt;br /&gt;
Ajouter à la fin du fichier, la configuration des utilisateurs ayant pour groupe &amp;#039;&amp;#039;sftponly&amp;#039;&amp;#039; afin de les emprisonner dans leur répertoire personnel et de leur permettre l&amp;#039;accès uniquement au service sFTP.&lt;br /&gt;
&lt;br /&gt;
 Match Group sftponly&lt;br /&gt;
    ChrootDirectory %h&lt;br /&gt;
    ForceCommand internal-sftp&lt;br /&gt;
    X11Forwarding no&lt;br /&gt;
    AllowTcpForwarding no&lt;br /&gt;
&lt;br /&gt;
Le démon SSH (sshd) doit être rafraichi&lt;br /&gt;
 service sshd reload&lt;br /&gt;
&lt;br /&gt;
== Ajuster les droits des répertoires utilisateurs créés ==&lt;br /&gt;
&lt;br /&gt;
Le répertoire personnel des utilisateurs sFTP doit avoir pour propriétaire et groupe &amp;#039;&amp;#039;&amp;#039;root&amp;#039;&amp;#039;&amp;#039; et pour permission &amp;#039;&amp;#039;&amp;#039;755&amp;#039;&amp;#039;&amp;#039; (root:root rwxr-xr-x). Afin de pouvoir téléverser, il faut créer un répertoire ayant pour propriétaire l&amp;#039;utilisateur (sftptest ici). en effet l&amp;#039;utilisateur ne pourra pas téléverser à sa racine (son répertoire utilisateur).&lt;br /&gt;
&lt;br /&gt;
 chown root:sftponly /home/sftptest&lt;br /&gt;
 chmod 755 /home/sftptest&lt;br /&gt;
 mkdir /home/sftptest/upload&lt;br /&gt;
 chown sftptest: sftponly /home/sftptest/upload&lt;br /&gt;
 chmod 755 /home/sftptest/upload&lt;br /&gt;
&lt;br /&gt;
== SELinux ==&lt;br /&gt;
&lt;br /&gt;
Par défaut, pour SELinux, le chroot sFTP est en lecture seule. Afin d&amp;#039;autoriser le téléversement, il faut qu&amp;#039;il soit en lecture/écriture. SELInux dispose d&amp;#039;un booléen pour ça.&lt;br /&gt;
&lt;br /&gt;
 setsebool -P ssh_chroot_rw_homedirs on&lt;br /&gt;
&lt;br /&gt;
== Test ==&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas perturber le démon SSH en cours d&amp;#039;utilisation, on peut lancer une seconde instance (sur un port différent) en mode debug&lt;br /&gt;
 /usr/sbin/sshd -p 2222 -d&lt;br /&gt;
&lt;br /&gt;
Depuis un autre poste, on test la connexion ssh (qui ne doit pas fonctionner) et le téléversement d&amp;#039;un fichier à la racine (qui doit rapporter une erreur) et dans le répertoire upload (seul ce dernier doit fonctionner).&lt;br /&gt;
 ssh -p 2222 sftptest@monserver&lt;br /&gt;
 sftptest@monserver&amp;#039;s password:&lt;br /&gt;
 This service allows sftp connections only.&lt;br /&gt;
 Connection to monserver closed.&lt;br /&gt;
&lt;br /&gt;
 sftp -p 2222 sftptest@monserver&lt;br /&gt;
 sftptest@monserver&amp;#039;s password:&lt;br /&gt;
 Connected to monserver.&lt;br /&gt;
 sftp&amp;gt; ls&lt;br /&gt;
 upload&lt;br /&gt;
 sftp&amp;gt; put test.txt&lt;br /&gt;
 Uploading test.txt to /test.txt&lt;br /&gt;
 remote open(&amp;quot;/test.txt&amp;quot;): Permission denied&lt;br /&gt;
 sftp&amp;gt; cd upload&lt;br /&gt;
 sftp&amp;gt; put test.txt&lt;br /&gt;
 Uploading test.txt to /upload/test.txt&lt;br /&gt;
 test.txt                    100%    5     0.0KB/s   00:00&lt;br /&gt;
 sftp&amp;gt; exit&lt;/div&gt;</summary>
		<author><name>Didier</name></author>
	</entry>
</feed>