Installer un serveur FTP et le mettre en service NT
Pré-requis :
Télécharger les logiciels suivants
Apache Server FTP
le serveur FTP de la communauté Apache
JavaService-2.0.10
Utilitaire permettant d’installer un programme Java en service
NT
FileZilla
client FTPgratuit
Editer ce script install-service-nt.bat (voir FAQ de la doc sur ftp-server)
@echo off
SET FTPSERVER_HOME= C:\D\Java\ftpserver-dev
SET FTPSERVER_LIB=%FTPSERVER_HOME%\common\lib
SET FTPSERVER_CLASSES=%FTPSERVER_HOME%\common\classes
SET JAVA_HOME= C:\D\Java\j2sdk1.4.2_12
SET SERVER_CLASSPATH=%JAVA_HOME%\lib\tools.jar
SET SERVER_CLASSPATH=%SERVER_CLASSPATH%;%FTPSERVER_CLASSES%
SET SERVER_CLASSPATH=%SERVER_CLASSPATH%;%FTPSERVER_LIB%\commons-logging-1.0.3.jar
SET SERVER_CLASSPATH=%SERVER_CLASSPATH%;%FTPSERVER_LIB%\log4j-1.2.12.jar
SET SERVER_CLASSPATH=%SERVER_CLASSPATH%;%FTPSERVER_LIB%\ftpserver-dev.jar
SET SERVER_CLASSPATH=%SERVER_CLASSPATH%;%FTPSERVER_HOME%\target\classes
SET MAIN_CLASS=org.apache.ftpserver.commandline.CommandLine
SET JVM_DLL=%JAVA_HOME%\jre\bin\server\jvm.dll
SET CONF_XML=%FTPSERVER_HOME%/res/conf/ftpd.xml
SET STDOUT_LOG=%FTPSERVER_HOME%\stdout.log
SET STDERR_LOG=%FTPSERVER_HOME%\stderr.log
JavaService.exe -uninstall ApacheFtpServer
JavaService.exe -install ApacheFtpServer %JVM_DLL% -Djava.class.path=%SERVER_CLASSPATH% -start
%MAIN_CLASS% -params -xml %CONF_XML% -out %STDOUT_LOG% -err %STDERR_LOG% -current
%FTPSERVER_HOME%
En n’oubliant de configurer les variables JAVA_HOME et FTPSERVER_HOME
Dézipper l’api JavaService-2.0.10 et copier JavaService.exe dans le répertoire
%FTPSERVER_HOME%
Exécuter le install-service-nt.bat
Aller dans Gestion de l’ordinateur > Services, la ligne du service ApacheFtpServer a été
ajouté si tout a bien été exécuté. Démarrer le service.
Le fichier de configuration utilisé par défaut par ftp-server est res/conf/ftpd.xml
Pour configurer le serveur, éditer le fichier ftpd.xml
Voici un exemple de configuration :
<?xml version="1.0"?>
<!-- XML file based configuration -->
<config>
<!-- Standard socket factory. If you want to support explicit
secure connection, please specify the ssl block
<socket-factory>
<class>org.apache.ftpserver.socketfactory.FtpSocketFactory</class>
<address>localhost</address>
<port>21</port>
<ssl>
<keystore-file>./res/.keystore</keystore-file>
<keystore-password>password</keystore-password>
<keystore-type>JKS</keystore-type>
<keystore-algorithm>SunX509</keystore-algorithm>
<ssl-protocol>TLS</ssl-protocol>
<client-authentication>false</client-authentication>
<key-password>password</key-password>
</ssl>
</socket-factory>
-->
<!-- Secure server socket factory. In this case you have to
specify the ssl block
<socket-factory>
<class>org.apache.ftpserver.socketfactory.SSLFtpSocketFactory</class>
<address>localhost</address>
<port>21</port>
<ssl>
<keystore-file>./res/.keystore</keystore-file>
<keystore-password>password</keystore-password>
<keystore-type>JKS</keystore-type>
<keystore-algorithm>SunX509</keystore-algorithm>
<ssl-protocol>TLS</ssl-protocol>
<client-authentication>false</client-authentication>
<key-password>password</key-password>
</ssl>
</socket-factory>
-->
<!-- Data connection configuration. If you want to support secure
data connection, please specify the ssl block.
<data-connection>
<idle-time>10</idle-time>
<active>
<enable>true</enable>
<local-address>localhost<local-address>
<local-port>20</local-port>
<ip-check>false<ip-check>
</active>
<passive>
<address>localhost</address>
<ports>0</ports>
</passive>
<ssl>
<keystore-file>./res/.keystore</keystore-file>
<keystore-password>password</keystore-password>
<keystore-type>JKS</keystore-type>
<keystore-algorithm>SunX509</keystore-algorithm>
<ssl-protocol>TLS</ssl-protocol>
<client-authentication>false</client-authentication>
<key-password>password</key-password>
</ssl>
</data-connection>
-->
<!-- Standard users admin and anonymous will be created by default. -->
<create-default-user>false</create-default-user>
<!-- Ftp message configuration block
<message>
<class>org.apache.ftpserver.message.MessageResourceImpl</class>
<custom-message-dir>./res</custom-message-file>
<languages>en,zh-tw</languages>
</message>
-->
<!-- Connection manager configuration block
<connection-manager>
<max-connection>20</max-connection>
<max-login>10</max-login>
<anonymous-login-enabled>true</anonymous-login-enabled>
<max-anonymous-login>10</max-anonymous-login>
<default-idle-time>60</default-idle-time>
<timeout-poll-inverval>60</timeout-poll-inverval>
</connection-manager>
-->
<!-- Command factory configuration block
<command-factory>
<command>
<command-name>fully-qualified-command-class-name</command-name>
</command>
</command-factory>
-->
<!-- IP restrictor configuration block
<ip-restrictor>
<class>org.apache.ftpserver.iprestrictor.FileIpRestrictor</class>
<file>./res/ip.gen</file>
</ip-restrictor>
-->
<!-- Default properties file based user manager configuration block -->
<user-manager>
<class>org.apache.ftpserver.usermanager.PropertiesUserManager</class>
<admin>admin</admin>
<prop-file>./res/user.gen</prop-file>
<prop-password-encrypt>false</prop-password-encrypt>
</user-manager>
<!-- Database based user manager configuration
<user-manager>
<class>org.apache.ftpserver.usermanager.DbUserManager</class>
<admin>admin</admin>
<jdbc-driver>org.gjt.mm.mysql.Driver</jdbc-driver>
<jdbc-url>jdbc:mysql://localhost:3306/data</jdbc-url>
<jdbc-user>user</jdbc-user>
<jdbc-password>password</jdbc-password>
<sql-user-insert>INSERT INTO FTP_USER (uid, userpassword, homedirectory, enableflag,
writepermission, idletime, uploadrate, downloadrate) VALUES ('{uid}', '{userpassword}',
'{homedirectory}', '{enableflag}', '{writepermission}', {idletime}, {uploadrate},
{downloadrate})</sql-user-insert>
<sql-user-update>UPDATE FTP_USER SET
userpassword='{userpassword}',homedirectory='{homedirectory}',enableflag='{enableflag}',writep
ermission='{writepermission}',idletime={idletime},uploadrate={uploadrate},downloadrate={downlo
adrate} WHERE uid='{uid}'</sql-user-update>
<sql-user-delete>DELETE FROM FTP_USER WHERE uid = '{uid}'</sql-user-delete>
<sql-user-select>SELECT uid, userpassword, homedirectory, enableflag, writepermission,
idletime, uploadrate, downloadrate FROM FTP_USER WHERE uid = '{uid}'</sql-user-select>
<sql-user-select-all>SELECT uid FROM FTP_USER ORDER BY uid</sql-user-select-all>
<sql-user-authenticate>SELECT uid from FTP_USER WHERE uid='{uid}' AND
userpassword='{userpassword}'</sql-user-authenticate>
<sql-user-admin>SELECT uid FROM FTP_USER WHERE uid='{uid}' AND uid='admin'</sql-user-
admin>
</user-manager>
-->
<!-- LDAP based user manager
<user-manager>
<class>org.apache.ftpserver.usermanager.LdapUserManager</class>
<admin>admin</admin>
<ldap-url>ldap://localhost:389</ldap-url>
<ldap-admin-dn>cn=Manager,dc=apache,dc=org</ldap-admin-dn>
<ldap-admin-password>secret</ldap-admin-password>
<ldap-authentication>simple</ldap-authentication>
<ldap-user-base-dn>dc=apache,dc=org</ldap-user-base-dn>
</user-manager>
-->
<!-- file system manager configuration block
<file-system-manager>
<class>org.apache.ftpserver.filesystem.NativeFileSystemManager</class>
<create-home>false</create-home>
</file-system-manager>
-->
<!-- All ftplets
<ftplets>f1,f2</ftplets>
-->
<!-- Ftplet configuration
<ftplet>
<f1>
<class>org.apache.ftpserver.ftplet.Ftplet1</class>
<param>value1</param>
</f1>
<f2>
<class>org.apache.ftpserver.ftplet.Ftplet2</class>
<param>value2</param>
</f2>
</ftplet>
-->
</config>
Comme on peut le constater on peut configurer le serveur pour faire du ssl, du cryptage de
password, gérer les utilisateurs ayant accès au FTP par base de données, ou LDAP, faire de la
restriction d’IP.
Ajout des utilisateurs se fait grâce à ftp_ui.bat ou éditer user.gen
Le répertoire home du serveur FTP est res/home. Déposer les fichiers que vous voulez mettre
à disposition
Redémarrer le serveur
Tester le serveur FTP avec FileZilla en renseignant le hostname votre login et mot de passe
que vous avez choisi lors de la gestion des utilisateurs.
Et voilà.
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !