树莓派上搭建FTP服务器

二叶草 2020年3月19日21:19:09ftp工具评论阅读模式

 

一、安装并配置vsftpd

在Linux中,可供我们选择的FTP服务器种类众多。但如果我们想在树莓派上 搭建一个安全、高性能且稳定性好的FTP服务器,那么就非vsftpd莫属了。Vsftpd 的全称是Very Secure FTP Daemon(非常安全的FTP进程),是一个基于GPL发布的类UNIX类操作系统上运行的FTP服务器,可以运行在Linux、BSD、Solaris、 HP-UX以及Irix等系统上面。同时,vsftpd也支持很多其他传统的FTP服务器不支持的良好特性,用八个字概括其特点就是“小巧轻快,安全易用”,十分合树莓派的胃口。

pi@raspberrypi:~ $ sudo apt-get install vsftpd

备份默认的配置文件:

pi@raspberrypi:~ $ cd /etc/

pi@raspberrypi:/etc $ sudo mv vsftpd.conf vsftpd.conf.orig

使用vi命令编辑新的FTP配置文件如下,该配置文件使能了本地用户登陆同时也使能匿名账号免密登陆,并指定默认的登陆路径为 /srv/ftp。

pi@raspberrypi:/etc $ sudo vi vsftpd.conf

anonymous_enable=YES

anon_mkdir_write_enable=NO

no_anon_password=YES

chown_uploads=YES

chown_username=pi

delete_failed_uploads=YES

local_enable=YES

local_root=/srv/ftp

allow_writeable_chroot=YES

anon_root=/srv/ftp/

write_enable=YES

local_umask=022

listen=YES

listen_ipv6=NO

listen_port=21

ftpd_banner=Welcome to LingYun IoT system Lab. FTP service.

xferlog_enable=YES

xferlog_file=/var/log/vsftpd.log

#是否限制本地所有用户切换根目录的权限,YES为开启限制,即登录后的用户不能访问ftp根目录以外的目录,当然要限制啦

chroot_local_user=YES

pam_service_name=vsftpd

#是否启动userlist为通过模式,YES的话只有存在于userlist文件中的用户才能登录ftp(可以理解为userlist是一个白名单),

# NO的话,白名单失效,和下面一个参数配合使用

userlist_enable=YES

#是否启动userlist为禁止模式,YES表示在userlist中的用户禁止登录ftp(黑名单),NO表示黑名单失效,我们已经让

#userlist作为一个白名单,所以无需使用黑名单功能

userlist_deny=NO

#指定哪个文件作为userlist文件,我们稍后编辑这个文件

userlist_file=/etc/vsftpd.userlist

创建 vsftpd.userlist文件,该文件下指定允许登录的帐号:

pi@raspberrypi:/etc $ sudo vim vsftpd.userlist

anonymous

pi

把FTP根目录给相应用户和默认权限并创建空的测试文件,注意匿名用户(anonymous)也在该路径下,所以该目录不能给777的权限,否则匿名用户不能登录:

pi@raspberrypi:~ $ sudo chown pi.pi /srv/ftp/

pi@raspberrypi:~ $ sudo chmod 755 /srv/ftp/

pi@raspberrypi:~ $ touch /srv/ftp/raspberry_ftp

二、启动和测试

我们可以使用 service 命令重启vsftpd服务,启动后可以使用netstat命令查看vsftpd是否正常启动并正常监听FTP的21号端口:

pi@raspberrypi:/etc $ sudo service vsftpd restart

pi@raspberrypi:/etc $ sudo netstat -tlnp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      5607/vsftpd

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      518/sshd

tcp6       0      0 :::22                   :::*                    LISTEN      518/sshd

如果这里看不到vsftp的运行,则可能是vsftpd的配置问题,具体可以查看vsftpd的启动运行日志文件 /var/log/syslog 。也可以使用systemctl命令查看或重启:

pi@raspberrypi:/etc $ sudo systemctl status vsftpd.service

pi@raspberrypi:/etc $ sudo systemctl restart vsftpd.service

如果一切正常,我们就可以在浏览器上输入FTP站点地址匿名登录访问,FTP访问的地址格式为: ftp://树莓派IP, 如 ftp://192.168.2.20/

在之前的配置文件中,我们限定了匿名帐号是不能创建、上传、删除文件的,但可以使用本地用户登录后实现这些功能,这时候就可以使用FTP客户端软件flashfxp来使用客户端软件登录操作,如下图所示:

三、多用户管理配置

有时我们需要FTP支持多个帐号登录,而不同的帐号访问不同的路径。这时可以修改vsfptd的配置文件,需要在配置文件里添加一行 user_config_dir=/etc/vsftpd/userconfig , 即:

pi@raspberrypi:~ $ vim /etc/vsftpd.conf

anonymous_enable=YES

anon_mkdir_write_enable=NO

no_anon_password=YES

chown_uploads=YES

chown_username=pi

delete_failed_uploads=YES

local_enable=YES

local_root=/srv/ftp

allow_writeable_chroot=YES

anon_root=/srv/ftp/

write_enable=YES

local_umask=022

listen=YES

listen_ipv6=NO

listen_port=21

ftpd_banner=Welcome to LingYun IoT system Lab. FTP service.

xferlog_enable=YES

xferlog_file=/var/log/vsftpd.log

#是否限制本地所有用户切换根目录的权限,YES为开启限制,即登录后的用户不能访问ftp根目录以外的目录,当然要限制啦

chroot_local_user=YES

pam_service_name=vsftpd

#是否启动userlist为通过模式,YES的话只有存在于userlist文件中的用户才能登录ftp(可以理解为userlist是一个白名单),

# NO的话,白名单失效,和下面一个参数配合使用

userlist_enable=YES

#是否启动userlist为禁止模式,YES表示在userlist中的用户禁止登录ftp(黑名单),NO表示黑名单失效,我们已经让

#userlist作为一个白名单,所以无需使用黑名单功能

userlist_deny=NO

#指定哪个文件作为userlist文件,我们稍后编辑这个文件

userlist_file=/etc/vsftpd.userlist

user_config_dir=/etc/vsftpd/userconfig

创建不同用户登录管理路径 /etc/vsftpd/userconfig 并对相应的用户进行配置:

pi@raspberrypi:~ $ sudo mkdir -p /etc/vsftpd/userconfig

pi@raspberrypi:~ $ cd /etc/vsftpd/userconfig/

pi@raspberrypi:/etc/vsftpd/userconfig $ sudo vim pi

local_root=/srv/pi

pi@raspberrypi:/etc/vsftpd/userconfig $ sudo vim guowenxue

local_root=/srv/guowenxue

创建不同用户登录的文件夹:

pi@raspberrypi:/etc/vsftpd/userconfig $ sudo mkdir -p /srv/guowenxue/

pi@raspberrypi:/etc/vsftpd/userconfig $ sudo mkdir -p /srv/pi

修改vsftpd.userlist 文件,运行添加的相应用户登录:

pi@raspberrypi:/etc $ sudo vim vsftpd.userlist

anonymous

pi

guowenxue

重启服务器生效,这时使用不同的用户登录会到不同的系统路径下,这样就可以做相应的权限管理:

pi@raspberrypi:/etc/vsftpd/userconfig $ sudo service vsftpd restart

本文来源于:树莓派上搭建FTP服务器-变化吧门户
特别声明:以上文章内容仅代表作者本人观点,不代表变化吧门户观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。

  • 赞助本站
  • 微信扫一扫
  • weinxin
  • 加入Q群
  • QQ扫一扫
  • weinxin
二叶草
FTP-主动模式和被动模式的分析 ftp工具

FTP-主动模式和被动模式的分析

FTP,很多人都非常熟悉了。很多FTP实现的软件使用主动模式来传输数据,那主动模式和被动模式的区别在哪呢? 为啥有了主动模式还有被动模式呢? 借助wireshark来分析FTP主动模式和被动模式的区别...

发表评论