Ubuntu下安装及配置Vsftpd服务器

本文章分三个部分从易到难

  • 匿名用户登录
    • 本地用户登录
      • 虚拟用户登录

1.搭建前的一些准备工作

  1. 需要手动创建一个目录-ftp的根目录,用户可以访问该目录下的资源,
mkdir /home/uftp

接着创建一个子目录,

mkdir /home/uftp/data

修改ftp这个目录的权限,

chmod -R 777 /home/uftp

匿名用户登录

1apt-get install vsftpd 安装ftp服务器

 2 配置vsftpd.conf文件,要有root权限:

sudo gedit /etc/vsftpd.conf
    配置文件以匿名登录
 在后面加上

anonymous_enable=YES
anon_root=/home/……/ftp
no_anon_password=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES

3 重启sudo /etc/init.d/vsftpd restart

最后就可以实现匿名登录

在这里插入图片描述

.

本地用户登录

添加用户

useradd -d /home/ftp/data -s /sbin/nologin uftp

设置密码

passwd zhangxw

然后修改配置文件

sudo gedit /etc/vsftpd.conf

直接在后面加

限制用户对主目录以外目录访问
chroot_local_user=YES
#指定一个 userlist 存放允许访问 ftp 的用户列表
userlist_deny=NO
userlist_enable=YES
#记录允许访问 ftp 用户列表
userlist_file=/etc/vsftpd.user_list

#不配置可能导致莫名的530问题
seccomp_sandbox=NO
#允许文件上传
write_enable=YES

#使用utf8编码
utf8_filesystem=YES

建立相应的本地用户登录文件夹位于 /etc下先建立vsftpd文件夹

sudo mkdir /etc/vsftpd

sudo cd /etc/vsftpd

touch vsftpd.user_list

创建文件成功后,我们就可以添加访问用户了,添加用户的命令是

useradd -d /home/uftp/data -s /sbin/nologin uftp

将上面添加的用户,手动写入到
gedit /etc/vsftpd/ vsftpd.user_list

只需要添加第一行第一个名字即可
. 最后进行本地登录在这里插入图片描述

虚拟用户登录

最难搞的来了 本人搞了一下午加1天勉强搞完
1.在上述基础上加入虚拟用户时候新建虚拟用户的配置文件:

sudo touch /etc/vsftpd/stu

在这里插入图片描述

2.专门建立一个存放这些虚拟用户及它们密码的数据库并赋予权限

$touch loguser.txt
$vim loguser.txt
*/将用户名、密码一行一行地填写,比如用户名为usera,密码为123456,那么,loguser.txt的内容是:
usera
123456
*/
将txt文件改成数据库文件
db4.8_load -T -t hash -f vsftpd_login.txt /etc/vsftpd_login.db
赋予权限
$chmod 600 /etc/vsftpd_login.db

文件/etc/pam.d/vsftpd.vu的内容是

auth sufficient pam_userdb.so db=/etc/vsftpd_login account sufficient
pam_userdb.so db=/etc/vsftpd_login

注意一定要顶行写

3.创建用户vsftpd

useradd vsftpd -d /home/vsftpd -s /bin/false
chown vsftpd:vsftpd /home/vsftpd

配置完成后先修改vsftpd.conf文件配置

sudo gedit /etc/vsftpd.conf

listen=YES
anonymous_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd_user_conf
pam_service_name=vsftpd.vu
local_enable=YES
secure_chroot_dir=/var/run/vsftpd
local_max_rate=204800
Ubuntu下安装及配置Vsftpd服务器_第1张图片

修改parm目录

touch /etc/pam.d/vsftpd.vu

文件/etc/pam.d/vsftpd.vu的内容是
注意一定要顶行写


auth sufficient pam_userdb.so 
db=/etc/vsftpd_login
account sufficient pam_userdb.so 
db=/etc/vsftpd_login

listen=YES
anonymous_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd_user_conf
pam_service_name=vsftpd.vu
local_enable=YES
secure_chroot_dir=/var/run/vsftpd
local_max_rate=204800

5.配置usera(用户)文件

$mkdir /etc/vsftpd_user_conf
$cd /etc/vsftpd_user_conf
$touch usera
文件/etc/vsftpd_user_conf/usera的内容是
local_root=/home/vsftpd/usera

创建usera的工作目录

cd /home/vsftpd/

mkdir usera

touch test.txt

在这里插入图片描述
Ubuntu下安装及配置Vsftpd服务器_第2张图片
Ubuntu下安装及配置Vsftpd服务器_第3张图片

注意别加

seccomp_sandbox=NO

write_enable=YES

utf8_filesystem=YES

allow_writeable_chroot=YES

加上可能导致莫名的530问题

6.重启ftp

/etc/init.d/vsftpd restart

你可能感兴趣的:(linux,linux)