今日383人次阅读了86/155篇文章  |    留言板  |    RSS订阅
蠢也没那么可怕,毕竟水母没有脑子,也活了6亿年毒鸡汤

centos 7下vsftpd配置ftp服务--配置

2019-05-21     loonlog     2464     0

本文目录

vsftpd服务器中支持匿名用户本地用户,和虚拟用户3类用户账号,用途及区别如下:

【匿名用户】 是名为anonymousftpFTP用户,匿名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


vsftpd , ftp

centos 7下vsftpd配置ftp服务--配置
http://loonlog.com/2019/5/21/centos7-vsftpd-ftp-set/
    觉得有用?请点击页面顶部广告支持我!

您可能感兴趣的文章

发表评论(关于评论)

评论列表,共 0 条评论

  • 暂无评论