Serveur FTP avec Proftpd plus proftpd-mysql
Installation [bash]apt-get install proftpd[/bash] Edition de la configuration : [bash]vi /etc/proftpd/proftpd.conf[/bash] Nous allons modifier les options suivantes :...
Filter by Category
Filter by Author
Installation [bash]apt-get install proftpd[/bash] Edition de la configuration : [bash]vi /etc/proftpd/proftpd.conf[/bash] Nous allons modifier les options suivantes :...
Posted by louis MARTINBRANDA
Si vous utilisez la version de webmin DEB, d’abord télécharger le fichier, puis exécutez la commande: [bash]dpkg –install webmin_1.540_all.deb[/bash] Ce qui va...
Posted by louis MARTINBRANDA
Trouvez l’ID de votre librairie iTunes Sur l’ordinateur avec lequel votre iPhone/iPod touch est déjà synchronisé, trouvez trouvez puis ouvrez le dossier “iTunes Music Library.xml”...
Posted by louis MARTINBRANDA
OpenVPN est un VPN SSL se basant sur la création d’un tunnel IP. Installation du Serveur OpenVPN On commence par installer le package OpenVPN
Posted by louis MARTINBRANDA
Voici un petit tuto, pour vous expliquer comment installer FFMPEG sur Debian et Ubuntu. Ci-dessous la liste des packages qui seront installés : FFmpeg FFmpeg-PHP Mplayer +...
Posted by louis MARTINBRANDA
Quand vous rajoutez des sources dans /etc/apt/sources.list et que vous faites un apt-get update. Il peut vous arrivez de recevoir ce message :
Posted by louis MARTINBRANDA
Par défaut maintenant sur Debian quand vous faites : crontabt -e il est automatiquement edité via nano.
Posted by louis MARTINBRANDA
Suite au post préédent, j’ai créé un script qui vous permet de supprimer quotidiennement les anciens répertoires de SARG. Créé un script nommé : nettoyage_sarg.sh
Posted by louis MARTINBRANDA
Qu’est ce que SARG? C’est un outil simple qui s’installe sur le serveur et qui analyse le trafic lié à internet. Il permet de connaitre les sites visités pour...
Posted by louis MARTINBRANDA
Je cherchais depuis peu un moyen simple et efficace de sauvegarder mes configuration Cisco automatiquement. En cherchant un peu sur le net, j’ai trouvé que la solution la...
Posted by louis MARTINBRANDA
Installation
[bash]apt-get install proftpd[/bash]
Edition de la configuration :
[bash]vi /etc/proftpd/proftpd.conf[/bash]
Nous allons modifier les options suivantes :
[bash]UseIPv6 off #Ne pas utiliser IPv6 si ce n’est pas nécessaire
DefaultRoot ~ #Le répertoire de destination par défaut des utilisateurs est leur propre home directory.
IdentLookups off #Désactive l’identification distante
RequireValidShell off #Permet la connexion des utilisateurs qui ne possèdent pas d’accès shell
IdentLookups off #Désactive l’identification distante
ServerIdent on « FTP Server ready. » #Message minimaliste affiché à la connexion
ShowSymlinks off #Ne pas afficher les liens symboliques
AllowStoreRestart on #Autoriser la reprise d’un upload de fichier (resuming)
AllowRetrieveRestart on #Autoriser la reprise d’un téléchargement de fichier[/bash]
Si vous ne parvenez pas à vous connecter, une parade consiste à désactiver le module sql postgres, en commentant avec # la ligne correspondante dans le fichier
/etc/proftpd/modules.conf :
[bash]vi /etc/proftpd/modules.conf
# LoadModule mod_sql_postgres.c[/bash]
Redémarrer le tout :
[bash]/etc/init.d/proftpd restart[/bash]
Proftpd-mysql
Par défaut, les comptes FTP sont ceux des utilisateurs de la machine. Dans le cas d’un serveur d’hébergement, il peut être intéressant de gérer les utilisateurs et groupes indépendamment. Le module proftpd-mysql permet de stocker ces informations dynamiquement dans une base de données MySQL.
[bash]apt-get install proftpd-mysql[/bash]
Il faut ensuite créer la structure de la base de données. Connectez-vous en root pour définir les droits d’accès :
[sql]CREATE DATABASE `proftpd`;
GRANT SELECT, INSERT, UPDATE, DELETE ON proftpd.* TO ‘proftpd’@’localhost’
IDENTIFIED BY motdepasse_proftpd;
FLUSH PRIVILEGES;
Puis mettre en place les tables :
USE proftpd;
CREATE TABLE `ftpgroup` (
`groupname` varchar(16) NOT NULL default »,
`gid` smallint(6) NOT NULL default ‘5500’,
`members` varchar(16) NOT NULL default »,
KEY `groupname` (`groupname`)
) TYPE=MyISAM COMMENT=’Table des groupes ProFTPD’;
CREATE TABLE `ftpquotalimits` (
`name` varchar(30) default NULL,
`quota_type` enum(‘user’,’group’,’class’,’all’) NOT NULL default ‘user’,
`par_session` enum(‘false’,’true’) NOT NULL default ‘false’,
`limit_type` enum(‘soft’,’hard’) NOT NULL default ‘soft’,
`bytes_up_limit` float NOT NULL default ‘0’,
`bytes_down_limit` float NOT NULL default ‘0’,
`bytes_transfer_limit` float NOT NULL default ‘0’,
`files_up_limit` int(10) unsigned NOT NULL default ‘0’,
`files_down_limit` int(10) unsigned NOT NULL default ‘0’,
`files_transfer_limit` int(10) unsigned NOT NULL default ‘0’
) TYPE=MyISAM COMMENT=’Table des quotas ProFTPD’;
CREATE TABLE `ftpquotatotal` (
`name` varchar(30) NOT NULL default »,
`quota_type` enum(‘user’,’group’,’class’,’all’) NOT NULL default ‘user’,
`bytes_up_total` float NOT NULL default ‘0’,
`bytes_down_total` float NOT NULL default ‘0’,
`bytes_transfer_total` float NOT NULL default ‘0’,
`files_up_total` int(10) unsigned NOT NULL default ‘0’,
`files_down_total` int(10) unsigned NOT NULL default ‘0’,
`files_transfer_total` int(10) unsigned NOT NULL default ‘0’
) TYPE=MyISAM COMMENT=’Table des compteurs des quotas ProFTPD’;
CREATE TABLE `ftpuser` (
`id` int(10) unsigned NOT NULL auto_increment,
`userid` varchar(32) NOT NULL default »,
`passwd` varchar(32) NOT NULL default »,
`uid` smallint(6) NOT NULL default ‘5500’,
`gid` smallint(6) NOT NULL default ‘5500’,
`homedir` varchar(255) NOT NULL default »,
`shell` varchar(16) NOT NULL default ‘/bin/false’,
`count` int(11) NOT NULL default ‘0’,
`accessed` datetime NOT NULL default ‘0000-00-00 00:00:00’,
`modified` datetime NOT NULL default ‘0000-00-00 00:00:00’,
`LoginAllowed` enum(‘true’,’false’) NOT NULL default ‘true’,
PRIMARY KEY (`id`)
) TYPE=MyISAM COMMENT=’Table des utlisateurs ProFTPD'[/sql]
Editez /etc/proftpd/proftpd.conf pour activer le support MySQL en vérifiant les identifiants de connexion :
[bash]# Cryptage
SQLAuthTypes Crypt
SQLAuthenticate users* groups*
# Identifiants de connexion
SQLConnectInfo proftpd@localhost proftpd motdepasse_proftpd
# Colonnes utilisées pour les utilisateurs
SQLUserInfo ftpuser userid passwd uid gid homedir shell
SQLUserWhereClause « LoginAllowed = ‘true' »
# Colonnes utilisées pour les groupes
SQLGroupInfo ftpgroup groupname gid members
# Créer le répertoire home par défaut
SQLHomedirOnDemand on
# Mise à jour des compteurs de connexion
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE « count=count+1, accessed=now() WHERE userid=’%u' » ftpuser
# Mise à jour des compteurs de trafic
SQLLog STOR,DELE modified
SQLNamedQuery modified UPDATE « modified=now() WHERE userid=’%u' » ftpuser
# Quota
QuotaEngine on
QuotaDirectoryTally on
QuotaDisplayUnits Mb
QuotaShowQuotas on
# Requêtes SQL relatives aux quotas
SQLNamedQuery get-quota-limit SELECT « name, quota_type, par_session, limit_type, bytes_up_limit, bytes_down_limit, bytes_transfer_limit, files_up_limit, files_down_limit, files_transfer_limit FROM ftpquotalimits WHERE name = ‘%{0}’ AND quota_type = ‘%{1}' »
SQLNamedQuery get-quota-tally SELECT « name, quota_type, bytes_up_total, bytes_down_total, bytes_transfer_total, files_up_total, files_down_total, files_transfer_total FROM ftpquotatotal WHERE name = ‘%{0}’ AND quota_type = ‘%{1}' »
SQLNamedQuery update-quota-tally UPDATE « bytes_up_total = bytes_up_total + %{0}, bytes_down_total = bytes_down_total + %{1}, bytes_transfer_total = bytes_transfer_total + %{2}, files_up_total = files_up_total + %{3}, files_down_total = files_down_total + %{4}, files_transfer_total = files_transfer_total + %{5} WHERE name = ‘%{6}’ AND quota_type = ‘%{7}' » ftpquotatotal
SQLNamedQuery insert-quota-tally INSERT « %{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7} » ftpquotatotal
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally;[/bash]
Redémarrez le service :
[bash]/etc/init.d/proftpd restart[/bash]
La gestion des utilisateurs dans ces tables étant relativement explicite d’après leur structure, celle-ci ne sera pas développée pour le moment. Reportez-vous à la Documentation Ubuntu Francophone si nécessaire.
Ajoutez un enregistrement dans la table ftpuser pour chaque utilisateur, le mot de passe étant encrypté par la fonction mysql ENCRYPT. Ajoutez un enregistrement dans la table ftpgroup pour chaque groupe. Le champ members contenant les logins (en texte) des membres de ce groupe.
Subscribe to our email newsletter to receive useful articles and special offers.
We won't share your email address.