centos linux安装vsftp,CentOS安装vsftp最新版本

一、下载当前vsftp最新版本

wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.3.4.tar.gz

貌似最近官方都下不了,在补一个本站的下载地址:

wget http://www.92csz.com/downloads/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 -R700/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@CentOS5vsftpd-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=Welcometo 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.sodb=/data/soft/vsftpd/login

account required/data/soft/vsftpd/lib/pam_userdb.sodb=/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

chmod600/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登录仅有下载权限

fa77209867e31c59690637f3c5e8f17b.png

本文由 CentOS中文站 - 专注Linux技术 作者:centos 发表,其版权均为 CentOS中文站 - 专注Linux技术 所有,文章内容系作者个人观点,不代表 CentOS中文站 - 专注Linux技术 对观点赞同或支持。如需转载,请注明文章来源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值