centos 7下vsftpd配置ftp服务--配置
2019-05-21     loonlog     2646     0
本文目录
在vsftpd服务器中支持匿名用户,本地用户,和虚拟用户3类用户账号,用途及区别如下:
【匿名用户】 是名为anonymous或ftp的FTP用户,匿名FTP用户登录后将FTP服务器中的/var/ftp作为FTP根目录。匿名用户通常用于提供公共文件的下载,如架设公共软件下载的FTP服务器,所有人都可以使用匿名用户进行软件下载。
【本地用户】 账号是FTP服务器中的系统用户账号,使用FTP本地用户账号登录FTP服务器后,登录目录为本地用户的宿主目录。本地FTP用户账号通常和Web服务器一起提供虚拟主机服务,作为网页虚拟主机更新网页的途径。
【虚拟用户】 账号是为了保证FTP服务器的安全性,由vsftpd服务器提供的非系统用户账号。虚拟用户FTP登录后将把指定的目录作为FTP根目录。虚拟用户与本地用户具有类似的功能,由于虚拟用户相对安全,因此正逐步替代本地用户账号。
第一种:配置FTP服务器的虚拟用户
由于虚拟用户账号具有较高的安全性,可以替代本地用户账号使用,下面是vsftpd虚拟用户账号设置的几个步骤:
1、安装(上一篇-安装)完成vsftpd服务之后,生成的配置文件目录结构如下
/etc/vsftpd/
├── ftpusers
├── user_list
├── vsftpd.conf
└── vsftpd_conf_migrate.sh
2、建立虚拟账户的用户和密码库文件
使用vi指令建立logins.txt用户名和密码文件
vi logins.txt
loonlog
123456789
其中第一行(奇数行)设置账户名,第二行(偶数行)设置密码,多用户以此类推,:wq指令保存退出。
3、生成vsftpd的认证文件
首先安装db_load工具
yum install db4 db4-utils
接下来使用db_load 命令生成认证文件。“-f”命令选项设置的值是虚拟用户的口令库文件,即上面创建的logins.txt。命令的参数设置为需要生成的认证文件名如 vsftpd_login.db,该文件放置在目录/etc/vsftpd/下:
db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db
生成的认证文件的权限应设置为只对root用户可读可写,即600:
chmod 600 /etc/vsftpd/vsftpd_login.db
4、建立虚拟用户所需的pam配置文件
在/etc/pam.d目录下建立vsftpd虚拟用户身份认证所需的PAM配置文件,名称是vsftpd.vu,内容为:
vi /etc/pam.d/vsftpd.vu
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
5、建立虚拟用户及要访问的目录并设置相应的权限
建立vsftpd虚拟用户所需的系统用户账号,账号名为virtual ,指定用户的宿主目录是/home/ftpsite, 设置宿主目录的权限为700:
useradd -d /data virtual chmod 700 /data/
这样vsftpd服务器中的所有虚拟用户账号登录后都将在/data目录中
6、设置vsftpd.conf主配置文件
在对vsftpd.conf配置文件进行修改之前,应先将原有的文件进行备份,以便出现配置错误时可进行恢复:
cd /etc/vsftpd cp vsftpd.conf vsftpd.conf.bak
打开文件
vi /etc/vsftpd/vsftpd.conf
在vsftpd.conf配置文件中添加虚拟用户的配置项,内容为:
anonymous_enable=NO
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd_user_conf
listen=YES
listen_port=21
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999
local_enable=YES
暂时保存以上,接着看如何设置用户权限
a)设置主配置文件
在vsftpd.conf配置文件中添加user_config_dir配置项,并设置用户配置文件的保存目录
user_config_dir=/etc/vsftpd_user_conf
在上面的配置实例中,设置在/etc/vsftpd_user_conf目录中保存虚拟用户的配置文件
b)建立用户配置文件目录
使用mkdir命令建立虚拟用户配置文件的保存目录
mkdir /etc/vsftpd_user_conf
c)为虚拟用户建立单独的配置文件
在/etc/vsftpd_user_conf/目录中可以为每个虚拟用户建立独立的配置文件,配置文件名称和用户名相同。例如,为用户loonlog建立配置文件loonlog ,并将anon_world_readable_only设置为NO,表示用户具有浏览和下载的权限
vi /etc/vsftpd_user_conf/loonlog
anon_world_readable_only=NO
并设置该用户具有浏览,下载,上传,改名,删除文件,建立和删除的权限。
anon_world_readable_only=NO --表示用户可以浏览FTP目录和下载文件
anon_upload_enable=YES --表示用户可以上传文件
anon_mkdir_write_enable=YES --表示用户具有建立和删除目录的权利
anon_other_write_enable=YES --表示用户具有文件改名和删除文件的权限
通过对以上配置项的组合设置,vsftpd可以为每个虚拟用户配置不同的FTP权限,用户配置文件中没有的配置项将按照vsftpd.conf配置文件中的内容设置。
以下我又增加两行
write_enable=YES
anon_umask=022
7、重启vsftpd服务
service vsftpd restart
8、在浏览器内输入ftp://xxx.xxx.xxx.xxx你的ip地址,之后的步骤相信你已经知道怎么做了
9、以上,我遇到问题,用ftp工具连接提示“550 Failed to change directory”
a)网上开始寻找答案
vi /etc/vsftpd/vsftpd.conf
打开配置文件,新增一下语句
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
b)接下来创建文件vsftpd.chroot_list
vi /etc/vsftpd.chroot_list
在文档中增加ftp的用户名(如果有多用户的话,一行一个ftp用户名)
c)给data文件夹增加权限
chmod 777 /data
d)重启vsftpd服务
service vsftpd restart
本文参考
http://www.9170.org/post-322.html
https://www.cnblogs.com/IT--Loding/p/6257685.html
https://blog.51cto.com/12173069/2069230
https://blog.csdn.net/xiemanr/article/details/53326089
http://loonlog.com/2019/5/21/centos7-vsftpd-ftp-set/
评论列表,共 0 条评论
暂无评论