一、下载当前vsftp最新版本
-
wget ftp:
-
貌似最近官方都下不了,在补一个本站的下载地址:
-
wget http:
二、安装前准备
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传输*/
-
编译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登录仅有下载权限
(责任编辑:IT) |