FTP文件服务站
环境
Linux Ubuntu
配置环境
sudo apt-get install --reinstall systemd
sudo apt install vsftpd #安装ftp
sudo apt install db-util #安装生成虚拟帐号数据库工具db
查看版本
vsftpd -v
查看是否运行
ps -ef|grep vsftp #通过进程号查询
sudo netstat -antp|grep vsftp #通过21端口查询
查找vsftpd.conf
sudo find /etc/ -name "vsftpd.conf"
记住配置文件所在位置
如下(示例):
进入root模式
sudo su -
1.允许匿名访问
创建ftp访问的目录
这里我创建到了 /home 目录下
mkdir -p /home/ftp
touch /home/ftp/hello
chmod -R 777 /home/ftp
chmod a-w /home/ftp
修改vsftpd.conf
vim /etc/vsftpd.conf
加入如下内容
anonymous_enable=YES
anon_root= /home/ftp #这里填写你所创建的ftp目录
如下(示例):
保存退出后
重启ftp服务
/etc/init.d/vsftpd restart
测试
匿名登陆的用户名是 anonymous
不需要输入密码
本地测试
可以成功登录。
可以查看并下载文件,并且也设置了权限使匿名用户不可以上传文件
cmd命令行测试
也可以成功登录
2.使用系统用户访问
创建用户
配置好自己的密码
adduser uftp
成功后可以看到 /home/ 目录下有了刚刚创建的用户目录
(示例):
配置vsftpd.conf文件
不允许匿名访问
在文件中加入如下内容
sudo vim /etc/vsftpd.conf
pasv_promiscuous=YES
utf8_filesystem=YES
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/allowed_users #可以自定义
seccomp_sandbox=NO
local_root=/home/uftp/ #可以自定义
local_enable=YES
write_enable=YES
如下(示例):
创建允许访问的列表
vim /etc/allowed_users
写入可以访问的用户名
(示例):
检查禁止访问名单
确保没有允许访问的用户名
测试验证
重启服务器
/etc/init.d/vsftpd restart
在本地使用ftp命令测试
(示例):
可以看到上传的文件可以在 ftp 用户目录下看到本地测试成功
在浏览器中访问
可以看到能够正常访问,成功
在win10 cmd命令行访问
成功
3.虚拟用户访问
创建账户
useradd ftpuser -s /sbin/nologin
passwd ftpuser
修改配置
vim /etc/vsftpd.conf
写入以下内容
anonymous_enable=NO
local_enable=YES
userlist_enable=YES
#userlist_deny=NO
#
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/virtualconf
userlist_enable=NO
userlist_file=/etc/vsftpd/virtusers
如下(示例):
创建配置文件夹,用于存放每个用户的配置
mkdir -p /etc/vsftpd/virtualconf
创建存放用户密码
vi /etc/vsftpd/virtusers
同时使用db命令生成数据库文件
修改pam配置文件
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
vim /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/
vim 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
如下(示例):
重启
service vsftpd restart
测试
本地测试
成功