Outils pour utilisateurs

Outils du site


serveurweb:proftpd

Le serveur proftp

Idées de base

  • Une configuration puissante similaire à celle d'Apache
  • Des serveurs virtuels
  • Comptes facilement chrootés
  • Pas besoin de binaire dans les prisons ou comptes chrootés

Configuration

/etc/proftpd.conf

ServerName                      "Mon serveur FTP"
ServerAdmin                     ftp@exemple.com
ServerType			standalone # le daemon reste en mémoire et écoute les connections
DefaultServer			on
DeferWelcome			off # Pas d information à propos du serveur d envoyé
AccessGrantMsg			"Accès autorisé pour %u"
AccessDenyMsg			"%u , Accès non autorisé"
ServerIdent			on " Serveur FTP OK "
UseReverseDNS			off
UseFtpUsers                     on # Autoriser l usage de /etc/ftpusers
MultilineRFC2228                on
 
Port 21
User				ftp
Group				ftp
 
MasqueradeAddress		82.239.000.000
PassivePorts			50000 50010
 
Umask				022 # Seul le propriétaire d un fichier peut le modifier.
 
MaxInstances			30
PersistentPasswd		off
TimeoutNoTransfer               600
TimeoutStalled                  600
TimeoutIdle                     1200
 
PathAllowFilter			".*/[a-zA-Z0-9]+$" # Only allow filenames containing alphanumeric characters
DenyFilter                      \*.*/
 
<Global>
	MaxClients			10 "La limite de %m utilisateurs connectés est atteinte, Recommencez ultérieurement"
	MaxClientsPerHost		5 "La limite de %m connections pour un même utilisateur est atteinte"
	MaxLoginAttempts		3 "Votre nom d'utilisateur ou votre mot de passe est incorrect, veuillez contacter l'administrateur"
 
	RootLogin			off # Empêche le root de se loguer 
	RequireValidShell		yes
	UseFtpUsers			on
 
	DefaultRoot			~ # Répertoire racine, les connectés au ftp ne verrons que lui et son contenu
	DirFakeUser			off nobody
	ShowSymlinks			on # Permet de suivre les liens symboliques
        HiddenStor			off
 
	AllowStoreRestart		on
	AllowForeignAddress		off
	AllowRetrieveRestart		on
	AllowOverwrite			on
 
	DeleteAbortedStores		on
	IdentLookups			off
	TimesGMT			off
 
	TimeoutLogin			120
	TimeoutIdle			600
	TimeoutNoTransfer		900
	TimeoutStalled			3600
 
	<Limit LOGIN>
	       Order allow,deny
	       Allow from all
	       Deny from all
	</Limit>
	<Directory ~>
		    <Limit ALL>
			   AllowAll
			   DenyAll
			   IgnoreHidden    on
		    </Limit>
	</Directory>
 
        <Directory /bin >
                      HideNoAccess on
                      DenyAll
        </Directory>
 
        <Directory /boot >
                      HideNoAccess on
                      DenyAll
        </Directory>
 
        <Directory /conf >
                      HideNoAccess on
                      DenyAll
        </Directory>
 
        <Directory /dev >
                      HideNoAccess on
                      DenyAll
        </Directory>
 
        <Directory /etc >
                      HideNoAccess on
                      DenyAll
        </Directory>
 
        <Directory /initrd >
                      HideNoAccess on
                      DenyAll
        </Directory>
 
        <Directory /lib >
                      HideNoAccess on
                      DenyAll
        </Directory>
 
        <Directory /opt >
                      HideNoAccess on
                      DenyAll
        </Directory>
 
        <Directory /proc >
                      HideNoAccess on
                      DenyAll
        </Directory>
 
        <Directory /root >
                       HideNoAccess on
                DenyAll
        </Directory>
 
        <Directory /sbin >
                       HideNoAccess on
                       DenyAll
        </Directory>
 
 
	 <Directory /sbin >
                      HideNoAccess on
                      DenyAll
        </Directory>
 
        <Directory /sys >
                      HideNoAccess on
                      DenyAll
        </Directory>
 
        <Directory /tmp >
                       HideNoAccess on
                       DenyAll
        </Directory>
 
        <Directory /usr >
                      HideNoAccess on
                      DenyAll
        </Directory>
 
        <Directory /var >
                      HideNoAccess on
                      DenyAll
        </Directory>
 
        <Directory /mnt/cdrom >
                      HideNoAccess on
                      DenyAll
        </Directory>
 
        <Directory /mnt/floppy >
                      HideNoAccess on
                      DenyAll
        </Directory>
</Global>
 
<Limit SITE_CHMOD>
       DenyAll
</Limit>
 
<VirtualHost 82.239.000.000>
       ServerName		"my FTP"
       ServerAdmin		ftp@my_server.net
 
       DefaultRoot		~
       <Directory ~>
		  #<Limit CWD MKD RNFR RNTO DELE RMD RETR STOR SITE_CHMOD WRITE CHMOD SITE XCUP XRMD XPWD>
                  <Limit CWD MKD RNFR RNTO RETR STOR WRITE SITE XCUP XRMD XPWD>
 
			 AllowUser gwadanina.net
			 DenyAll
			 IgnoreHidden    on
		  </Limit>
        </Directory>
</VirtualHost>
 
SyslogFacility			AUTH
LogFormat			default "%h %l %u %t "%r" %s %b"
LogFormat			write "%h %l %u %t "%r" %s %b"
LogFormat			auth "%v [%P] %h %t "%r" %s
SystemLog			/var/log/proftpd/proftpd.log
TransferLog			/var/log/proftpd/xferlog
Extendedlog			/var/log/proftpd/ftp.log
ExtendedLog			/var/log/proftpd/access.log WRITE,READ write
ExtendedLog			/var/log/proftpd/auth.log AUTH auth
ExtendedLog			/var/log/ftp.log AUTH

/etc/ftpusers

root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
anonymous
ftp
gopher
postgres
squid
gdm
htdig
dhcpd
rpm
vcsa
xfs
messagebus
haldaemon
postfix
mysql
clamav
svn
amavis
apache
mailnull
smmsp
ldap
sshd
cyrus
ntp
rpc
rpcuser
snort
nx

Restriction

Restriction d'accès dans un dossier

       <Directory ~>
		<Limit WRITE STOR RNFR DELE>
			Order Allow,Deny
			Deny ALL
		</Limit>	
       </Directory>
 
       <Directory ~/public_html>
		<Limit WRITE STOR RNFR DELE>
			AllowAll
		</Limit>	
       </Directory>

Restriction d'écriture dans un dossier à un utilisateur

#Seul l'utilisateur adminftp à le droit d'écrire dans /mnt/ftp
       <Directory /mnt/ftp>
           <Limit WRITE>
                AllowUser adminftp
                DenyAll
           </Limit>
       </Directory>

Restriction d'accès par IP ou hostnames

#Seul l'utilisateur provenant de 82.39.22.20 ou de mydomain.com
       <Limit LOGIN>
            Order Allow,Deny
            Allow from 82.39.22.20,mydomain.com
            Deny from all
       </Limit>

Créer des utilisateurs virtuels

Accès

Partage de répertoires qui ce trouve hors de l'arborescence chrooter de l'utilisateur.

mount avec l'option bind permet de les faire apparaitre dans ce répertoire sans les déplacer.

cd home/ftp
mkdir -p dossiersPartagés
cd dossiersPartagés
mount --bind répertoire_fat32 répertoire_cible 
serveurweb/proftpd.txt · Dernière modification: 2012/02/10 23:24 (modification externe)