<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>http://wiki.diouxx.be/index.php?action=history&amp;feed=atom&amp;title=ProFTP</id>
		<title>ProFTP - Historique des versions</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.diouxx.be/index.php?action=history&amp;feed=atom&amp;title=ProFTP"/>
		<link rel="alternate" type="text/html" href="http://wiki.diouxx.be/index.php?title=ProFTP&amp;action=history"/>
		<updated>2026-04-16T16:01:07Z</updated>
		<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
		<generator>MediaWiki 1.30.2</generator>

	<entry>
		<id>http://wiki.diouxx.be/index.php?title=ProFTP&amp;diff=37&amp;oldid=prev</id>
		<title>Ddevleeschauwer : Page créée avec « {{ Introduction | Cette page permet d'installer et configurer un serveur ProFTP }}  == Installation ==  Pour installer ProFTPD, il suffit d'aller rechercher les sources su... »</title>
		<link rel="alternate" type="text/html" href="http://wiki.diouxx.be/index.php?title=ProFTP&amp;diff=37&amp;oldid=prev"/>
				<updated>2013-04-08T13:05:18Z</updated>
		
		<summary type="html">&lt;p&gt;Page créée avec « {{ Introduction | Cette page permet d&amp;#039;installer et configurer un serveur ProFTP }}  == Installation ==  Pour installer ProFTPD, il suffit d&amp;#039;aller rechercher les sources su... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{ Introduction | Cette page permet d'installer et configurer un serveur ProFTP }}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Pour installer ProFTPD, il suffit d'aller rechercher les sources sur le [ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.4a.tar.bz2 site officiel]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{{ Console | wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.4a.tar.bz2 }}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Désarchivez l'archive avant de pouvoir passer à l'étape de compilation&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{{ Console | tar -xjvf proftpd-X.X.X.tar.bz2 }}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Une fois désarchiver, on peux compiler notre serveur FTP. Déplacez vous dans le dossier que vous venez de désarchiver et démarrer la compilation :&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
{{ Console root | 1=./configure --prefix=/opt/proftpd}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* --prefix indique le dossier d'installation pour notre serveur&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Une fois l'étape de configuration terminée, on peux passer à l'installation &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Console root | make&amp;lt;br&amp;gt;[root@ordi ~]# make install }}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Notre serveur FTP est maintenant installé, il nous reste plus qu'à le configurer avant de le démarrer&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
Pour configurer le serveur FTP, on utilise 2 fichiers :&lt;br /&gt;
:* /opt/proftpd/etc/proftpd.conf&lt;br /&gt;
:* /opt/proftpd/etc/ftpusers&lt;br /&gt;
&lt;br /&gt;
=== proftpd.conf ===&lt;br /&gt;
&lt;br /&gt;
Ce ficher est le fichier de configuration du serveur FTP, le fichier de configuration peux ressembler à ceci (Pour les besoins du FTP dasn une DMZ ) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# This is a basic ProFTPD configuration file (rename it to &lt;br /&gt;
# 'proftpd.conf' for actual use.  It establishes a single server&lt;br /&gt;
# and a single anonymous login.  It assumes that you have a user/group&lt;br /&gt;
# &amp;quot;nobody&amp;quot; and &amp;quot;ftp&amp;quot; for normal operation and anon.&lt;br /&gt;
&lt;br /&gt;
ServerName			&amp;quot;PASS FTP Access&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Le demon reste en memoire et ecoute les connexions&lt;br /&gt;
ServerType			standalone&lt;br /&gt;
&lt;br /&gt;
DefaultServer			on&lt;br /&gt;
#IdentLookups			off&lt;br /&gt;
&lt;br /&gt;
#Message d'acceuil&lt;br /&gt;
ServerIdent			on &amp;quot;Welcome to ftp.pass.be&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Ne pas donner d'infos sur le server&lt;br /&gt;
DeferWelcome			off&lt;br /&gt;
&lt;br /&gt;
# Port 21 is the standard FTP port.&lt;br /&gt;
Port				21&lt;br /&gt;
&lt;br /&gt;
DefaultAddress 192.168.55.12&lt;br /&gt;
&lt;br /&gt;
#adresse à renvoyer pour être accessible du réseau (pour activer le mode passif)&lt;br /&gt;
MasqueradeAddress 193.190.248.6&lt;br /&gt;
#MasqueradeAddress 192.168.55.12&lt;br /&gt;
&lt;br /&gt;
#Configuration du mode passif&lt;br /&gt;
PassivePorts 5000 5100&lt;br /&gt;
&lt;br /&gt;
# PID File&lt;br /&gt;
PidFile /opt/proftpd/var/proftpd.pid&lt;br /&gt;
&lt;br /&gt;
# Don't use IPv6 support by default.&lt;br /&gt;
UseIPv6				off&lt;br /&gt;
&lt;br /&gt;
#Utilisation du fichier /opt/proftpd/etc/ftpusers&lt;br /&gt;
#Reference les utilisateurs qui ne peuvent pas e connecter au service FTP&lt;br /&gt;
#Exemple : root,www-data,...&lt;br /&gt;
UseFtpUsers on&lt;br /&gt;
&lt;br /&gt;
# Umask 022 is a good standard umask to prevent new dirs and files&lt;br /&gt;
# from being group and world writable.&lt;br /&gt;
Umask				022&lt;br /&gt;
&lt;br /&gt;
# To prevent DoS attacks, set the maximum number of child processes&lt;br /&gt;
# to 30.  If you need to allow more than 30 concurrent connections&lt;br /&gt;
# at once, simply increase this value.  Note that this ONLY works&lt;br /&gt;
# in standalone mode, in inetd mode you should use an inetd server&lt;br /&gt;
# that allows you to limit maximum number of processes per service&lt;br /&gt;
# (such as xinetd).&lt;br /&gt;
MaxInstances			30&lt;br /&gt;
&lt;br /&gt;
# Nombre maximum de clients ayant le même login&lt;br /&gt;
MaxClientsPerHost 		5&lt;br /&gt;
MaxClientsPerUser		5&lt;br /&gt;
&lt;br /&gt;
#Timeout&lt;br /&gt;
#TimeoutStalled 		10&lt;br /&gt;
#TimeoutNoTransfer 	20&lt;br /&gt;
#TimeoutLogin 		20&lt;br /&gt;
&lt;br /&gt;
#Gestion des logs&lt;br /&gt;
ExtendedLog                     /var/log/proftpd/access.log WRITE,READ write&lt;br /&gt;
ExtendedLog                     /var/log/proftpd/auth.log AUTH auth&lt;br /&gt;
ExtendedLog                     /var/log/ftp.log AUTH&lt;br /&gt;
&lt;br /&gt;
SystemLog			/var/log/proftpd/proftpd.log&lt;br /&gt;
&lt;br /&gt;
LogFormat               default &amp;quot;%h %l %u %t \&amp;quot;%r\&amp;quot; %s %b&amp;quot;&lt;br /&gt;
LogFormat               auth    &amp;quot;%v [%P] %h %t \&amp;quot;%r\&amp;quot; %s&amp;quot;&lt;br /&gt;
LogFormat               write   &amp;quot;%h %l %u %t \&amp;quot;%r\&amp;quot; %s %b&amp;quot;&lt;br /&gt;
SyslogFacility          AUTH&lt;br /&gt;
&lt;br /&gt;
#Section Administrateur&lt;br /&gt;
UseReverseDNS           off&lt;br /&gt;
&lt;br /&gt;
#ServerAdmin             &lt;br /&gt;
MaxLoginAttempts  	2&lt;br /&gt;
&lt;br /&gt;
# Set the user and group under which the server will run.&lt;br /&gt;
User				proftpd&lt;br /&gt;
Group				proftpd&lt;br /&gt;
&lt;br /&gt;
# To cause every FTP user to be &amp;quot;jailed&amp;quot; (chrooted) into their home&lt;br /&gt;
# directory, uncomment this line.&lt;br /&gt;
DefaultRoot ~&lt;br /&gt;
&lt;br /&gt;
# Message d'accueil après une connexion réussie&lt;br /&gt;
AccessGrantMsg &amp;quot;Connexion reussie pour %u&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Normally, we want files to be overwriteable.&lt;br /&gt;
AllowOverwrite		on&lt;br /&gt;
&lt;br /&gt;
# Bar use of SITE CHMOD by default&lt;br /&gt;
#DenyAll&lt;br /&gt;
&amp;lt;Limit SITE_CHMOD&amp;gt;&lt;br /&gt;
	DenyAll&lt;br /&gt;
&amp;lt;/Limit&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# A basic anonymous configuration, no upload directories.  If you do not&lt;br /&gt;
# want anonymous users, simply delete this entire &amp;lt;Anonymous&amp;gt; section.&lt;br /&gt;
&amp;lt;Anonymous ~ftp&amp;gt;&lt;br /&gt;
  User				ftp&lt;br /&gt;
  Group				ftp&lt;br /&gt;
&lt;br /&gt;
  # We want clients to be able to login with &amp;quot;anonymous&amp;quot; as well as &amp;quot;ftp&amp;quot;&lt;br /&gt;
  UserAlias			anonymous ftp&lt;br /&gt;
&lt;br /&gt;
  # Limit the maximum number of anonymous logins&lt;br /&gt;
  MaxClients			5&lt;br /&gt;
&lt;br /&gt;
  # We want 'welcome.msg' displayed at login, and '.message' displayed&lt;br /&gt;
  # in each newly chdired directory.&lt;br /&gt;
  DisplayLogin			welcome.msg&lt;br /&gt;
  DisplayChdir			.message&lt;br /&gt;
&lt;br /&gt;
  # Limit WRITE everywhere in the anonymous chroot&lt;br /&gt;
  &amp;lt;Limit WRITE&amp;gt;&lt;br /&gt;
    DenyAll&lt;br /&gt;
  &amp;lt;/Limit&amp;gt;&lt;br /&gt;
&amp;lt;/Anonymous&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost 192.168.55.12&amp;gt;&lt;br /&gt;
	ServerName &amp;quot;FTP PASS Interne&amp;quot;&lt;br /&gt;
	Port			2121&lt;br /&gt;
	MasqueradeAddress  192.168.55.12&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ftpusers ===&lt;br /&gt;
Ce fichier à pour utilité de lister les différents noms d'utilisateurs qui ne '''pourront pas''' se connecter au serveur FTP.&lt;br /&gt;
&lt;br /&gt;
On peux très bien le construire en récupérant seulement le nom des utilisateurs du système à partir du fichier {{ File | /etc/passwd }} :&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 cat /etc/passwd | cut -d : -f 1 &amp;gt; /opt/proftpd/etc/ftpusers&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Après, il ne reste plus qu'a retirer les utilisateurs qu'on autorise à se connecter au service FTP.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root&lt;br /&gt;
daemon&lt;br /&gt;
bin&lt;br /&gt;
sys&lt;br /&gt;
sync&lt;br /&gt;
games&lt;br /&gt;
man&lt;br /&gt;
lp&lt;br /&gt;
mail&lt;br /&gt;
news&lt;br /&gt;
uucp&lt;br /&gt;
proxy&lt;br /&gt;
www-data&lt;br /&gt;
backup&lt;br /&gt;
list&lt;br /&gt;
irc&lt;br /&gt;
gnats&lt;br /&gt;
nobody&lt;br /&gt;
libuuid&lt;br /&gt;
syslog&lt;br /&gt;
messagebus&lt;br /&gt;
whoopsie&lt;br /&gt;
landscape&lt;br /&gt;
sshd&lt;br /&gt;
proftpd&lt;br /&gt;
anonymous&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Utilisateurs ===&lt;br /&gt;
Pour ajouter un utilisateur au service FTP, il suffit de créer un utilisateur système ( Si on utilise pas les utilisateurs virtuelles) :&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Console root | useradd user -s /bin/false -G users }}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
:* -s : spécifie le shell de connexion. Dans notre cas, aucun shell de connexion n'est assigné pour une question de sécurité&lt;br /&gt;
:* --ingroup : assigne l'utilisateur au groupe users &lt;br /&gt;
&lt;br /&gt;
{{ Avertissement | Il est très important que les utilisateurs de votre FTP aient des droits restreints et donc ne soient pas des utilisateurs réguliers de votre Linux d'ou le /bin/false au lieu de /bin/bash habituel. Maintenant éditez /etc/shells et rajoutez la ligne {{ File | /bin/false }} (Si elle n'y est pas) }}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Démarrage/Arrêt ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Démarrer ===&lt;br /&gt;
&lt;br /&gt;
Pour démarrer le serveur FTP, il est nécessaire de lancer le script {{ File | /opt/proftpd/sbin/proftpd }} :&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{{ Console | ./proftpd -d 10 }}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
:* -d : permet d'indiquer le niveau de log que l'on désire ( Optionnel)&lt;br /&gt;
&lt;br /&gt;
=== Arrêter le serveur ===&lt;br /&gt;
&lt;br /&gt;
Pour arrêter le serveur, le seul moyen est de &amp;quot;killer&amp;quot; le process dont l'id est renseigner dans le fichier paramétré dans la configuration du serveur&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{{ Console | kill -INT `cat /opt/proftpd/var/proftpd.pid` }}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Script d'automatisation ===&lt;br /&gt;
&lt;br /&gt;
On peux automatiser les étapes ci-dessus via un script bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#! /bin/bash&lt;br /&gt;
# Auteur : Devleeschauwer Denis&lt;br /&gt;
# Proftpd start script&lt;br /&gt;
#&lt;br /&gt;
# Avril 2012&lt;br /&gt;
#&lt;br /&gt;
 &lt;br /&gt;
#GLOBAL VARIABLES&lt;br /&gt;
DIRECTORY=/opt/proftpd&lt;br /&gt;
APPLICATION=ProFTPD&lt;br /&gt;
 &lt;br /&gt;
######################################################################&lt;br /&gt;
##########################Function####################################&lt;br /&gt;
######################################################################&lt;br /&gt;
function startInstance&lt;br /&gt;
{&lt;br /&gt;
	#Commande pour demmarer ProFTPD&lt;br /&gt;
	cd $DIRECTORY/sbin&lt;br /&gt;
	./proftpd -d 10 &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 &lt;br /&gt;
	if [ $? -eq 0 ]&lt;br /&gt;
	then&lt;br /&gt;
        	echo &amp;quot;Start $APPLICATION Instance                       [OK]&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
        	echo &amp;quot;Start $APPLICATION Instance                       [KO]&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function stopInstance&lt;br /&gt;
{&lt;br /&gt;
	#Commande pour arreter ProFTPD&lt;br /&gt;
 	kill -INT `cat $DIRECTORY/var/proftpd.pid` &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
	if [ $? -eq 0 ]&lt;br /&gt;
	then&lt;br /&gt;
        	echo &amp;quot;Stop $APPLICATION Instance                     [OK]&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
        	echo &amp;quot;Stop $APPLICATION Instance                     [KO]&amp;quot;&lt;br /&gt;
	fi &lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
 &lt;br /&gt;
'start')&lt;br /&gt;
	startInstance&lt;br /&gt;
;;&lt;br /&gt;
 &lt;br /&gt;
'stop')&lt;br /&gt;
	stopInstance&lt;br /&gt;
;;&lt;br /&gt;
 &lt;br /&gt;
'restart')&lt;br /&gt;
	stopInstance&lt;br /&gt;
 &lt;br /&gt;
	sleep 5&lt;br /&gt;
 &lt;br /&gt;
	startInstance&lt;br /&gt;
;;&lt;br /&gt;
 &lt;br /&gt;
'status')&lt;br /&gt;
	cat $DIRECTORY/var/proftpd.pid &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 &lt;br /&gt;
	if [ $? -eq 0 ]&lt;br /&gt;
	then&lt;br /&gt;
		echo &amp;quot;$APPLICATION Instance Running&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;$APPLICATION Instance Stop&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
;;&lt;br /&gt;
 &lt;br /&gt;
*)&lt;br /&gt;
	echo &amp;quot;Usage: $0 { start | stop | restart | status }&amp;quot;&lt;br /&gt;
	exit 1&lt;br /&gt;
;;&lt;br /&gt;
 &lt;br /&gt;
esac&lt;br /&gt;
 &lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Démarrage système ===&lt;br /&gt;
&lt;br /&gt;
Pour que le serveur FTP soit lancé au démarrage du système, il faut créer des liens symboliques de note script d'automatisation à différents emplacements. Ces emplacements correspondent aux différents runlevel du système&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console root | ln -s /etc/init.d/proftpd /etc/rc2.d/S99proftpd }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Si il y a la lettre S, le paramètre start sera passé au script /etc/init.d/service. En revanche, si c'est la lettre K, c'est le paramètre stop qui sera passé à ce script.&lt;br /&gt;
* 00 correspond à une priorité d'exécution. Le service possédant le plus petit chiffre s'exécutera en premier.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour être sur que le service soit arrêter correctement lors de l'arrêt ou le reboot du système, nous devons faire la même opération mais en modifiant le dossier de destination et le paramètre envoyé au script&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console root | ln -s /etc/init.d/proftpd /etc/rc6.d/k99proftpd&amp;lt;br&amp;gt;[root@ordi ~]# ln -s /etc/init.d/proftpd /etc/rc0.d/k99proftpd }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
&lt;br /&gt;
=== Créer un utilisateur ===&lt;br /&gt;
&lt;br /&gt;
Pour ajouter un utilisateur à notre FTP, il faut créer un user système :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Note | Cette procédure a été crée pour un accès de nucomat à notre FTP. Les commandes sont identiques seul le nom d'utilisateur et les noms de dossiers peuvent changer selon le cas. }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console root | useradd -d /home/nucomat -m nucomat }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* -d : Spécifie la home directory du nouvel utilisateur&lt;br /&gt;
* -m : Force la création de la home directory si elle n'existe pas&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ensuite, il faut assigner un mot de passe au nouvel utilisateur :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console root | passwd nucomat }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Il suffira de renter 2 fois le mot de passe quand cela est demandé.&lt;br /&gt;
&lt;br /&gt;
Si nous créons un utilisateur pour un accès par des personnes extérieurs, il se peut qu'elle ne doivent qu'avoir accès au fichier placé sur le FTP et ne peuvent pas en déposer; Pour cela, il faut retirer les droits d'écriture de l'utilisateur au dossier concerné ( ex : sa Home Directory )&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console root | chmod -R -w /home/nucomat }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* -R : Pour la récursion&lt;br /&gt;
* -w : Pour retirer les droit en écriture ( write ) sur le dossier.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Système]]&lt;/div&gt;</summary>
		<author><name>Ddevleeschauwer</name></author>	</entry>

	</feed>