安装
采用如下命令安装ftp服务器
sudo apt install vsftpd

软件管理
软件管理方式
service vsftpd start 启动
service vsftpd restart 重启
service vsftpd stop 停止
service vsftpd status 查看状态
匿名访问方式
修改配置文件
gedit /etc/vsftpd.conf
并写入配置
anonymous_enable=YES
anon_root= /data/pub
local_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
配置完成后,创建文件夹和文件,重启服务器
mkdir -p /data/pub
touch /data/pub/a.txt
chmod -R 777 /data
chmod a-w /data/pub
service vsftpd restart
客户端登陆服务器,
命令行登陆
ftp 127.0.0.1
然后输入用户名
Anonymous
最后输入ls如果初现如图所示的效果即代表创建成功

在文件夹下连接服务器
使用文件夹访问服务器,最后能在文件夹下看到1.txt这个文件   
window下访问
首先获取linux的ip地址
ifconfig
 接着,在window的文件管理器下输入地址
ftp://192.168.183.128

系统用户访问
修改配置文件
1、修改配置文件
gedit /etc/vsftpd.conf
并写入配置
anonymous_enable=NO
local_enable=YES
userlist_enable=YES
userlist_deny=NO
2、写入允许访问的用户名
gedit /etc/vsftpd.user_list
添加自己的用户,比如我的电脑用户是ubuntu,则在文件内写上ubuntu  配置完成后重启,
service vsftpd restart
客户端登录服务器
同样通过三种方式来访问该ftp
命令行登录

文件夹下连接服务器
 
window下访问

虚拟用户访问方式
系统用户模式虽然可以控制访问,但是如果用户过多,就会影响服务器系统的管理,对服务器安全造成威胁!而且我们需要的仅仅是可以使用搭建在服务器的FTP服务而已! 那么就需要我们设置虚拟用户进行登录,这也是推荐的方式!这种方式更加安全!
虚拟用户就是没有实际的真实系统用户,而是通过映射到其中一个真实用户以及设置相应的权限来实现访问验证,虚拟用户不能登录Linux系统,从而让系统更加的安全可靠。
安装工具
安装如下工具,用于生成密码账户校验
sudo apt install db-util
创建账户
创建的ftpuser账户,用于接下来的实验,并修改密码
useradd ftpuser -s /sbin/nologin
passwd ftpuser
修改总体配置
gedit /etc/vsftpd.conf
并写入配置
anonymous_enable=NO
local_enable=YES
userlist_enable=YES
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/virtualconf
创建配置文件夹,用于存放每个用户的配置
mkdir -p /etc/vsftpd/virtualconf
创建存放用户密码
vi /etc/vsftpd/virtusers
在文件中存入账户和密码  同时使用db命令生成数据库文件
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
修改pam配置文件
gedit /etc/pam.d/vsftpd
把文件的内容全部删掉,替换以下配置
auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/virtusers
account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/virtusers
配置每个用户信息
切换到用户配置目录下
mkdir -p /home/ftpuser/ftp1
chown ftpuser.ftpuser /home/ftpuser
cd /etc/vsftpd/virtualconf/
gedit ftp1
文件内写入如下配置
local_root=/home/ftpuser/ftp1
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
至此 ,配置全部完成
客户端登录服务器
登录之前先重启以下ftp服务器
service vsftpd restart
我们现在共享目录下创建一个文件用于后续验证查看
touch /home/ftpuser/ftp1/1.txt
接下来,同样用三种方式登录
命令行登录
可以看到1.txt为刚刚创建的文件 
文件夹下连接服务器
 
window下访问
 
到这里ftp三种模式已经全部配置并实践完成
|