Vsftpd 是一款轻量级并有着安全与简易等特性的FTP服务器程序,破受欢迎。在 Linux 中一旦配置好 Vsftpd 环境就可以一劳永逸,任意的迁移到类似的服务器之上,因此我们对配置过程做个系统的了解也是有必要的。
本 文的任务是创建两个虚拟账户,第一个账户(bugxm_admin)拥有可读写指定目录文件、不可登陆系统权限,第二个(bugxm_general)只 拥有只读被绑定目录中文件的权限,依然不能登陆系统。新建一个虚拟用户并且合理分配权限、绑定目录,这和IDC商的虚拟主机效果是一样的。臭虫小明 为了方便,直接采用的 Root 账户操作。
1、安装 Vsftpd 程序,为了方便我们采用以下方式进行自动安装
yum install -y vsftpd
2、创建“bugxm_admin”与“bugxm_general”这两个账户,密码暂定为“123456”,其中奇数行表示账号,偶数行表示密码。
vi /etc/vsftpd/vm_user.txt
bugxm_admin
123456
bugxm_general
123456
2-1、创建 Vsftpd 认证文件
db_load -T -t hash -f /etc/vsftpd/vm_user.txt /etc/vsftpd/vm_user.db
注: 执行上条命令若提示:“bash: db_load: command not found”,请安装“db4-utils”,具体操作如下
yum install -y db4 db4-utils
注: 如果出现“db_load: unexpected end of input data or key/data pair、 db_load: odd number of key/data pairs”提示,请在 vm_user.txt 最后一行添加空行,即回车一下。
3、编辑虚拟用户需要用到的PAM认证配置文件
rm -f /etc/pam.d/vsftpd
vi /etc/pam.d/vsftpd
3-1、PAM认证配置文件输入以下内容
auth required pam_userdb.so db=/etc/vsftpd/vm_user
account required pam_userdb.so db=/etc/vsftpd/vm_user
4、给 bugxm_admin、bugxm_general 这两个账户增加属性,控制访问目录、权限等,首先创建 bugxm_admin 账户
mkdir /etc/vsftpd/users
vi /etc/vsftpd/users/bugxm_admin
4-1、输入以下内容
local_root=/data/htdocs/bugxm_admin
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
4-2、以下是对上面这步操作的注释补充
local_root=/data/htdocs/bugxm_admin #根目录绑定
write_enable=YES #表示拥有可写权限
anon_umask=022 #上传文件的权限,022表示文件夹755、文件644权限
anon_world_readable_only=NO #表示用户具有下载权限
anon_upload_enable=YES #表示用户有权限上传文件
anon_mkdir_write_enable=YES #表示用户具有创建和删除目录的权限
anon_other_write_enable=YES #表示用户具有文件改名和删除文件的权限
4-3、创建 bugxm_general 用户
vi /etc/vsftpd/users/bugxm_general
4-4、输入以下内容
local_root=/data0/htdocs/bugxm_general
anon_world_readable_only=NO
5、两个用户创建完成之后,开始配置 Vsftpd。
vi /etc/vsftpd/vsftpd.conf
5-1、为安全考虑,我们配置不允许匿名访问。
默认:anonymous_enable=YES
改成:anonymous_enable=NO
5-2、YES 表示用户不能离开被我们指定的上级的任何目录。
默认:#chroot_list_enable=YES
改成:chroot_list_enable=YES
5-3、允许用户使用ASCII上传文件。
默认:#ascii_upload_enable=YES
改成:ascii_upload_enable=YES
5-4、允许用户使用ASCII下载文件。
默认:#ascii_download_enable=YES
改成:ascii_download_enable=YES
5-5、在末尾添加以下内容
guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd/users
6、 重新启动 Vsftpd (service vsftpd restart),出现 了 500 OOPS: could not open chroot() list file:/etc/vsftpd/chroot_list 错 误,执行以下操作就可以解决问题。
touch /etc/vsftpd/chroot_list
service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
6-1、用软件连接 ftp 服务器时,出现了以下问题,防火墙开启 21 端口就能得到解决。
状态: 正在连接 192.168.182.128:21.
错误: 连接超时
错误: 无法连接到服务器
状态: 正在等待重试。
6-2、在防火墙中开启 21 端口
vi /etc/sysconfig/iptables
任意位置添加以下内容
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21-j ACCEPT
重启防火墙
/sbin/service iptables restart
6-3、再次连接时出现了不能切换目录错误“500 OOPS: cannot change directory:/data/htdocs/bugxm_admin”,执行以下操作即可解决。
setsebool -P ftpd_disable_trans 1
service vsftpd restart
6-4、终于连接上了!
状态: 读取目录列表。
命令: PORT 192,168,182,1,38,172
响应: 200 PORT command successful. Consider using PASV.
命令: LIST
响应: 150 Here comes the directory listing.
响应: 226 Directory send OK.
状态: 列出目录成功
6-5、登陆 bugxm_admin 账户试试能否上传文件,臭虫小明这里上传文件还存在权限问题。
4上传错误:553 Could not create file.
解决方法:
chmod 770 -R /data/htdocs
chown root:ftp -R /data/htdocs
6-6、再次上传,正确了。
28状态: 正在连接 192.168.182.128:21.
状态: 连接建立,等待欢迎消息。
响应: 220 (vsFTPd 2.0.5)
命令: USER bugxm_admin
响应: 331 Please specify the password.
命令: PASS ******
响应: 230 Login successful.
命令: OPTS UTF8 ON
响应: 200 Always in UTF8 mode.
状态: 已连接
状态: 开始上传 E:\Users\Desktop\index.htm
命令: CWD /
响应: 250 Directory successfully changed.
命令: TYPE I
响应: 200 Switching to Binary mode.
命令: PORT 192,168,182,1,40,46
响应: 200 PORT command successful. Consider using PASV.
命令: STOR index.htm
响应: 150 Ok to send data.
响应: 226 File receive OK.
状态: 文件传输成功,传输了 35,250 字节 (用时1 秒)
状态: 读取目录列表。
命令: PORT 192,168,182,1,40,47
响应: 200 PORT command successful. Consider using PASV.
命令: LIST
响应: 150 Here comes the directory listing.
响应: 226 Directory send OK.
状态: 列出目录成功
6-7、试试另外一个账号是不是实现了仅有下载权限需求。
状态: 正在连接 192.168.182.128:21.
状态: 连接建立,等待欢迎消息。
响应: 220 (vsFTPd 2.0.5)
命令: USER bugxm_admin
响应: 331 Please specify the password.
命令: PASS ******
响应: 230 Login successful.
命令: OPTS UTF8 ON
响应: 200 Always in UTF8 mode.
状态: 已连接
状态: 开始上传 E:\Users\Desktop\index.htm
命令: CWD /
响应: 250 Directory successfully changed.
命令: TYPE I
响应: 200 Switching to Binary mode.
命令: PORT 192,168,182,1,40,46
响应: 200 PORT command successful. Consider using PASV.
命令: STOR index.htm
响应: 150 Ok to send data.
响应: 226 File receive OK.
状态: 文件传输成功,传输了 35,250 字节 (用时1 秒)
状态: 读取目录列表。
命令: PORT 192,168,182,1,40,47
响应: 200 PORT command successful. Consider using PASV.
命令: LIST
响应: 150 Here comes the directory listing.
响应: 226 Directory send OK.
状态: 列出目录成功
状态: 已从服务器断开
状态: 正在连接 192.168.182.128:21.
状态: 连接建立,等待欢迎消息。
响应: 220 (vsFTPd 2.0.5)
命令: USER bugxm_general
响应: 331 Please specify the password.
命令: PASS ******
响应: 230 Login successful.
命令: SYST
响应: 215 UNIX Type: L8
命令: FEAT
响应: 211-Features:
响应: EPRT
响应: EPSV
响应: MDTM
响应: PASV
响应: REST STREAM
响应: SIZE
响应: TVFS
响应: UTF8
响应: 211 End
命令: OPTS UTF8 ON
响应: 200 Always in UTF8 mode.
状态: 已连接
状态: 读取目录列表。
命令: PWD
响应: 257 “/”
命令: TYPE I
响应: 200 Switching to Binary mode.
命令: PORT 192,168,182,1,40,56
响应: 200 PORT command successful. Consider using PASV.
命令: LIST
响应: 150 Here comes the directory listing.
响应: 226 Directory send OK.
状态: 列出目录成功
状态: 已从服务器断开
状态: 正在连接 192.168.182.128:21.
状态: 连接建立,等待欢迎消息。
响应: 220 (vsFTPd 2.0.5)
命令: USER bugxm_general
响应: 331 Please specify the password.
命令: PASS ******
响应: 230 Login successful.
命令: OPTS UTF8 ON
响应: 200 Always in UTF8 mode.
状态: 已连接
状态: 开始上传 E:\Users\Desktop\index.htm
命令: CWD /
响应: 250 Directory successfully changed.
命令: PWD
响应: 257 “/”
命令: TYPE I
响应: 200 Switching to Binary mode.
命令: PORT 192,168,182,1,40,59
响应: 200 PORT command successful. Consider using PASV.
命令: STOR index.htm
响应: 550 Permission denied.
错误: 严重文件传输错误
总结:Vsftpd 整个配置过程实际上比较简单,但初次配置总会遇到各种不解的难题,如果稍微耐心一些,这些问题都很容易得到解决。转载请注明出处http://www.bugxm.com/system/linux/534.html ,谢谢。
相关推荐
本书深入浅出地讲解了Ubuntu Linux的安装、配置、日常使用以及系统管理等方面的知识,旨在帮助读者熟练掌握这一开放源码操作系统。 1. **Ubuntu Linux概述** - Ubuntu的历史和发展:Ubuntu由Canonical公司发起,...
本课程通过四个视频模块,深入浅出地讲解了Linux服务器的基础知识和实践操作技能。 首先,视频可能从Linux基础入手,包括Linux的安装、常用命令行操作、文件系统管理等基础知识。这些内容对于理解和操作Linux服务器...
《Red Hat Linux 9.0 定制指南中文版》是一部深入探讨Red Hat Linux操作系统定制技术的专业书籍。在Linux世界中,Red Hat Linux以其稳定性和易用性深受用户喜爱,而版本9.0更是其中的经典之作。本指南旨在帮助用户...
Linux在企业服务器中的应用广泛,尤其在服务器管理、文件共享和服务搭建方面表现出强大的稳定性和效率。本文主要聚焦于五个核心领域:基本命令、FTP服务器搭建、Samba服务器搭建、Apache服务器搭建以及邮件服务器的...
本教程将针对“各种网络服务器的简单搭建”这一主题,深入浅出地讲解相关知识,帮助你快速掌握网络服务器的基本操作。 首先,我们要了解什么是网络服务器。网络服务器是运行在互联网上,为用户提供各种服务的计算机...