学习场景:使用摄像机做区域报警,预警后将预警图片传输到 FTP 服务上,所以搭一个环境测试一下,这里我使用的是树莓派 4B,官方 32 位系统,其他 Linux 系统应该通用
下面说两个 FTP 应用
一、vsftpd
vsftpd 是一个非常受欢迎的 FTP 服务器软件,因其简单、安全和高性能而广泛使用。它易于配置和管理,并具有强大的安全特性。vsftpd 默认不允许匿名用户登录,支持虚拟用户,且对抗恶意攻击有一定的保护机制。
vsftpd 可能会在安装过程中自动创建一个名为"ftp"的系统用户,但该用户通常是用于服务器自身的运行和管理,而不是用于 FTP 登录
1. 安装
sudo apt-get install vsftpd
2. 配置
配置文件位于/etc/vsftpd.conf
,下面是一些常用的配置项
anonymous_enable
: 是否允许匿名用户登录 FTP,默认为 YES。
local_enable
: 是否允许本地用户登录 FTP,默认为 YES。
write_enable
: 是否允许用户上传文件,默认为 YES。
chroot_local_user
: 是否将本地用户限制在其主目录中,默认为 NO。
userlist_enable
: 是否启用用户列表文件,默认为 NO。如果启用,可以使用 userlist_file 指定用户列表文件的路径。
userlist_deny
: 是否拒绝用户列表文件中列出的用户登录,默认为 YES。
local_umask
: 本地用户上传文件的默认权限掩码,默认为 022。
listen
: FTP 服务器监听的 IP 地址,默认为 NO,表示监听所有接口。
listen_address
: FTP 服务器监听的具体 IP 地址,默认为空。可以指定服务器的具体 IP 地址。
3. 添加用户和密码
使用下面命令添加用户名,回车会让设置密码等信息
新建用户完成后会在/home 文件夹生成一个用户名的文件夹
sudo adduser <username>
4. 修改密码
使用下面命令为用户修改密码
sudo passwd <username>
5. 重新加载或重启服务
配置完成配置文件需要重新加载或重启服务
sudo systemctl reload vsftpd
或
sudo systemctl restart vsftpd
6. 权限
后面试了一下,虽然写入没问题,但是没有删除权限
可以给文件夹权限,然后把所属用户组设定好
···
sudo chmod 777 /home/
sudo chown : /home/
···
应该也可以在配置文件加入下面配置解决,我没试,因为已经使用上面的解决了
delete_enable=YES
7. 测试
连接 FTP 新建一个文件夹进行测试
可以看到 FTP 服务器是被正常建了一个文件夹的
新建用户也是可以连接到服务器的,但是只有自己文件夹的权限
二、pure-ftpd
Pure-FTPd 是一个轻量级的 FTP 服务器软件,注重安全性和性能。它具有用户友好的配置选项和可靠的安全特性。Pure-FTPd 支持多种认证方法,包括本地用户、虚拟用户和 LDAP 等。
1. 安装
sudo apt-get install pure-ftpd
2. 配置
配置文件位于/etc/pure-ftpd/pure-ftpd.conf,下面是一些常用的配置项
Bind
: 指定 Pure-FTPd 监听的 IP 地址和端口。
AllowAnonymous
: 设置是否允许匿名用户登录。
MaxClientsNumber
: 设置最大并发连接数。
MaxClientsPerIP
: 设置每个 IP 地址允许的最大连接数。
MaxIdleTime
: 设置连接的最大空闲时间。
UnixAuthentication
: 设置是否允许本地系统用户登录。
PAMAuthentication
: 设置是否启用 PAM 身份验证。
PureDB
: 指定 Pure-FTPd 使用的纯数据库文件路径,用于虚拟用户认证。
AnonymousOnly
: 设置是否仅允许匿名用户访问。
ChrootEveryone
: 设置是否将所有用户限制在其主目录中。
CreateHomeDir
: 设置是否在用户首次登录时自动创建主目录。
ForcePassiveIP
: 指定强制被动模式下使用的 IP 地址。
TLS
: 设置是否启用 TLS/SSL 加密。
TLSCertificateFile
和TLSPrivateKeyFile
: 指定 TLS 证书文件和私钥文件的路径。
TLSRequired
: 设置是否要求 TLS 连接。
AnonymousCanCreateDirs
: 设置匿名用户是否允许创建目录。
VerboseLog
: 设置是否启用详细日志记录。
DisplayDotFiles
: 设置是否显示以点开头的隐藏文件。
3. 启动服务
sudo service pure-ftpd start
4. 添加用户
如果启用了本地系统用户认证,可以使用操作系统提供的命令创建 FTP 用户
使用下面命令添加用户名,回车会让设置密码等信息
新建用户完成后会在/home 文件夹生成一个用户名的文件夹
sudo adduser <username>
4. 修改密码
使用下面命令为用户修改密码
sudo passwd <username>
5. 重新加载或重启服务
配置完成配置文件需要重新加载或重启服务
sudo systemctl reload pure-ftpd
或
sudo systemctl restart pure-ftpd