Chrooter apache
Matériel
Ajout disque dur
Ajout carte
Audit des disques durs
Gestion des peripheriques
Disquette d'installation
Ajout d'un scanner
Astuces
Ajout d'une imprimante
Réseau
Configuration reseau
Dns
Serveur cvs
Proxy squid 
Installation serveur ftp
Installation qmail 
Installation serveur courrier sous debian
Outil TCP/IP 
Le serveur samba
Connexion a distance securisee
Client/serveur vnc
Configurer apache
Dyndns
Installer un LAMP sous mandriva
Sécurité
Chiffrer un fichier/dossier
Securiser son poste
Mur pare feu pas a pas
Authentification ht-access
Surveillance de serveur CACTI
Snort
Snort-inline
Securiser Apache avec mod_security
Filtrage squid/squidguard/dansguardian
Auditer son site web
Sécuriser son linux
Installer un Lamp avec ssl
Contrer les scans de ports
Traitement anti-spam
Installer/Utiliser tripwire
Faire des sauvegardes incrémentales
Rsync
Nessus
Divers
Elisa, le multimédia facile
Utilisation de lilo
Les commandes Linux
Le multi-tache
Le crontab
Exploration de la configuration
Quotas
Messagerie
Installer une application
Debugger ses applications
Le format RPM
Mise a jour du noyau
Qemu
Tour d'horizon des principaux p2p
Récupération du système
Bips d'un pc
Astuces windows
Table Ascii
Lamerland
Conversion de fichiers musicaux
Compiler ses rpms
Graver en ligne de commande
Graver un fichier avi pour un dvd de salon
Récupérer des fichiers effacés
Liens
hakin9
Secureroot.com
Hackerthreads.org
Defcon
Hackerlounge
Les derniers exploits
Tous les codes sources
Securite sous Linux
Les logiciels libres quotidiens
Ezine divers
Madchat
Textes divers
Archives
 
Traductions LG
Toutes les traductions
Traductions Phrack
Toutes les traductions

Il y a actuellement 9 visiteurs connectés sur le site !

Google

Serveur ftp
Serveur ftp

 

Introduction
Installation
Configuration
Proftpd avec virtualhost
Options de Proftpd
Exemples
Liste de commandes
Rajouter un utilisateur

 

Qu'est ce que c'est:

Un serveur FTP permet de stocker des fichiers, des répertoires et de mettre ceux-ci à la disposition des clients. IL existe des utilisateurs authentifiés avec noms et mots de passe d'une part et des anonymes.

Installation:

Dans la plupart des cas il existe déjà un (ou plusieurs) serveurs ftp installés sur votre machine.
Nous allons installer un serveur à partir de notre distribution mandriva
urpmi proftpd
Notre logiciel est donc installé. Nous allons paramétrer son démarrage à l'aide de l'interface graphique Mandriva :
1. régler des choses dans le système pour que proftpd se lance à chaque démarrage
2. régler les paramètres pour qu'il réponde à nos clients

En root allez dans Menu K -> Configuration -> Panneau de contôle de Mandrake
Dans la fenêtre : Système, Services
Cherchez la ligne proftpd
Si le service est arrêté, et qu'il n'est pas actif au démarrage.
Cliquez donc sur la case « Au démarrage » et sur le bouton « Start »
Quittez le panneau de contrôle.
Maintenant il vous reste à tester si le serveur choisi répond bien:
lancez donc la commande :
$: ftp localhost
Connected to localhost.
220 ProFTPD 1.2.10 Server (ProFTPD Default Installation) [127.0.0.1]
Tout va bien !
Si cela ne marche pas , pensez à consulter vos fichiers de log
tail -f /var/log/messages

Configuration de proftpd

Avant tout , faites une sauvegarde de votre fichier original.
Ensuite rendez vous dans /etc/proftpd.conf Faites en un double que vous nommerez proftpd.conf.original (copier, coller, renommer vous devez savoir faire) Lancer un éditeur de texte (moi, j'aime bien KWrite. K -> Application -> Editeurs detexte -> Kwrite (Text Editor) et ouvrez /etc/proftpd.conf

Gestion des anonymes:
Pour creer la section anonymous pour que les clients puissent se connecter en anonymous.
(A déconseiller toutefois)

User ftpw
Group ftp
UserAlias anonymous ftp
MaxClients 10
RequireValidShell off
AnonRequirePassword off

DenyAll


L'utilisateur anonymous ne pourra ouvrir que 10 connexions , sans shell de commande, sans mot de passe valide, sans droit d'écriture.

Les utilisateurs authentifiés n'auront accés qu'à leur seul répertoire. Le réglage par défaut leur permet en effet d'aller se ballader partout dans l'arborescence.
C'est à la dernière ligne : DefaultRoot ~
Le ~ indique que chaque utilisateur utilisera son propre repertoire.
Voici un exemple de fichier proftpd.conf:

# This is a basic ProFTPD configuration file (rename it to
# 'proftpd.conf' for actual use. It establishes a single server
# and a single anonymous login. It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.
ServerName "ProFTPD Sur Alpha"
ServerType standalone
DefaultServer on
# Allow FTP resuming.
# Remember to set to off if you have an incoming ftp for upload.
AllowStoreRestart on
# Port 21 is the standard FTP port.
Port 21
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30
# Set the user and group that the server normally runs at.
User nobody
Group nogroup
# Normally, we want files to be overwriteable.

AllowOverwrite on

# Needed for NIS.
PersistentPasswd off

User ftp
Group ftp
UserAlias anonymous ftp
MaxClients 10
RequireValidShell off
AnonRequirePassword off

DenyAll


# Default root can be used to put users in a chroot environment.
# As an example if you have a user foo and you want to put foo in /home/foo
# chroot environment you would do this:
# DefaultRoot /home/foo foo
Defaultroot ~

Relancez aussitot le démon à l'aide de l'interface mcc
Le démon s'arrête puis redémarre en tenant compte des nouveaux réglages.
N'oubliez pas de faire cette manoeuvre après chaque modification du fichier de configuration.

Proftpd avec virtualhost:

Le logiciel Proftpd permet l'utilisation de virtualhost.
Les virtualhosts sont un syteme de gestion des connections.
Admettons que votre serveur Ftp n'ai normalement qu'une seule adresse IP,par contre il a plusieurs noms paramétrés dans votre serveur DNS.
Vous voulez que suivant le nom que la personne utilisera pour se connecter les paramètres soient changés.
De la même manière pour votre serveur web Apache, le serveur a une seule adresse IP mais par contre suivant l'adresse que l'internaute tape il faut changer de site, donc une configuration différente.
Reprenons Proftpd, La configuration se passe toujours dans /etc/proftpd.conf.
La meilleure explication est encore l'exemple :


ServerName               "FTP Server"

               DenyAll
 

    User         webmaster
    Group       ftpwww
    AnonRequirePassword    on
    
      AllowAll
   
 
   HideUser    root
    HideGroup    root

Grace à cette configuration, seuls les utilisateurs qui configurent leur client ftp avec comme hôte : linux-pour-lesnuls.com pourront se connecter, les utilisateurs qui tenteront la connection directement au serveur par son ip ne pourront même pas s'identifier.

Options de Proftpd:

Pour changer de port pour le ftp :
Port 4040
Cette directive peut être utilisée plusieurs fois dans le cas de virtualhosts. Pour changer le nombre d'utilisateurs simultanés maximum:
MaxClients 5
Pour changer le nom du serveur:
ServerName "linux-pour-lesnuls.com"
Cette directive permet d'éviter d'afficher le nom du serveur ainsi que sa version. Ces informations sont trés importantes pour les hackers, donc mieux vaut cacher.
Pour changer de time out:
TimeoutStalled 300
Le Timeout est le temps laissé à l'utilisateur pour envoyer des commandes, passer ce délai le serveur fermera la connection automatiquement. L'unité est exprimée en secondes. 300 secondes est un timeout correct

Exemples

Bien que n'étant pas une commande propre à Unix, il est utile de connaître la commande ftp (file transfert protocol). Elle permet le transfert de fichiers entre deux machines. Elle prend comme paramètre le nom de la machine distante. Pour que la commande ftp fonctionne, il faut que le service ftp fonctionne sur la machine distante et sur le port 21.

Voici un exemple (peu pratique) de connexion avec erreur et nouvel essai.

ftp> open
(to) machine
Connected to machine.
220 machine FTP server (Digital UNIX Version 5.60) ready.
Name (machine:root): root
331 Password required for root.
Password:
530 Login incorrect.
Login failed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> user
(username) root
331 Password required for root.
Password:
230 User root logged in.
ftp> pwd
257 "/" is current directory.

Le plus simple est tout de même :
$ ftp machine
Connected to machine.
220 machine FTP server (Digital UNIX Version 5.60) ready.
Name (machine:root): root
331 Password required for root
Password:
230 User root logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Liste de commandes :

Voici une liste de commandes ftp.

Commande Action
open Suivi d'un nom de machine, ouvre une connexion sur la machine spécifiée.
user Saisie de l'utilisateur distant pour une connexion.
quit Fin de la connexion et fin de la commande ftp.
ascii Transfert des fichiers en mode ASCII (conversion des caractères spéciaux et fin de ligne en MS et Unix par exemple).
binary Transfert des fichiers en mode binaire.
glob Supprime l'interprétation des caractères spéciaux.
help Affiche l'aide.
prompt Suivi de on ou off, active ou désactive la confirmation individuelle de transfert pour chaque fichier (mget ou mput).
pwd Affiche le répertoire distant courant.
cd Suivi du chemin, déplacement dans l'arborescence distante.
ls liste les fichiers de la machine distante.
delete Suivi d'un nom de fichier, supprime le fichier distant.
mdelete Multiple. Supprime les fichiers distants.
get Récupère le fichier distants.
mget Multiple. Récupère les fichiers distants (liste ou modèle).
put Envoie le fichier local vers la machine distante.
mput Multiple. Envoie les fichiers locaux sur la machine distante (liste ou modèle).
close / disconnect ferme la session actuelle.
lcd Change de répertoire sur la machine locale.
hash Durant les transferts, écrit un « # » sur écran pour chaque buffer transféré.
system Informations sur le système distant.
recv Réception d'un fichier.
send Envoi d'un fichier.
rename renomme un fichier distant.
mkdir Crée un répertoire sur la machine distante.
rmdir Supprime un répertoire sur la machine distante.
!commande exécute la commande locale

Rajouter un utilisateur :

Pour activer un utilisateur, il suffit simplement de vérifier que l'utilisateur fait partie du système, et ne posséde pas de shell desactivé dans /etc/passwd, auquel cas proftpd renverra un message d'erreur:

localhost (192.168.0.10[192.168.0.10]): USER ftp (Login failed): Invalid shell: '/bin/false'

Sources de l'article


 

Blog
Le blog
La radio
La Radio
Boutique
La boutique du Geek
Php/Mysql
Formulaire en php
Administrer un serveur Mysql
Session en php
Gerer ses bases mysql
Les bases php
Securiser ses scripts PHP
Controler ses programmes avec RATS
Convertir une base sql en utf8
Astuces php
Le fichier php.ini
Programmation
Python rapide
Tutorial Python
Tutorial Perl
Tutorial Perl complet
Tutoriel ruby
Tutoriel C
Introduction à gawk
Filtres et utilitaires
Find
Programmation Shell
Ecriture de scripts bash
Expressions regulieres
Vi
Introduction a Javascript
Compiler avec gcc
Astuces en Bash
Cracking
Tutoriel Assembleur
Guide du cracking pour débutant
Assembleur
Manual Unpacking
Techniques de Protection
Différentes failles Web
Arp spoofing dans un réseau switché
Les intrusions
Les attaques externes
Defacage
Defacage complet
Buffer overflow
Netcat
Injection sql
Injection sql(suite)
John the Ripper
Spoofer un email
Utiliser google
La faille system
Usurper une identité
Le rooting
Shellcode sous Unix
La faille race condition
La faille xss
La faille xss (2)
Attaques sur un routeur
P2P
Azureus pas-a-pas
News
Lire les news de Linux-pour-lesnuls.com au format RSS
Distros
Gestion des paquets debian
101 commandes debian
Jeu
Webtarot
Graphisme
Effet neon dans GIMP
Effet vapeur dans GIMP
Cours fonctionnalités de GIMP
Redimentionner une image avec GIMP
Redimentionner une photo pour en faire un cadre avec gimp
Morphing avec gimp
Détourer avec gimp
Réduire le poids d'une image avec gimp
Caricature avec gimp
Humour
Ensemble
Divers