树莓派上安装vsftpd:FTP服务器

前言

这里以树莓派4B+官方系统为例,建议开启树莓派root,这样可以设置成开机自启动。

安装过程

安装 vsftpd

apt install vsftpd

运行 vsftpd

systemctl start vsftpd.service

运行以下命令查看 FTP 服务监听的端口。

pi@qing:/etc $ netstat -antup | grep ftp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
pi@qing:/etc $ sudo netstat -antup | grep ftp
tcp6       0      0 :::21                   :::*                    LISTEN      443/vsftpd   

本地用户登录是指用户使用 Linux 操作系统的账号和密码登录 FTP 服务器。
树莓派本身就有用户Pi,可以直接用来登陆,当然也可以重新创建一个。
1.运行以下命令为FTP服务创建一个Linux用户。
sudo useradd ftptest

2.运行以下命令修改ftptest 用户的密码。

sudo passwd ftptest

3.运行以下命令创建一个供FTP服务使用的文件目录。

sudo mkdir /srv/ftp/ ftptest 或者sudo mkdir /srv/ftp/pi

4.运行以下命令更改/srv/ftp/ ftptest目录的拥有者为 ftptest。

sudo chown -R ftptest: ftptest /srv/ftp/ftptest 或者 sudo chown -R pi:pi /srv/ftp/pi

这里的/srv/ftp/pi就是普通用户登陆后的根目录。

5.修改vim /etc/vsftpd.conf配置文件。
谨慎起见,先备份。

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
vim /etc/vsftpd.conf

配置参数如下:

#禁止匿名登录FTP服务器
anonymous_enable=NO
#允许本地用户登录FTP服务器
local_enable=YES
#设置本地用户登录后所在的目录
local_root=/srv/ftp/pi
#写权限
write_enable=YES
#全部用户被限制在主目录
chroot_local_user=YES
#启用例外用户名单
chroot_list_enable=YES
#指定例外用户列表,这些用户不被锁定在主目录
chroot_list_file=/etc/chroot_list#主目录可写权限allow_writeable_chroot=YES
#配置其他参数
allow_writeable_chroot=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
tcp_wrappers=YES

6、touch /etc/chroot_list命令创建chroot_list文件,并写入不受只可以访问其主目录限制的例外用户名

注意:如果没有例外用户也必须要有 chroot_list文件,内容可为空

vsftpd.conf 的配置文件参数说明

用户登录控制:

参数说明
anonymous_enable=YES接受匿名用户
no_anon_password=YES匿名用户login时不询问口令
anon_root=(none)匿名用户主目录
local_enable=YES接受本地用户
local_root=(none)本地用户主目录

用户权限控制:

参数说明
write_enable=YES可以上传(全局控制)
local_umask=022本地用户上传文件的umask
file_open_mode=0666上传文件的权限配合umask使用
anon_upload_enable=NO匿名用户可以上传
anon_mkdir_write_enable=NO匿名用户可以建目录
anon_other_write_enable=NO匿名用户修改删除
chown_username=lightwiter匿名上传文件所属用户名

测试

filezilla工具是一款不错的开源工具,这里仅仅使用浏览器测试,在浏览器中输入ftp://+树莓派ip
在这里插入图片描述
输入密码后登陆。
在这里插入图片描述

后言

FTP服务器可以配置为主动模式或被动模式。
FTP两种模式的区别:

(1)PORT(主动)模式

所谓主动模式,指的是FTP服务器“主动”去连接客户端的数据端口来传输数据,其过程具体来说就是:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口(即tcp 21端口),紧接着客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。然后服务器会从它自己的数据端口(20)“主动”连接到客户端指定的数据端口(N+1),这样客户端就可以和ftp服务器建立数据传输通道了。

(2)PASV(被动)模式

所谓被动模式,指的是FTP服务器“被动”等待客户端来连接自己的数据端口,其过程具体是:当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N >1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。(注意此模式下的FTP服务器不需要开启tcp 20端口了)

两种模式的比较:

(1)PORT(主动)模式模式只要开启服务器的21和20端口,而PASV(被动)模式需要开启服务器大于1024所有tcp端口和21端口。

(2)从网络安全的角度来看的话似乎ftp PORT模式更安全,而ftp PASV更不安全,那么为什么RFC要在ftp PORT基础再制定一个ftp PASV模式呢?其实RFC制定ftp PASV模式的主要目的是为了数据传输安全角度出发的,因为ftp port使用固定20端口进行传输数据,那么作为黑客很容使用sniffer等探嗅器抓取ftp数据,这样一来通过ftp PORT模式传输数据很容易被黑客窃取,因此使用PASV方式来架设ftp server是最安全绝佳方案。
事实上,vsftp默认支持被动模式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值