热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

CentOS6系统中vsFTPd的安装与配置方法

第一步:安装vsftppamdb4yuminstallvsftpdpam*db4*-yInstalled:db4-cxx.i6860:4.7.25-16.el6db4-devel.i6860:4.7.25-16.el6db4-devel-static.i6860:

第一步:安装vsftp pam db4 
yum install vsftpd pam* db4*-y 
========================================================================================

Installed: 
  db4-cxx.i686 0:4.7.25-16.el6              db4-devel.i686 0:4.7.25-16.el6  db4-devel-static.i686 0:4.7.25-16.el6  db4-java.i686 0:4.7.25-16.el6    
  db4-tcl.i686 0:4.7.25-16.el6              pam-devel.i686 0:1.1.1-10.el6   pam_ldap.i686 0:185-11.el6             pam_pkcs11.i686 0:0.6.2-11.1.el6 
  pam_ssh_agent_auth.i686 0:0.9-70.el6_2.2  vsftpd.i686 0:2.2.2-6.el6_2.1 

Dependency Installed: 
  pcsc-lite-libs.i686 0:1.5.2-6.el6

======================================================================================== 
通过setup对系统服务及防火墙进行配置,然后reboot系统 
或者使用命令将vsftp配置为系统服务 
chkconfig --level 35 vsftpd on


第二步:配置vsftpd服务的宿主 
#useradd vsftpdadmin -s /sbin/nologin 
这个vsftpdadmin只是用来替换root的,并不需要登录


第三步:建立ftp虚拟宿主帐户 
#useradd ftpuser -s /sbin/nologin 
这ftpuser只个虚拟帐户的宿主,本身是不用登录的

第四步:配置vsftpd.conf 
更改配置前最好备份一下然后再改 
vim /etc/vsftpd/vsftpd.conf


修改下面红色字体的部分为蓝色字体的形式,紫色字体是配置原有的 
anonymous_enable=YES  -->  anonymous_enable=NO   //不允许匿名用户访问,默认是允许。 
#chroot_list_enable=YES  -->  chroot_list_enable=YES      //不允许FTP用户离开自己主目录,默认是被注释掉的。 
#chroot_list_file=/etc/vsftpd/chroot_list --> chroot_list_file=/etc/vsftpd/chroot_list  //如果开启了chroot_list_enable=YES,那么一定要开启这个,这条是锁定登录用户只能家目录的位置,如果不开启用户登录时就会报500 OOPS的错。 
注意:/etc/vsftp/chroot_list本身是不存在的,这要建立vim /etc/vsftp/chroot_list,然后将帐户输入一行一个,保存就可以了 
local_enable=YES      //允许本地用户访问,默认就是YES,不用改 
write_enable=YES      //允许写入,默认是YES,不用改 
local_umask=022       //上传后文件的权限掩码,不用改 
dirmessage_enable=YES //开启目录标语,默认是YES,开不开无所谓,我是默认就行 
xferlog_enable=YES    //开启日志,默认是YES,不用改 
connect_from_port_20=YES   //设定连接端口20 
xferlog_std_format=YES   //设定vsftpd的服务日志保存路径,不用改 
(这步后面要有几个操作才能运行,也就是touch这个文件(见第五步),因为它本身不存在,而且还要给文件写入的权限) 
#idle_session_timeout=600  -->  idle_session_timeout=600  //会话超时,客户端连接到ftp但未操作,默认被注释掉,可根据个人情况修改 
#async_abor_enable=YES  -->   async_abor_enable=YES     //支持异步传输功能,默认是注释掉的,去掉注释 
#ascii_upload_enable=YES  -->   ascii_upload_enable=YES   //支持ASCII模式的下载功能,默认是注释掉的,去掉注释 
#ascii_download_enable=YES  -->   ascii_download_enable=YES   //支持ASCII模式的上传功能,默认是注释掉的,去掉注释 
#ftpd_banner=Welcome to blah FTP service  //FTP的登录欢迎语,本身是被注释掉的,去不去都行 
#chroot_local_user=YES  --> chroot_local_user=YES    //禁止本地用户登出自己的FTP主目录,本身被注释掉,去掉注释 
pam_service_name=vsftpd  //设定pam服务下vsftpdd的验证配置文件名,不用改 
userlist_enable=YES    //拒绝登录用户名单,不用改 
TCP_wrappers=YES    //限制主机对VSFTP服务器的访问,不用改(通过/etc/hosts.deny和/etc/hosts.allow这两个文件来配置) 
增加 
guest_enable=YES    //设定启用虚拟用户功能。 
guest_username=ftpuser   //指定虚拟用户的宿主用户。 
virtual_use_local_privs=YES   //设定虚拟用户的权限符合他们的宿主用户。 
user_config_dir=/etc/vsftpd/vconf   //设定虚拟用户个人Vsftp的配置文件存放路径



第五步:建立日志文件 
#touch /var/log/vsftpd.log    //日志文件 
#chown vsftpdadmin.vsftpdadmin /var/log/vsftpd.log   //属于vsftpdadmin这个宿主


第六步:建立虚拟用户文件 
#mkdir /etc/vsftpd/vconf/ 
#touch /etc/vsftpd/vconf/vir_user

第七步:建立虚拟用户 
#vim /etc/vsftpd/vconf/vir_user 
virtualuser           //用户名 
12345678           //密码

注意:第一行用户名,第二行是上一行用户名的密码,其他人的以此类推

第八步:生成数据库 
#db_load -T -t hash -f /etc/vsftpd/vconf/vir_user /etc/vsftpd/vconf/vir_user.db

第九步:设置数据库文件的访问权限 
#chmod 600 /etc/vsftpd/vconf/vir_user.db 
#chmod 600 /etc/vsftpd/vconf/vir_user

第十步:修改/etc/pam.d/vsftpd内容 
echo "auth required pam_userdb.so db=/etc/vsftpd/vconf/vir_user" > /etc/pam.d/vsftpd 
echo "account required pam_userdb.so db=/etc/vsftpd/vconf/vir_user" >> /etc/pam.d/vsftpd 

第十步:创建用户的配置文件 
注意:用户配置文件的名字要和创建的“虚拟用户”名字对应 
#touch /etc/vsftpd/vconf/virtualuser 
#vim /etc/vsftpd/vconf/virtualuser 
输入: 
local_root=/home/virtualuser           //虚拟用户的个人目录路径 
anonymous_enable=NO 
write_enable=YES 
local_umask=022 
anon_upload_enable=NO 
anon_mkdir_write_enable=NO 
idle_session_timeout=600 
data_connection_timeout=120 
max_clients=10 
max_per_ip=5 
local_max_rate=1048576     //本地用户的最大传输速度,单位是Byts/s,我设定的是10M

第十一步:建立虚拟用户目录 
如果不建立虚拟用户的个人目录,那么所有的虚拟用户登录后所在的目录都是同一个目录下 
# mkdir /home/virtualuser 
# chown ftpuser.ftpuser ./virtualuser 
# chmod 600 /home/virtualuser 
配置就此完成,如果想增加新的用户,只要按照上面的第七步、第十步进行就可以了。

遇到的问题                                                    问题 
其实这回遇到的问题不多。 
1,450:读取目录列表失败 
在配置完第一台vsftp后(上面的配置就是)再用同样的过程做第二台,完成后用客户端和浏览器死活无法登录报错: 
450:读取目录列表失败 
只有在命令提示符和Termin下通过ftp 192.168.88.30后ls没有问题 
对比了之前的配置,每一步都没错,难到是PASV问题,于是在vsftpd.conf加上了一句pasv_enable=NO,然后……没然后了,一切都正常了

2、中文乱码 
这个是老生常谈的问题,好象也一直没有什么好的解决办法,网上也有提出改i18n,不过客户提出不用改,他们公司主要都是英文档,也我也省事了,不过还是当个问题记录吧

3、500 OOPS:cannot change directory:/home/pmfile
新建用户后登录报错,刚开始以为是selinux的问题,后来一想不对,其他的帐号都没事,肯定刚才己关闭了selinux,那么就是权限问题了,果然是刚才忘了把权限给虚拟ftp宿主权限了:chown -R ftpuser.ftpuser /home/publicfile

4、530错误:Login incorrect.
这是一个让我觉的搞笑的问题,第二台vsftp服务我用自己的本上的客户端(FileZilla)登录没问题,而客户用他的本登录就不行,用的软件都一样,不同的是我用的是Ubuntu,他用的是win7,但在win7的命令提示符下他却也能登录也能ls,不是权限问题,不是pam问题,这两块都着手试过,结果发现是客户在终端输入的密码错误,之前我还一再问他到底有没有输错密码,他也十分肯定的说没有,结果……

5、外网无法登录,550错误,错误: 读取目录列表失败

这个问题很是挠头,在做完第二台服务器后让客户先从内网登录,一切都很正常,而从外网登录时就会出现“550 Permission denied.”“错误: 连接超时”“错误: 读取目录列表失败”,难到是权限?
试来试去什么PASV、什么权限更改全做了(这一步是我着实不想做的,要是登录用户权限有问题内网也该无法登录),最后让客户的网管带我去查了一下他们路由器的配置,我才发现他们的内网映射没有开放TCP20端口,开放后就OK了


推荐阅读
  • Node.js在服务器上的多种部署策略
    本文探讨了Node.js应用程序在服务器上部署的几种有效方法,包括使用Screen、PM2以及通过宝塔面板进行简易管理。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • Vulnhub DC3 实战记录与分析
    本文记录了在 Vulnhub DC3 靶机上的渗透测试过程,包括漏洞利用、内核提权等关键步骤,并总结了实战经验和教训。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
  • 本文介绍了Linux操作系统的核心组成部分——内核及其版本分类,以及市面上常见的几种Linux发行版,旨在为初学者提供一个清晰的学习路径。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上安装和配置 MySQL、Tomcat 和 JDK 的步骤。通过本文,您将了解如何顺利安装这些组件,并确保它们能够正常协同工作。 ... [详细]
  • Ubuntu 14.04 系统安装后网卡名称修改方法
    本文介绍了在安装 Ubuntu 14.04 Server 版本后,如何将默认的网卡名称从非 eth 格式修改为传统的 eth 格式,并提供了详细的步骤和示例。 ... [详细]
  • 本文详细介绍了如何在 CentOS 7 及其衍生发行版(如 Red Hat, Oracle, Scientific Linux 7)上安装和完全卸载 GitLab。包括安装必要的依赖关系、配置防火墙、安装 GitLab 软件包以及常见问题的解决方法。 ... [详细]
  • vsftpd配置(虚拟用户、匿名用户登录)
    一、ftp服务搭建(一)概述1.ftp连接及传输模式(1)控制连接TCP21,用于发送FTP命令信息 ... [详细]
  • 阿里云服务器搭建详解——Ubuntu
    由于自己电脑配置跟不上,双系统一开,整个电脑就会变得非常卡顿,所以决定在阿里云买一个云服务器。听朋友说,学生买的话是非常便宜 ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
  • Nacos 0.3 数据持久化详解与实践
    本文详细介绍了如何将 Nacos 0.3 的数据持久化到 MySQL 数据库,并提供了具体的步骤和注意事项。 ... [详细]
author-avatar
好人langren_840
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有