服务器建设虚拟用户,基于centos搭建vsftpd3.0.3虚拟用户验证ftp服务器

下载vsftpd

安装依赖包

yum install gcc gcc-c++ db4-utils pam-devel libcap libcap-devel -y

编译安装

wget https://security.appspot.com/downloads/vsftpd-3.0.3.tar.gz

tar xf vsftpd-3.0.3.tar.gz

cd vsftpd-3.0.3

make && make install

vim /etc/xinetd.d/vsftpd 将disable中no改成yes

创建目录

mkdir /etc/vsftpd/

cp vsftpd.conf /etc/vsftpd/

添加启动脚本

vim /etc/init.d/vsftpd

#!/bin/bash

#

# vsftpd This Shell script takes care of starting and stopping

# standalone vsftpd.

#

# chkconfig: - 60 50

# description: Vsftpd is a ftp daemon, which is the program

# that answers incoming ftp service requests.

# processname: vsftpd

# config: /etc/vsftpd/vsftpd.conf

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0

[ -x /usr/local/sbin/vsftpd ] || exit 0

RETVAL=0

prog="vsftpd"

start() {

# Start daemons.

if [ -d /etc/vsftpd ] ; then

for i in `ls /etc/vsftpd/*.conf`; do

site=`basename $i .conf`

echo -n $"Starting $prog for $site: "

/usr/local/sbin/vsftpd $i &

RETVAL=$?

[ $RETVAL -eq 0 ] && {

touch /var/lock/subsys/$prog

success $"$prog $site"

}

echo

done

else

RETVAL=1

fi

return $RETVAL

}

stop() {

# Stop daemons.

echo -n $"Shutting down $prog: "

killproc $prog

RETVAL=$?

echo

[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog

return $RETVAL

}

# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

restart|reload)

stop

start

RETVAL=$?

;;

condrestart)

if [ -f /var/lock/subsys/$prog ]; then

stop

start

RETVAL=$?

fi

;;

status)

status $prog

RETVAL=$?

;;

*)

echo $"Usage: $0 {start|stop|restart|condrestart|status}"

exit 1

esac

exit $RETVAL

创建虚拟用户

vim vusers.list (虚拟用户账户列表)

zhangsan

123456

lisi

123456

db_load -T -t hash -f vusers.list vusers.db

[root@localhost vsftpd]# file vusers.db

vusers.db: Berkeley DB (Hash, version 9, native byte-order)

增加pam认证

vim /etc/pam.d/vsftpd.vu

auth required pam_userdb.so db=/etc/vsftpd/vusers

account required pam_userdb.so db=/etc/vsftpd/vusers此处不用加.db

修改vsftpd.conf配置文件并重启

vim vsftpd.conf

[root@localhost vsftpd]# cat vsftpd.conf |grep -v ^#

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

anon_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES

ftpd_banner=Welcome to blah FTP service.

listen=YES

pam_service_name=vsftpd.vu

guest_enable=YES

guest_username=virtual

userlist_enable=YES

tcp_wrappers=YES

user_config_dir=/etc/vsftpd/vusers.dir

创建虚拟用户目录

mkdir vusers.dir

touch zhangsan

touch lisi

vim zhangsan

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

anon_max_rate=0

local_root=/home/ftp/zhangsan

启动ftp服务

/etc/init.d/vsftpd start

测试链接

[root@localhost ~]# ftp 172.16.17.63

Connected to 172.16.17.63 (172.16.17.63).

220 Welcome to blah FTP service.

Name (172.16.17.63:root): elink

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> ls

227 Entering Passive Mode (172,16,17,63,208,172).

150 Here comes the directory listing.

226 Directory send OK.

ftp> pw

257 "/"

ftp> pwd

257 "/"

ftp> mkdir ceshi

257 "/ceshi" created

ftp> ls

227 Entering Passive Mode (172,16,17,63,76,47).

150 Here comes the directory listing.

drwxr-xr-x 2 500 500 4096 Nov 15 07:24 ceshi

226 Directory send OK.

ftp>

没办法,要恰饭的嘛

打赏

wechatpay.png微信支付

alipay.png支付宝

赞赏