Maison  >  Article  >  Opération et maintenance  >  Comment configurer le serveur FTP sous Linux

Comment configurer le serveur FTP sous Linux

PHP中文网
PHP中文网original
2017-06-20 13:06:501343parcourir

1. Utilisez d'abord la commande rpm -qa| grep vsftpd pour vérifier si ftp n'est pas installé, utilisez yum -y install vsftpd pour l'installer (utilisez apt-get install vsftpd sous Ubuntu)

2. service vsftpd start / service vsftpd restart

Démarrer Pour que FTP démarre automatiquement à chaque démarrage, exécutez la commande : chkconfig --level 35 vsftpd on

3. Définissez les autorisations FTP

vi /etc/vsftpd/vsftpd.conf

Remplacez anonyme_enable=YES par anonyme_enable=NO
ESC pour revenir, entrez ":wq" pour enregistrez et lancez

Actualiser le pare-feu

#iptables -F

Le fichier de configuration principal de vsftpd est :

/etc/vsftpd/vsftpd .conf

Expérience 1 :

Si je n'autorise pas FTP à se connecter de manière anonyme, nous pouvons modifier le fichier de configuration principal de vsftpd pour atteindre

#vi / etc/vsftpd/vsftpd.conf Remplacez anonyme_enable=YES par anonyme_enable=NO

Expérience 2 :

Le Le serveur FTP sous Windows peut définir le message de bienvenue et le nombre maximum de connexions. Alors, que configurons-nous sur le serveur FTP Linux ? Ce à quoi je veux répondre est : c'est également possible. Nous pouvons également l'implémenter avec le fichier de configuration principal de vsftpd # vi /etc/vsftpd/vsftpd.conf

Ajoutez ftpd_banner=welcome ici à la fin ! est le message de bienvenue Max_clients= 100 Cela signifie que jusqu'à 100 utilisateurs peuvent y accéder en même temps et simplement redémarrer vsftpd !

Expérience 3 :

Si je veux empêcher mon collègue (lilei) qui m'a prêté de l'argent et a refusé de le rembourser de se connecter à notre site FTP, alors je peux L'utilisateur lilei a été ajouté à vi /etc/vsftpd.ftpusers

Expérience 4 :

Dans la matinée, le directeur général a dit qu'il promouvrait un petit nombre de personnes dans l'entreprise. Après avoir entendu la nouvelle, agissez vite, j'autorise uniquement le directeur général à se connecter au serveur FTP, personne d'autre ne peut même y penser, mettre le manager sur son cheval et restreindre les autres. Je peux faire ceci : # vi /etc/vsftpd/vsftpd.conf

Ajouter 2 éléments à la fin,

userlist_deny=NO / Les personnes de cette liste ne nient pas, d'autres nient (y compris Anonyme)

userlist_file=/etc/mp /Indicate the path of the list

Le fichier de configuration vsftpd utilise "#" comme caractère de commentaire, et les lignes commençant par Les "#" sont des lignes vides qui seront ignorées lors de l'analyse et les lignes restantes sont traitées comme des lignes de commande de configuration. Ne laissez pas d'espaces autour du "=" de chaque commande de configuration. Pour chaque commande de configuration, les instructions de configuration pertinentes sont également répertoriées dans le fichier de configuration, et le fichier de configuration peut être édité et modifié à l'aide de l'éditeur vi. La méthode est la suivante :
#vi /etc/vsftpd/vsftpd.conf

1. Connexion et paramètres pour les utilisateurs anonymes

 

write_enable=YES //Activer ou non l'autorisation d'écriture pour les utilisateurs connectés. Il s'agit d'un cadre mondial. Par défaut NO
local_enable=YES // Indique si les utilisateurs locaux sont autorisés à se connecter au serveur FTP. La valeur par défaut est NO
anonymous_enable=YES //Définissez s'il faut autoriser les utilisateurs anonymes à se connecter au serveur FTP. La valeur par défaut est OUI
ftp_username=ftp //Définissez le nom de compte de l'utilisateur anonyme, la valeur par défaut est ftp.
no_anon_password=YES // Indique si les utilisateurs anonymes doivent saisir un mot de passe lors de la connexion. Réglez sur OUI pour ne pas demander. Par défaut
NO
anon_world_readable_only=YES //Que les utilisateurs anonymes soient autorisés à télécharger des documents lisibles, la valeur par défaut est OUI.
anon_upload_enable=YES //Si les utilisateurs anonymes sont autorisés à télécharger des fichiers. Cet élément de configuration n'est valide que lorsque write_enable est défini sur
YES. Et les utilisateurs anonymes doivent avoir des autorisations en écriture sur les répertoires correspondants. La valeur par défaut est NON.
anon_mkdir_write_enable=YES //Si les utilisateurs anonymes sont autorisés à créer des répertoires. Valable uniquement lorsque write_enable est défini sur OUI. Et les utilisateurs anonymes disposent d'autorisations d'écriture sur le répertoire supérieur. La valeur par défaut est NON.
anon_other_write_enable=NO //Si défini sur OUI, les utilisateurs anonymes seront autorisés à avoir plus d'autorisations que
pour télécharger et créer des répertoires, ainsi que supprimer et renommer des autorisations. La valeur par défaut est NON.

2.设置欢迎信息

用户登录FTP服务器成功后,服务器可向登录用户输出预设置的欢迎信息。
ftpd_banner=Welcome to my FTP server. 
//该配置项用于设置比较简短的欢迎信息。若欢迎信息较多,则可使用banner_file配置项。
banner_file=/etc/vsftpd/banner     
//设置用户登录时,将要显示输出的文件。该设置项将覆盖ftpd_banner的设置。
dirmessage_enable=YES         
//设置是否显示目录消息。若设置为YES,则当用户进入特定目录(比如/var/ftp/Linux)时,将显示该目录中的由message_file配置项指定的文件(.message)中的内容。
message_file=.message          //设置目录消息文件。可将显示信息存入该文件。该文件需要放在 相应的目录(比如/var/ftp/linux)下

 

3.设置用户登录后所在的目录 
local_root=/var/ftp             
// 设置本地用户登录后所在的目录。默认配置文件中没有设置该项,此时用户登录FTP服务器后,所在的目录为该用户的主目录,对于root用户,则为/root目录。
anon_root=/var/ftp            
//设置匿名用户登录后所在的目录。若未指定,则默认为/var/ftp目录。

 

4.控制用户是否允许切换到上级目录 
       在默认配置下,用户可以使用“cd..”命名切换到上级目录。比如,若用户登录后所在的目录为/var/ftp,则在“ftp>”命令行 下,执行“cd..”命令后,用户将切换到其上级目录/var,若继续执行该命令,则可进入Linux系统的根目录,从而可以对整个Linux的文件系统 进行操作。

若设置了write_enable=YES,则用户还可对根目录下的文件进行改写操作,会给系统带来极大的安全隐患,因此,必须防止用户切换到Linux的根目录,相关的配置项如下:
chroot_list_enable=YES                    
// 设置是否启用chroot_list_file配置项指定的用户列表文件。设置为YES则除了列在j/etc/vsftpd/chroot_list文件中的的帐号外,所有登录的用户都可以进入ftp根目录之外的目录。默认NO
chroot_list_file=/etc/vsftpd/chroot_list         
// 用于指定用户列表文件,该文件用于控制哪些用户可以切换到FTP站点根目录的上级目录。
chroot_local_user=YES                    
// 用于指定用户列表文件中的用户,是否允许切换到上级目录。默认NO
注意:要对本地用户查看效果,需先设置local_root=/var/ftp

具体情况有以下几种:
1)当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到上级目录;未在文件中列出的用户,不能切换到站点根目录的上级目录。
2)当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到站点根目录的上级目录;未在文件中列出的用户,可以切换到上级目录。
3)当chroot_list_enable=NO,chroot_local_user=YES时,所有用户均不能切换到上级目录。
4)当chroot_list_enable=NO,chroot_local_user=NO时,所有用户均可以切换到上级目录。
5)当用户不允许切换到上级目录时,登录后FTP站点的根目录“/”是该FTP账户的主目录,即文件的系统的/var/ftp目录。

 

5.设置访问控制 
(1)设置允许或不允许访问的主机(见TBP14)
tcp_wrappers=YES用来设置vsftpd服务器是否与tcp wrapper相结合,进行主机的访问控制。默认设置为YES,vsftpd服务器会检查/etc/hosts.allow和/etc /hosts.deny中的设置,以决定请求连接的主机是否允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能。
比如,若要仅允许192.168.168.1~192.168.168.254的用户,可以访问连接vsftpd服务器,则可在/etc/hosts.allow文件中添加以下内容:
vsftpd:192.168.168.0/255.255.255.0 :allow
all:all:deny

(2) Définir les utilisateurs dont l'accès est autorisé ou non.
Le contrôle d'accès des utilisateurs est contrôlé par les fichiers /etc/vsftpd/user_list et /etc/vsftpd/ftpusers. Les commandes de configuration pertinentes sont les suivantes :
userlist_enable=YES
// Déterminez si le fichier /etc/vsftpd/user_list est activé et efficace. OUI prend effet, NON ne prend pas effet.
UserList_deny = YES
// Détermine si l'utilisateur dans le fichier /etc/vsftpd/user_list autorise l'accès ou non. Si la valeur est OUI, les utilisateurs du fichier /etc/vsftpd/user_list ne seront pas autorisés à accéder au serveur FTP ; si la valeur est NON, seuls les utilisateurs du fichier vsftpd.user_list peuvent accéder au serveur FTP.

6. Définir la vitesse d'accès
anon_max_rate=0  
//Définir la vitesse de transmission maximale que les utilisateurs anonymes peuvent utiliser, en b/s. S'il est défini sur 0, il n'y a pas de limite de vitesse, ce qui est la valeur par défaut.
local_max_rate=0 
//Définissez la vitesse de transmission maximale que les utilisateurs locaux peuvent utiliser. La valeur par défaut est 0, aucune limite.

7. Définir les fichiers de configuration utilisateur
Dans le serveur vsftpd, différents utilisateurs peuvent également utiliser différentes configurations, ce qui est obtenu grâce aux fichiers de configuration utilisateur.
user_config_dir=/etc/vsftpd/userconf //Utilisé pour définir le répertoire où se trouve le fichier de configuration utilisateur.
Après avoir défini cet élément de configuration, lorsque l'utilisateur se connecte au serveur FTP, le système lira le fichier portant le même nom que l'utilisateur actuel dans le répertoire /etc/vsftpd/userconf, et en fonction de la commande de configuration dans le fichier, le système effectuera une configuration ultérieure. Par exemple, à l'aide de fichiers de configuration utilisateur, vous pouvez contrôler la vitesse d'accès de différents utilisateurs. Dans chaque fichier de configuration utilisateur, définissez la configuration local_max_rate pour déterminer la vitesse d'accès autorisée par l'utilisateur.

8. Paramètres liés à la connexion
listen=YES   
//Définissez si le serveur vsftpd fonctionne en mode autonome. L'exécution en mode autonome est une meilleure solution. À ce stade, l'écoute doit être définie sur OUI. Il s'agit de la valeur par défaut et il est recommandé de ne pas la modifier. De nombreuses commandes de configuration liées au fonctionnement du serveur nécessitent ce mode de fonctionnement pour être efficaces. S'il est défini sur NON, vsftpd ne fonctionne pas comme un service indépendant et est soumis au contrôle de gestion du service xinetd, et ses fonctions seront limitées.

max_clients=0
//Définissez le nombre maximum de connexions autorisées par vsftpd. La valeur par défaut est 0, ce qui signifie illimité. Si la valeur est définie sur 150, 150 connexions sont autorisées en même temps et toute connexion en excès sera refusée. Valable uniquement lors de l'exécution en mode autonome.

max_per_ip=0
// Définissez le nombre de connexions simultanées autorisées au serveur FTP pour chaque adresse IP. La valeur par défaut est 0, aucune limite. Cette configuration peut généralement être définie pour empêcher le même utilisateur d'établir trop de connexions. Valable uniquement lors de l'exécution en mode autonome.

listen_address=adresse IP    
//Défini pour écouter la requête FTP de l'utilisateur sur l'adresse IP spécifiée. Si elle n'est pas définie, toutes les adresses IP liées au serveur seront écoutées. Valable uniquement lors de l'exécution en mode autonome. Pour les serveurs liés à une seule adresse IP, cet élément n'a pas besoin d'être configuré. Par défaut, cet élément de configuration n'est pas inclus dans le fichier de configuration. Si le serveur est lié à plusieurs adresses IP en même temps, cet élément de configuration doit être utilisé pour spécifier quelle adresse IP fournir les services FTP, c'est-à-dire spécifier l'adresse IP utilisée par le serveur FTP.
Remarque : avant et après avoir défini cette valeur, vous pouvez comparer l'état de surveillance du port via netstat -tnl

accept_timeout=60   
//Définir le délai d'attente pour l'établissement de données passives (PASV) connexion, en secondes, La valeur par défaut est 60.
connect_timeout=60
// Le délai d'attente pour établir une connexion de données en mode PORT, en secondes.
data_connection_timeout=300
//Définissez le délai d'expiration pour établir la connexion de données FTP, la valeur par défaut est de 300 secondes.

IDLE_SESSION_TIMEOUT = 600

// Combien de temps les paramètres ne font pas fonctionner le serveur FTP, puis la connexion FTP est déconnectée, l'unité est en deuxième et la valeur par défaut est de 600 secondes. Autrement dit, définissez le délai d'attente pour la stupeur. Pendant ce temps, s'il n'y a pas de transmission de données ou d'entrée de commande, la connexion sera déconnectée de force.
pam_service_name=vsftpd
//Définissez le nom utilisé dans PAM La valeur par défaut est vsftpd.

setproctitle_enable=NO|YES

//Définissez chaque connexion au serveur FTP pour voir si elle est représentée par un processus différent. La valeur par défaut est NON À l'heure actuelle, il n'y a qu'un seul processus nommé. vsftpd. Si la valeur est OUI, chaque connexion aura un processus vsftpd. Utilisez la commande "ps -ef|grep ftp" pour afficher les informations détaillées sur la connexion FTP. Pour des raisons de sécurité, il est recommandé de le fermer.

9. Mode de travail FTP et paramètres de port
(1) Introduction au mode de travail FTP
Il existe deux modes de fonctionnement de FTP, l'un est PORT FTP et l'autre est PASV FTP. Voici comment cela fonctionne.
La différence entre les deux est que le port de transmission de données de PORT FTP est spécifié par le serveur FTP, tandis que PASV FTP est spécifié par le client FTP et que le numéro de port utilisé pour chaque connexion de données est différent. Pour cette raison, dans les logiciels clients FTP tels que CuteFTP, il existe deux options, PORT et PASV, dans les éléments de configuration du type de connexion.

Lorsque le serveur FTP est réglé sur le mode de fonctionnement PASV, le client doit également être réglé sur le type de connexion PASV. Si le type de connexion client est défini sur PORT, la connexion FTP peut être établie, mais lors de l'exécution de commandes nécessitant des requêtes de données telles que ls ou get, il n'y aura aucune réponse et un rapport final indiquant que la connexion de données ne peut pas être établie.

(2) Configuration liée au port
listen_port=21                                                                                                                                                                                                                                                                        .
Exemple de connexion à un port non standard : ftp www.sunflower.org 7000
connect_from_port_20=YES
// La valeur par défaut est OUI, spécifiant le port 20 pour la connexion de transmission de données FTP. S'il est défini sur NON, lors de l'établissement d'une connexion de données, le port utilisé est spécifié par ftp_data_port.

ftp_data_port=20   

//Définissez le port utilisé pour la connexion de données FTP en mode PORT. La valeur par défaut est 20.
pasv_enable=YES|NO
//Si défini sur OUI, utilisez le mode de fonctionnement PASV ; s'il est défini sur NON, utilisez le mode PORT. La valeur par défaut est OUI, qui utilise le mode PASV.
pasv_max_port=0      
//Définissez la limite supérieure de la plage de ports qui peut être utilisée pour les connexions de données en mode de fonctionnement PASV. La valeur par défaut est 0, ce qui signifie n'importe quel port.
pasv_mim_port=0      
//Définissez la limite inférieure de la plage de ports qui peut être utilisée pour les connexions de données en mode de fonctionnement PASV. La valeur par défaut est 0, ce qui signifie n'importe quel port.

10. Définir le mode de transmission Lors du transfert de données, FTP peut utiliser le mode binaire (binaire) ou le mode ASCII pour télécharger ou télécharger des données.
ascii_download_enable=YES //Définissez s'il faut activer ou non le téléchargement des données en mode ASCII. La valeur par défaut est NON.
ascii_upload_enable=YES //Définissez s'il faut activer le mode ASCII pour télécharger des données. La valeur par défaut est NON.

11. Définir la relation et l'autorité du document de téléchargement (1) Définir le propriétaire du document de téléchargement anonyme
Chown_uploads = YES
// pour définir le propriétaire du document qui modifie le document téléchargé par l'utilisateur anonyme. La valeur par défaut est NON. S'il est défini sur OUI, le propriétaire des documents téléchargés par des utilisateurs anonymes sera défini sur le nom d'utilisateur défini par l'élément de configuration chown_username.
chown_username=whoever
//Définissez le nom du propriétaire des documents téléchargés par des utilisateurs anonymes. Valable uniquement si chown_uploads=YES. Il est recommandé de ne pas le définir en tant qu'utilisateur root. Cependant, le système est silencieux ROOT
(2) Le paramètre d'autorisations de la nouvelle documentation

LOCAL_UMASK = 022

// Définit l'UMASK de la documentation nouvellement ajoutée de l'utilisateur local, la valeur par défaut est 022 , et les autorisations correspondantes sont 755. L'umask est 022 et le nombre binaire correspondant est 000 010 010. Inversez-le en 111 101 101 et convertissez-le en un nombre décimal, qui est la valeur d'autorisation 755, ce qui signifie que le propriétaire (propriétaire) du document a lu, les droits d'écriture et d'exécution et le groupe auquel il appartient ont des droits de lecture et d'exécution, et les autres utilisateurs ont des droits de lecture et d'exécution. 022 convient à la plupart des situations et n’a généralement pas besoin d’être modifié. Si la valeur est 077, l'autorisation correspondante est 700.
anon_umask=022                                                                                                                                                                                                                              // Définir le umask pour que les utilisateurs anonymes ajoutent des documents. Par défaut 077
file_open_mode=0755 //Définissez les autorisations pour télécharger des documents. Les autorisations sont au format numérique. Par défaut 0666

12. Fichier journal

xferlog_enable=YES //S'il faut activer la journalisation de téléchargement/téléchargement. La valeur par défaut est NOxferlog_file=var/log/vsftpd.log //Définissez le nom et le chemin du fichier journal. L'option xferlog_enable doit être activée
xferlog_std_format=YES //Si le fichier journal utilise le format de fichier journal xferlog standard (le même format utilisé par wu-ftpd). La valeur par défaut est NON

13. Autres paramètres
text_userdb_names=NO  
//Définissez s'il faut afficher l'UID, le GID ou un nom d'utilisateur ou un nom de groupe spécifique lors de l'exécution de la commande ls. La valeur par défaut est NON, qui est affichée en mode UID et GID. Si vous souhaitez afficher le nom d'utilisateur et le nom de groupe, définissez-le sur OUI.
ls_recurse_enable=YES    
//Si elle est définie sur OUI, la commande "ls -R" peut être exécutée. La valeur par défaut est NON. Cet élément de configuration est commenté dans le fichier de configuration. Il existe certaines configurations similaires à celle-ci. Lorsqu'il doit être activé, supprimez simplement le commentaire et définissez-le sur OUI ou NON

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn