Maison  >  Article  >  Opération et maintenance  >  Construire un serveur FTP sous CentOS

Construire un serveur FTP sous CentOS

巴扎黑
巴扎黑original
2017-09-04 14:26:302118parcourir

vsftpd est un serveur FTP bien connu sous Linux. Bien sûr, c'est le premier choix lors de la création d'un serveur FTP.

Cet article présente le processus d'installation de vsftpd et de configuration des utilisateurs virtuels pour se connecter à FTP sous CentOS 6.4.

Texte :

Un : Installer vsftpd

Vérifier si vsftpd a été installé

rpm -qa | grep vsftpd
#如果没有,就安装,并设置开机启动
yum -y install vsftpd
chkconfig vsftpd on

Deux : Configuration basée sur l'utilisateur virtuel

L'utilisateur dit virtuel n'utilise pas de compte réel, mais uniquement dans le but de se connecter à un compte réel et de définir des autorisations. Les utilisateurs virtuels ne peuvent pas se connecter au système CentOS.

Modifiez le fichier de configuration

Ouvrez /etc/vsftpd/vsftpd.conf et effectuez la configuration suivante

anonymous_enable=NO #设定不允许匿名访问
local_enable=YES #设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
chroot_list_enable=YES #使用户不能离开主目录
ascii_upload_enable=YES
ascii_download_enable=YES #设定支持ASCII模式的上传和下载功能
pam_service_name=vsftpd #PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
以下这些是关于vsftpd虚拟用户支持的重要配置项,默认vsftpd.conf中不包含这些设定项目,需要自己手动添加
guest_enable=YES #设定启用虚拟用户功能
guest_username=ftp #指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了
user_config_dir=/etc/vsftpd/vuser_conf #设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名
进行认证
chroot_list_file=/etc/vsftpd/vuser_passwd.txt

Tout d'abord, installez l'outil Berkeley DB. Beaucoup de gens ne le peuvent pas. find db_load Le problème est que ce package n'est pas installé.

yum install db4 db4-utils

Ensuite, créez le texte du mot de passe utilisateur /etc/vsftpd/vuser_passwd.txt. Notez que les lignes impaires sont le nom d'utilisateur et les lignes paires sont le mot de passe

test
123456
Ensuite, générez le fichier de base de données d'authentification de l'utilisateur virtuel

db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
Ensuite, modifiez le fichier d'authentification /etc/pam.d/vsftpd, commentez toutes les déclarations originales et ajoutez les deux phrases suivantes :

auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
Enfin, créez le fichier de configuration utilisateur virtuel

mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/test  #文件名等于vuser_passwd.txt里面的账户名,否则下面设置无效
内容如下
local_root=/ftp/www  #虚拟用户根目录,根据实际情况修改
write_enable=YES
anon_umask=022 #掩码
anon_world_readable_only=NO 
anon_upload_enable=YES 
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
Définissez Selinux (si votre selinux est activé)

setsebool -P ftp_home_dir=1   #设置ftp可以使用home目录
sersebool -P allow_ftpd_full_access=1   #设置ftp用户可以有所有权限
Définissez les autorisations du répertoire racine FTP

mkdir /ftp/www   #创建目录
chmod R 755 /ftp
chmod R 777 /ftp/www

Le dernier vsftpd ne nécessite aucune autorisation d'écriture sur le répertoire principal, donc ftp est 755, puis définissez 777 autorisations sur les sous-répertoires sous le répertoire principal

Configurer le pare-feu

Ouvrez /etc/sysconfig/iptables

Sous "-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT", ajoutez :

-A INPUT m state --state NEW m tcp p dport 21 j ACCEPT
Ensuite enregistrez et fermez le fichier, exécutez la commande suivante dans le terminal pour actualiser la configuration du pare-feu :

service iptables restart
OK, exécutez "service vsftpd start" et vous pourrez accéder à votre serveur FTP.

Configurer le mode PASV

vsftpd n'active pas le mode PASV par défaut. Désormais, FTP ne peut être connecté que via le mode PORT. Pour activer PASV par défaut, vous devez ouvrir /etc/ via ce qui suit. configuration

vsftpd/vsftpd.conf, ajoutez

pasv_enable=YES   #开启PASV模式
pasv_min_port=40000   #最小端口号
pasv_max_port=40080   #最大端口号
pasv_promiscuous=YES
à la fin et ouvrez les ports 40000 à 40080 dans la configuration du pare-feu

-A INPUT m state --state NEW m tcp p dport 40000:40080 j ACCEPT
Redémarrez iptabls et vsftpd

service iptables restart
service vsftpd restart
Maintenant, vous pouvez utiliser le mode PASV pour vous connecter à votre serveur FTP~

Erreurs courantes :

Question 1 :

Mais après avoir suivi le étapes de configuration, j'ai constaté qu'à chaque fois c'était

530 Connexion incorrecte

Après avoir cherché, j'ai découvert que j'avais créé vsftpd.vu pour vérification dans le répertoire racine de etc, au lieu de /etc /pam.d/vsftpd.vu

Question 2 :

Après avoir modifié le problème ci-dessus, je n'arrive toujours pas à me connecter, me demandant :

500 OOPS : mauvaise valeur bool dans le fichier de configuration pour :anon_world_readable_only

J'ai cherché sur Google et j'ai découvert que certaines personnes disaient qu'il ne pouvait pas y avoir d'espaces à la fin du fichier de configuration. Lorsque j'ai ouvert mon propre fichier de configuration, j'ai trouvé que ce n'était pas seulement la fin du fichier de configuration. La ligne anon_world_readable_only, mais aussi la fin du fichier entier comportait plusieurs espaces. Hélas, soyez prudent lorsque vous copiez et collez des configurations à partir de pages Web.

Question 3 :

500 OOPS : vsftpd : impossible de localiser l'utilisateur spécifié dans 'guest_username' : aaA

Ce problème est très étrange En fin de compte, il a été constaté que. c'était un problème avec le cas final. Il devrait être 'aaa'

Alors faites attention aux détails, il est très simple d'installer les étapes ci-dessus

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