阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 5.6 安装vsftp服务并配置虚拟账户ftp

160次阅读
没有评论

共计 2678 个字符,预计需要花费 7 分钟才能阅读完成。

Linux 系统:CentOS 5.6

当我们的用户量越来越大时,继续创建更多的系统用户是不明智的,这时就需要为 vsftpd 创建虚拟账户,但 vsftpd 虚拟账户的数据库要保存在 Berkeley DB 格式的数据文件中,所以需要安装 db4-utils 工具来创建这样的数据库文件

(1) 安装 vsftpd 服务

yum install vsftpd
service vsftpd restart
chkconfig vsftpd on

(2) 创建虚拟用户数据库

首先需要创建明文文件,明文文件奇数行为用户名,偶数行为密码。使用 db_load 工具将其转换为数据库文件,db_load 工具需要通过安装 db4—utils 软件获得。最后通过修改文件权限以增强资料的安全性

yum -y install db4-utils
vi /etc/vsftpd/vlogin

在 vlogin 文件中写入用户名和密码

tomcat
123456
jerry
654321

生成虚拟数据库

db_load -T -t hash -f /etc/vsftpd/vlogin /etc/vsftpd/vlogin.db
chmod 600 /etc/vsftpd/{vlogin,vlogin.db}

(3) 创建 PAM 文件,设置虚拟账号验证

Linux 一般通过 PAM 文件设置账号的验证机制,然后通过创建 PAM 文件,使用新的数据文件进行登录验证,PAM 文件中的 db 选项于指定并验证账户和密码的数据库文件

vi /etc/pam.d/vsftpd.pam
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin

(4) 设置虚拟账户共享目录

因为所有的虚拟账户需要映射到一个真实的系统账户,所以系统需要添加一个系统账户并设置家目录

useradd -s /sbin/nologin -d /home/ftp virtual

(5) 修改主配置文件

vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO #禁止匿名登录,默认开启
local_enable=YES  #启动本机账户 ftp
write_enable=YES  #允许写操作
anon_upload_enable=YES #允许匿名用户上传,默认禁止
anon_mkdir_write_enable=NO  #禁止匿名用户创建目录
anon_other_write_enable=NO    #禁止匿名用户进行其他写操作
guest_enable=YES #开启,则所用非匿名用户登录都指定到 guest_username 的指定账号
guest_username=virtual #设置来宾账号,即我们刚刚创建的账号
listen_port=21
pasv_enable=YES #启动被动模式连接
pasv_min_port=30000
pasv_max_port=30999
user_config_dir=/etc/vsftpd_user_conf
pam_service_name=vsftpd.pam #指定 pam 文件
user_sub_token=$USER

(5)为每个用户设置独立的共享路径

通过在主配置文件中使用 user_config_dir 选项, 设置一个基于账户的配置目录,在该目录下可创建若干个与账户名称相同的文件,并在文件中为此账户设置独立的配置选项,包括权限与共享路径等设置,本文仅以 tomcat 为列,如果你还需要对权限,限速,并发量等选项进行设置,可以参考匿名账户的设置账户的设置选项添加至账户独立的配置文件中

mkdir /etc/vsftpd_user_conf
mkdir -p /home/ftp/tomcat
vi /etc/vsftpd_user_conf/tomcat

local_root=/home/ftp/$USER

(6) 将 21 号端口写进防火墙

vi /etc/sysconfig/iptables

-A INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT #添加这一行

(7) 重启服务

service iptables restart
service vsftpd restart

常见问题

1、530 Login incorrect

pam 验证失败,可能是因为你使用的 64 位操作系统,而 pam 文件中库文件的调用却使用的是 /lib/security/pam_userdb.so。或者是用户名或密码输入错误,也有可能是 vsftpd 主配置文件中 pam_service_name 设置的 pam 文件名称与 /etc/pam.d 中创建的 pam 文件不一致

2、500 oops:cannot change directory:/home/ftp/$USER

setsebool -P ftp_home_dir 1

3、上传文件失败

chmod 777 /home/ftp/tomcat

玩转 vsftpd 服务器的四大高级配置:http://www.linuxidc.com/Linux/2013-09/90565.htm

vsFTPd 配置教程:http://www.linuxidc.com/Linux/2013-09/90562.htm

Ubuntu 实用简单的 FTP 架设 http://www.linuxidc.com/Linux/2012-02/55346.htm

Ubuntu 上架设 FTP 服务器和 Apache 服务器 http://www.linuxidc.com/Linux/2011-04/35295.htm

Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

RHEL6 平台下 SeLinux 和 vsftpd 的匿名上传的简单案例 http://www.linuxidc.com/Linux/2013-04/82300.htm

Linux 系统 vsftpd 源码安装 http://www.linuxidc.com/Linux/2013-03/81475.htm

openSUSE 13.2/13.1 下安装配置 FTP 服务器 vsftpd  http://www.linuxidc.com/Linux/2014-12/110070.htm

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-06/118659.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计2678字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中