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

CentOS 5.5编译安装vsftpd-2.3.4配置虚拟用户全攻略

211次阅读
没有评论

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

环境:CentOS 5.5+Vsftpd-2.3.4

一、下载当前 Vsftpd-2.3.4

wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.3.4.tar.gz 
貌似最近官方都下不了,在补一个本站的下载地址:
wget http://www.linuxidc.com/files/2015/07/31/vsftpd-2.3.4.tar.gz   

二、安装前准备

1、创建虚拟用户映射的本地用户 wwwftp

useradd wwwftp -d /data/www -s /sbin/nologin

2、创建自定义配置目录

mkdir -p /data/soft/vsftpd/conf
mkdir -p /data/soft/vsftpd/bin
mkdir -p /data/soft/vsftpd/lib
mkdir -p /data/soft/vsftpd/user_conf
mkdir -p /data/soft/vsftpd/empty
mkdir -p /data/soft/vsftpd/logs
mkdir -p /data/www
mkdir -p /data/www/user1
mkdir -p /data/www/user2

3、对自定义目录设置权限

chown -R wwwftp:www /data/www
chmod -R 700 /data/soft/vsftpd/empty/
chown -R wwwftp:wwwftp /data/soft/vsftpd/empty/

4、复制用于验证用户登录的库文件到自定义目录方便管理

cp /lib/security/pam_userdb.so /data/soft/vsftpd/lib/

5、安装所需软件

yum -y install gcc db4* pam*

三、解压安装 vsftpd

tar zxvf vsftpd-2.3.4.tar.gz
cd vsftpd-2.3.4

源码安装默认不支持 tcp_wrappers 和 ssl

需要修改 builddefs.h

/* 默认值如下:*/
#undef VSF_BUILD_TCPWRAPPERS  /* 是否支持 TCP WRAPPERS*/
#define VSF_BUILD_PAM  /* 是否支持自定义虚拟用户登录 */
#undef VSF_BUILD_SSL  /* 是否支持 SSL 传输 */
/* 支持则将对应项设为 define,否则设为 undef*/

编译 vsftpd

make

查看编译的 vsftpd 二进制文件是否加载了 pam

ldd vsftpd

如下:

[root@CentOS5 vsftpd-2.3.4]# ldd vsftpd
linux-gate.so.1 =>  (0x00628000)
libwrap.so.0 => /lib/libwrap.so.0 (0x00cee000)
libnsl.so.1 => /lib/libnsl.so.1 (0x0015f000)
libpam.so.0 => /lib/libpam.so.0 (0x00fc4000)
libdl.so.2 => /lib/libdl.so.2 (0x007dc000)
libresolv.so.2 => /lib/libresolv.so.2 (0x008d8000)
libutil.so.1 => /lib/libutil.so.1 (0x00110000)
libcap.so.1 => /lib/libcap.so.1 (0x00d99000)
libc.so.6 => /lib/libc.so.6 (0x0029a000)
libaudit.so.0 => /lib/libaudit.so.0 (0x00114000)
/lib/ld-linux.so.2 (0x004a2000)

看到 libpam.so.0 => /lib/libpam.so.0 (0x00fc4000) 表示已成功加载 pam 认证模块

cp vsftpd /data/soft/vsftpd/bin

四、配置 vsftpd

1、创建主配置文件

vi /data/soft/vsftpd/conf/vsftpd.conf

如下:

local_enable=YES
anonymous_enable=NO
anon_upload_enable=NO
anon_other_write_enable=NO
anon_mkdir_write_enable=NO
ftpd_banner=Welcome to FTP service.
listen=YES
listen_port=21
connect_from_port_20=YES
nopriv_user=nobody
tcp_wrappers=YES
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/data/soft/vsftpd/chroot_list
userlist_enable=yes
userlist_deny=no
userlist_file=/data/soft/vsftpd/allow
dual_log_enable=YES
vsftpd_log_file=/data/soft/vsftpd/logs/vsftpd.log
xferlog_enable=YES
xferlog_file=/data/soft/vsftpd/logs/xferlog
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=60000
guest_enable=YES
guest_username=wwwftp
pam_service_name=vsftpd
virtual_use_local_privs=YES
use_localtime=YES
user_config_dir=/data/soft/vsftpd/user_conf
secure_chroot_dir=/data/soft/vsftpd/empty

2、创建允许登录 ftp 的用户文件

vi /data/soft/vsftpd/allow

如下:

user1
user2

3、创建用于锁定用户目录的用户列表文件

vi /data/soft/vsftpd/chroot_list

如下

user1
user2

4、配置 vsftpd 的 pam 认证模块(用于虚拟用户认证)

vi /etc/pam.d/vsftpd

如下

auth required /data/soft/vsftpd/lib/pam_userdb.so db=/data/soft/vsftpd/login
account required /data/soft/vsftpd/lib/pam_userdb.so db=/data/soft/vsftpd/login

保存退出

5、创建用户名密码文本文件

vi /data/soft/vsftpd/login.txt

如下:一行用户名一行密码

user1
123456
user2
654321

保存退出

6、用 db_load 生成用户数据库

db_load -T -t hash -f /data/soft/vsftpd/login.txt /data/soft/vsftpd/login.db
chmod 600 /data/soft/vsftpd/login.db
rm -rf /data/soft/vsftpd/login.txt

7、配置虚拟用户自定义配置文件

vi /data/soft/vsftpd/user_conf/user1

user1 所有权限

local_root=/data/www/user1
write_enable=YES
local_umask=022

保存退出

vi /data/soft/vsftpd/user_conf/user2

user2 只允许下载

local_root=/data/www/user2
write_enable=NO
download_enable=YES
local_umask=022

保存退出

8、启动 vsftpd 服务

/data/soft/vsftpd/bin/vsftpd /data/soft/vsftpd/conf/vsftpd.conf &

五、测试
user1 登录可读、写、删除、创建、修改一切权限
user2 登录仅有下载权限

CentOS 5.5 编译安装 vsftpd-2.3.4 配置虚拟用户全攻略

更多 vsftpd 相关教程

玩转 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-07/120816.htm

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