Linux 安装配置使用 FTP 服务

学习场景:使用摄像机做区域报警,预警后将预警图片传输到 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 

Linux 安装配置使用 FTP 服务-1 vsftpd添加用户

4. 修改密码

使用下面命令为用户修改密码

sudo passwd 

5. 重新加载或重启服务

配置完成配置文件需要重新加载或重启服务

sudo systemctl reload vsftpd
或
sudo systemctl restart vsftpd

6. 权限

后面试了一下,虽然写入没问题,但是没有删除权限 可以给文件夹权限,然后把所属用户组设定好 ··· sudo chmod 777 /home/ sudo chown : /home/ ··· 应该也可以在配置文件加入下面配置解决,我没试,因为已经使用上面的解决了

delete_enable=YES

7. 测试

连接 FTP 新建一个文件夹进行测试 vsftpd连接后新建文件夹测试 可以看到 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 加密。 TLSCertificateFileTLSPrivateKeyFile: 指定 TLS 证书文件和私钥文件的路径。 TLSRequired: 设置是否要求 TLS 连接。 AnonymousCanCreateDirs: 设置匿名用户是否允许创建目录。 VerboseLog: 设置是否启用详细日志记录。 DisplayDotFiles: 设置是否显示以点开头的隐藏文件。

3. 启动服务

sudo service pure-ftpd start

4. 添加用户

如果启用了本地系统用户认证,可以使用操作系统提供的命令创建 FTP 用户 使用下面命令添加用户名,回车会让设置密码等信息 新建用户完成后会在/home 文件夹生成一个用户名的文件夹

sudo adduser 

4. 修改密码

使用下面命令为用户修改密码

sudo passwd 

5. 重新加载或重启服务

配置完成配置文件需要重新加载或重启服务

sudo systemctl reload pure-ftpd
或
sudo systemctl restart pure-ftpd