下载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>
没办法,要恰饭的嘛
打赏
微信支付
支付宝
赞赏